KR101691266B1 - 방송 서비스 수신 방법 및 방송 서비스 수신 장치 - Google Patents

방송 서비스 수신 방법 및 방송 서비스 수신 장치 Download PDF

Info

Publication number
KR101691266B1
KR101691266B1 KR1020147008641A KR20147008641A KR101691266B1 KR 101691266 B1 KR101691266 B1 KR 101691266B1 KR 1020147008641 A KR1020147008641 A KR 1020147008641A KR 20147008641 A KR20147008641 A KR 20147008641A KR 101691266 B1 KR101691266 B1 KR 101691266B1
Authority
KR
South Korea
Prior art keywords
service
nrt
trigger
information
receiver
Prior art date
Application number
KR1020147008641A
Other languages
English (en)
Other versions
KR20140090977A (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 KR20140090977A publication Critical patent/KR20140090977A/ko
Application granted granted Critical
Publication of KR101691266B1 publication Critical patent/KR101691266B1/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/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
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/015High-definition television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/30Aspects of broadcast communication characterised by the use of a return channel, e.g. for collecting users' opinions, for returning broadcast space/time information or for requesting data

Abstract

본 발명에 따른 방송 서비스 수신 방법은 방송 수신 장치의 방송 서비스 수신 방법에 있어서, 방송 서비스로 전송되는 컨텐트 중 영상 스트림을 수신하는 단계; 상기 수신된 영상 스트림의 일부에 기초하여, 상기 방송 서비스에 대한 시그널링 정보 및 상기 방송 서비스의 부가 서비스에 대한 시그널링 정보 중 적어도 하나에 대한 요청 메시지를 생성하는 단계; 상기 생성된 요청 메시지를 인터넷망을 통해 서버로 전송하는 단계; 상기 서버로부터 상기 요청 메시지에 대응되는 응답 메시지를 수신하는 단계; 상기 수신된 응답 메시지에 기초하여 상기 영상 스트림에 대응되는 방송 서비스 및 상기 방송 서비스의 부가 서비스 중 적어도 하나를 획득하는 단계; 및 상기 획득한 방송 서비스 및 부가 서비스를 제공하는 단계를 포함하고, 상기 요청 메시지는 요청 시간 구간을 특정하기 위한 제1 쿼리 정보 및 요청할 적어도 하나의 시그널링 테이블을 특정하기 위한 제2 쿼리 정보를 포함한다.

Description

방송 서비스 수신 방법 및 방송 서비스 수신 장치{BROADCAST SERVICE RECEIVING METHOD AND BROADCAST SERVICE RECEIVING APPARATUS}
본 발명은 방송 서비스 수신 방법 및 그 수신 장치에 관한 것이다.
디지털 텔레비전(DTV)은 텔레비전(TV)의 고유 기능인 영상, 음성과 더불어 다양한 서비스를 제공할 수 있게 되었다. 예를 들어 방송 정보(Electronic Program Guide: EPG) 등을 사용자에게 제공할 수 있고, 2개 이상의 채널로부터 수신되는 방송 서비스를 동시에 제공할 수 있다. 특히 수신 시스템이 대용량의 저장 장치를 구비하고, 양방향 통신이 가능한 인터넷이나 데이터 통신 채널과 연결되면서 방송 신호를 이용하여 제공할 수 있는 서비스는 상당히 많아졌다. 또한, 이와 같이 방송 신호를 이용한 서비스가 다양해짐에 따라 방송 신호를 이용한 서비스에 대한 부가 서비스들을 다양한 경로를 통해 효율적으로 제공할 필요성이 증대되고 있으며, 이와 같은 부가 서비스들에 대한 방송 정보를 사용자에게 EPG를 통해 제공할 필요성도 함께 증대되고 있다.
본 발명의 목적은, 컨텐트에 대한 부가 서비스를 효과적으로 전달할 수 있는 방송 서비스 수신 방법 및 그 수신 장치를 제공함에 있다.
본 발명의 다른 목적은 인터넷망을 통해 효율적으로 방송 서비스를 제공할 수 있는 방송 서비스 수신 방법 및 방송 서비스 수신 장치를 제공함에 있다.
본 발명의 또 다른 목적은 기존의 수신기에 영향을 주지 않으면서도 향상된 방송 서비스 및 그 부가 서비스를 제공할 수 있는 방송 서비스 수신 방법, 그 수신 장치 및 그 수신 장치의 부가 서비스 처리 방법을 제공함에 있다.
본 발명의 한 실시예에 따른 방송 수신 장치의 방송 서비스 수신 방법은, 방송 서비스로 전송되는 컨텐트 중 영상 스트림을 수신하는 단계; 상기 수신된 영상 스트림의 일부에 기초하여, 상기 방송 서비스에 대한 시그널링 정보 및 상기 방송 서비스의 부가 서비스에 대한 시그널링 정보 중 적어도 하나에 대한 요청 메시지를 생성하는 단계; 상기 생성된 요청 메시지를 인터넷망을 통해 서버로 전송하는 단계; 상기 서버로부터 상기 요청 메시지에 대응되는 응답 메시지를 수신하는 단계; 상기 수신된 응답 메시지에 기초하여 상기 영상 스트림에 대응되는 방송 서비스 및 상기 방송 서비스의 부가 서비스 중 적어도 하나를 획득하는 단계; 및 상기 획득한 방송 서비스 및 부가 서비스를 제공하는 단계를 포함하고, 상기 요청 메시지는 요청 시간 구간을 특정하기 위한 제1 쿼리 정보 및 요청할 적어도 하나의 시그널링 테이블을 특정하기 위한 제2 쿼리 정보를 포함한다.
본 발명의 또 다른 실시예에 따른 방송 서비스 제공 방법은 방송 수신 장치의 방송 서비스 제공 방법에 있어서, 방송 서비스에 대한 부가 서비스의 서비스 시그널링 데이터를 수신하는 단계; 상기 수신된 서비스 시그널링 데이터에 기초하여 부가 서비스를 수신하는 단계; 상기 수신된 부가 서비스로부터 상기 방송 서비스 및 상기 부가 서비스에 대한 가이드 오브젝트를 획득하는 단계; 및 상기 가이드 오브젝트를 디스플레이하는 단계를 포함하고, 상기 가이드 오브젝트는 화면 전체 영역 중 일부 영역에 표시되는 프로그램 가이드 및 비실시간 서비스 가이드를 포함하고, 상기 일부 영역은 상기 방송 서비스 및 상기 부가 서비스의 상태에 따라 변경된다.
본 발명의 또 다른 실시 예에 따른 방손 수신 장치는 방송 서비스로 전송되는 컨텐트 중 영상 스트림을 수신하는 영상 스트림 수신부; 상기 수신된 영상 스트림의 일부에 기초하여, 상기 방송 서비스에 대한 시그널링 정보 및 상기 방송 서비스의 부가 서비스에 대한 시그널링 정보 중 적어도 하나에 대한 요청 메시지를 생성하는 제어부; 및 상기 생성된 요청 메시지를 인터넷망을 통해 서버로 전송하고, 상기 서버로부터 상기 요청 메시지에 대응되는 응답 메시지를 수신하는 네트워크 인터페이스부를 포함하고, 상기 요청 메시지는 요청 시간 구간을 특정하기 위한 제1 쿼리 정보 및 요청할 적어도 하나의 시그널링 테이블을 특정하기 위한 제2 쿼리 정보를 포함하며, 상기 제어부는 상기 수신된 응답 메시지에 기초하여 상기 영상 스트림에 대응되는 방송 서비스 및 상기 방송 서비스의 부가 서비스 중 적어도 하나를 획득하여 디스플레이부를 통해 제공한다.
본 발명의 또 다른 실시예에 따른 방송 수신 장치는 방송 서비스에 대한 부가 서비스의 서비스 시그널링 데이터를 수신하고, 상기 수신된 서비스 시그널링 데이터에 기초하여 부가 서비스를 수신하는 수신부; 상기 수신된 부가 서비스로부터 상기 방송 서비스 및 상기 부가 서비스에 대한 가이드 오브젝트를 획득하는 서비스 매니저; 및 상기 획득한 가이드 오브젝트를 디스플레이하는 디스플레이부를 포함하고, 상기 가이드 오브젝트는 상기 디스플레이부의 화면 전체 영역 중 일부 영역에 표시되는 프로그램 가이드 및 비실시간 서비스 가이드를 포함하며, 상기 서비스 매니저는 상기 방송 서비스 및 상기 부가 서비스의 상태에 따라 상기 일부 영역을 변경한다.
본 발명의 일 실시 예에 따르면 방송 서비스 및 부가 서비스에 대한 시그널링 정보를 효율적으로 수신할 수 있으며, 부가 서비스에 오브젝트를 이용하여 향상된 방송 서비스를 제공할 수 있다.
또한 본 발명의 일 실 시예에 따르면, 특정 시간 구간에서 유효한 시그널링 테이블들을 특정하여 수신할 수 있어 전송 및 수신 시스템과 네트워크의 부하를 줄일 수 있으며, 효율적인 방송 서비스를 제공할 수 있다.
그리고, 본 발명의 일 실시예에 따르면, XML과 HTTP 포맷을 이용함으로써, IP 네트워크를 통한 효율적인 서비스 전송이 가능하게 된다.
또한, 본 발명의 다른 일 실시 예에 따르면, 상황에 따라 디스플레이 영역 변화가 가능한 방송 서비스 및 비실시간 서비스 가이드를 제공할 수 있어 사용자에게 방송 서비스 및 부가 서비스에 대한 풍부한 가이드를 제공할 수 있게 된다.
도 1은 RT 서비스와 NRT 서비스를 제공하는 개념을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 NRT 서비스의 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따라 구성한 NRT 서비스에 대한 프로토콜 스택을 도시한 것이다.
도 4는 본 발명의 다른 일 실시예에 따라 구성한 NRT 서비스에 대한 프로토콜 스택을 도시한 것이다.
도 5는 본 발명의 일 실시 예에 따라 구성한 TVCT 테이블 섹션(VCT)의 비트스트림 섹션을 도시한 것이다.
도 6과 도 7은 본 발명의 실시예에 따른 service_type 필드의 값을 정의한 예를 나타낸 도면이다.
도 8은 NRT 서비스의 어플리케이션을 식별하기 위한 DST 테이블 섹션(data_service_table_section) 및 DST 섹션에 포함된 data_service_table_bytes의 비트스트림 신택스를 도시한 것이다.
도 9는 본 발명에 따른 수신 시스템에서, 데이터 방송 스트림을 전달하기 위한 ATSC A/90 규격과 IP 멀티캐스트 스트림(Multicast stream)을 전송하는 ATSC A/92 규격을 활용하여 NRT 서비스를 수신하여 서비스하는 방법을 설명하기 위한 도면이다.
도 10 및 도 11은 본 발명의 다른 일 실시예에 따라 DSM-CC 어드레서블 섹션 데이터를 이용하여 NRT 서비스를 수신하는 방법을7 설명하기 위한 도면이다.
도 11에서는 다른 일 실시예로서, VCT를 이용하여 DSM-CC 어드레서블 섹션 데이터를 시그널링 하는 방법을 나타낸다.
도 12 및 도 13은 본 발명의 일 실시 예에 따라 구성한 NST의 비트스트림 신택스를 도시한 것이다.
도 14는 본 발명의 일 실시 예에 따라 구성한 NRT_component_descriptor(MH_component_descriptor)의 비트 스트림 신택스를 도시한 것이다.
도 15는 본 발명의 일 실시 예에 따라 구성한 NRT_component_data가 속한 NRT 컴포넌트 디스크립터의 비트 스트림 신택스를 도시한 것이다.
도 16은 본 발명의 일 실시 예에 따라 구성한 NRT 어플리케이션을 시그널링 하기 위한 NRT-IT 섹션의 비트스트림 신택스를 도시한 것이다.
도 17은 본 발명에 따른 NCT섹션(NRT_content_table_section)에 대한 비트 스트림 신택스 구조의 일 실시예를 보인 도면이다.
도 18은 NRT 서비스 데이터에 대한 시그널링 정보를 제공하는 SMT 섹션의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
도 19는 본 발명의 일 실시 예에 따른 파일과 content_id의 매핑을 위한 FDT(File description table) 스키마를 설명하기 위해 도시한 것이고, 도 20은 본 발명의 다른 실시 예에 따른 파일과 content_id의 매핑을 위한 FDT 스키마를 설명하기 위해 도시한 것이다.
도 20은 본 발명의 다른 실시 예에 따른 파일과 content_id의 매핑을 위한 FDT 스키마를 설명하기 위해 도시한 것이다.
도 21은 본 발명의 일 실시예에 따른 수신기의 동작 방법을 나타낸 흐름도이다.
도 22 및 도 23은 NRT 서비스를 위한 NRT 컨텐트를 수신하여 저장 및 재생할 수 있는 수신 시스템의 일 실시예와 다른 일 실시예이다.
도 24는 본 발명의 일 실시예에 따라 수신기가 NRT 서비스를 수신하여 제공하는 방법을 설명하기 위한 흐름도이다.
도 25는 본 발명의 일 실시 예에 따라 구성한 트리거의 비트스트림 신택스를 도시한 것이다.
도 26은 본 발명의 일 실시예에 따라 트리거가 포함된 동기화된 데이터 스트리밍 방식에 따른 PES의 구조를 도시한 도면이다.
도 27은 본 발명의 일 실시예에 따라 트리거를 전송하기 위한 PES 페이로드의 동기화된 데이터 패킷 구조(synchrozied data packet structure)를 비트스트림 신택스로 도시한 것이다.
도 28은 DST상의 tap()에 포함될 수 있는 content type descriptor 구조의 일 실시예를 도시한 것이다.
도 29는 PMT의 신택스와 서비스 식별자 디스크립터의 일 실시예를 도시하고 있다.
도 30은 본 발명의 일 실시예에 따른 트리거 스트림 디스크립터를 도시한 도면이다.
도 31은 AIT테이블의 일 실시예를 도시한 도면이다.
도 32는 STT테이블의 일 실시예를 도시한 도면이다.
도 33은 본 발명의 일 실시예에 따른 TDO 및 트리거를 송신하기 위한 송신기를 개략적으로 나타낸 블록도이다.
도 34는 본 발명의 일 실시예에 따른 TDO 및 트리거를 수신하기 위한 수신기(300)를 개략적으로 나타낸 블록도이다.
도 35는 본 발명의 일 실시예에 의한 트리거 전송 방법을 개략적으로 나타낸 흐름도이다.
도 36은 본 발명의 일 실시예에 따른 수신기(300)의 동작을 개략적으로 나타낸 흐름도이다.
도 37은 본 발명의 일 실시예에 따른 트리거 수신 방법 중, 트리거 테이블을 이용하여 수신하는 방법을 나타낸 흐름도이다.
도 38은 본 발명의 일 실시예에 따라 DST를 이용하여 트리거 시그널링 정보 및 트리거를 전송하는 경우 수신기(300)의 동작을 나타낸 흐름도이다.
도 39는 본 발명의 일 실시예에 따라 트리거 스트림 디스크립터를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
도 40은 본 발명의 일 실시예에 따라 스트림 타입을 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
도 41은 본 발명의 일 실시예에 따라 AIT를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
도 42는 본 발명의 일 실시예에 따라 STT를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
도 43은 본 발명의 한 실시예에 따른 타이밍 다이어그램을 보여준다.
도 44는 본 발명의 한 실시예에 따른 활성화 트리거 데이터 전송 방법을 보여주는 흐름도이다.
도 45는 본 발명의 또 다른 실시예에 따른 타이밍 다이어그램을 보여준다.
도 46은 본 발명의 한 실시예에 따른 유지 트리거 데이터 전송 방법을 보여주는 흐름도이다.
도 47은 본 발명의 한 실시예에 따른 유지 트리거 수신 방법을 설명한다.
도 48은 본 발명의 한 실시예에 따른 타이밍 다이어그램을 보여준다.
도 49는 본 발명의 한 실시예에 따른 준비 트리거 수신 방법을 보여주는 흐름도이다.
도 50은 본 발명의 또 다른 실시예에 따른 준비 트리거 수신 방법을 보여주는 흐름도이다.
도 51은 본 발명의 또 다른 실시예에 따라 구성한 트리거의 비트스트림 신택스를 도시한 것이다.
도 52는 본 발명의 한 실시예에 따른 컨텐트 아이템 디스크립터의 신택스를 보여준다.
도 53은 본 발명의 한 실시예에 따른 인터넷 위치 디스크립터의 신택스를 보여준다.
도 54는 본 발명의 또 다른 실시예에 따른 트리거 전송 방법을 도시한 흐름도이다.
도 55은 본 발명의 실시예에 따른 수신기의 동작 방법을 보여주는 흐름도이다.
도 56은 본 발명의 실시예에 따른 수신기가 컨텐트 아이템의 위치 정보를 파악하는 방법을 보여준다.
도 57은 본 발명의 실시예에 따른 수신기가 트리거를 처리하는 방법을 보여주는 TDO 상태 천이도이다.
도 58은 본 발명의 일 실시 예에 따른 링크 디스크립터(link_descritor)의 신택스를 도시한 도면이다.
도 59 내지 도 60은 링크 디스크립터에 포함될 수 있는 필드들의 내용을 도시한 도면이다.
도 61 내지 도 62는 본 발명의 일 실시 예에 따라 도 58에 도시한 링크 디스크립터가 PSIP 테이블 중 이벤트 정보 테이블(EIT, event information table)의 디스크립터에 속한 경우 각 테이블간의 연결 관계를 나타내는 도면이다.
도 63은 본 발명의 일 실시 예에 따른 이벤트 디스크립터(Event_descritor)의 신택스와 이벤트 디스크립터에 포함될 수 있는 필드들의 내용을 도시한 도면이다.
도 64는 본 발명의 일 실시예에 따라 이벤트 디스크립터를 통하여 연동 프로그램을 식별하는 것을 설명하기 위한 도면이다.
도 65는 본 발명의 일 실시예에 따라 수신기(300)가 링크 디스크립터를 이용하여 방송 프로그램 또는 방송 채널과 연계된 컨텐츠를 수신하는 과정을 나타내는 흐름도이다.
도 66은 본 발명의 일 실시예에 따라 수신기(300)가 이벤트 디스크립터를 이용하여 방송 프로그램과 연동된 컨텐트를 제공하는 과정을 나타내는 흐름도이다.
도 67은 서비스 레벨 디스크립터인 비실시간 서비스 디스크립터(NRT_service_descriptor)의 신택스를 설명하기 위한 도면이다.
도 68은 비실시간 서비스 디스크립터에 포함되는 소비 모델(consumption_model) 필드의 각 값에 따른 의미를 나타낸다.
도 69는 본 발명의 일 실시 예에 따른 TDO 소비 모델에 의해 TDO가 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
도 70은 본 발명의 일 실시예에서, TDO 소비 모델에 따라 TDO 저장 영역을 할당하여 관리하는 방법을 나타내는 흐름도이다.
도 71은 본 발명의 일 실시 예에 따른 TDO 메타데이터 디스크립터를 도시한 도면이다.
도 72는 본 발명의 일 실시 예에 따른 수신기(300)가 TDO 메타데이터를 수신하는 과정을 나타내는 흐름도이다.
도 73은 본 발명의 일 실시 예에 따른 수신기(300)가 TDO 메타데이터에 포함된 시간 정보에 따라 TDO를 관리하는 방법을 나타내는 흐름도이다.
도 74는 본 발명의 다른 일 실시 예에 따라 수신기(300)가 TDO 메타데이터에 포함된 시간 정보 및 우선 순위 정보에 기초하여 TDO를 관리하는 방법을 나타낸 흐름도이다.
도 75는 본 발명의 한 실시예에 따른 인터넷 위치 디스크립터의 신택스를 보여준다.
도 76은 본 발명의 일 실시 예에 따라 FDT를 인터넷망을 통해 전송하는 경우, 수신기(300)의 동작을 나타낸 흐름도이다.
도 77은 본 발명의 일 실시 예에 따라 링크 디스크립터를 통해 FDT의 URL이 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
도 78은 본 발명의 다른 일 실시 예에 따라 NRT-IT를 통해 FDT의 URL이 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
도 79는 엔트리 컨텐트 아이템을 포함하는 비실시간 서비스를 개념적으로 나타낸 도면이다.
도 80 내지 도 81은 엔트리 컨텐트 아이템에 대한 정보를 전송하기 위한 비실시간 서비스 정보 테이블을 나타내는 도면이다.
도 82는 본 발명의 일 실시 예에 따라 엔트리 컨텐트 아이템이 전송되는 경우의 수신기의 동작 방법을 설명하기 위한 도면이다.
도 83은 본 발명의 일 실시 예에 따라 전송되는 복수의 비실시간 서비스 오브젝트를 개념적으로 나타낸 도면이다.
도 84는 본 발명의 일 실시 예에 따른 서비스 맵 테이블에 포함된 비실시간 서비스 디스크립터의 신택스를 도시한 도면이다.
도 85 내지 도 86은 본 발명의 다른 일 실시 예에 따른 다른 비실시간 정보 테이블(NRT_Information_table, NRT-IT)의 신택스를 설명하기 위한 도면이다.
도 87은 본 발명의 다른 일 실시 예에 따른 다른 비실시간 위치 디스크립터(Other_NRT_location_descriptor)의 신택스를 설명하기 위한 도면이다.
도 88은 본 발명의 일 실시 예에 따른 방송 서비스 수신 방법을 설명하기 위한 흐름도이다.
도 89 내지 도 97은 본 발명의 일 실시예에 따른 네트워크 토폴로지를 설명한다.
도 98은 본 발명의 일 실시예에 따른 수신기(300)를 나타낸다.
도 99는 본 발명의 일 실시 예에 따른 트리거의 XML 포맷을 나타낸다.
도 100 내지 도 101은 본 발명의 다른 일 실시 예에 따른 트리거의 XML 포맷을 나타낸다.
도 102는 본 발명의 실시 예에 따른 트리거 URL 디스크립터의 신택스를 나타낸다.
도 103은 본 발명의 실시 예에 따른 TDO 트리거 테이블의 신택스를 나타낸다.
도 104는 본 발명의 실시 예에 따른 수신기(300)의 동작 방법을 나타낸다.
도 105는 본 발명의 다른 일 실시 예에 질의 결과를 담는 ACR-Resulttype의 XML 스키마 다이어그램(schema diagram)을 보여준다.
도 106은 본 발명의 실시 예에 따른 수신기(300)의 트리거 요청 및 수신 방법을 설명하기 위한 흐름도이다.
도 107은 본 발명의 실시 예에 따른 HTTP GET 명령 포맷 기반 트리거 요청 메시지를 나타낸다.
도 108은 본 발명의 실시 예에 따른 HTTP POST 명령 포맷 기반 트리거 요청 메시지를 나타낸다.
도 109 내지 도 110은 본 발명의 일 실시 예에 따른 트리거 요청 결과 메시지의 XML 스키마 다이어그램을 나타낸다.
도 111은 본 발명의 일 실시 예에 따른 DO 디스크립터를 나타낸다.
도 112는 본 발명의 일 실시 예에 따라 구성한 타임 슬롯 디스크립터의 비트 스트림 신택스를 도시한 것이다.
도 113은 타임 슬롯 디스크립터의 서브 필드들의 내용을 도시한 도면이다.
도 114는 본 발명의 실시 예에 따른 어플리케이션 바운더리 디스크립터를 나타낸다.
도 115는 본 발명의 다른 일 실시 예에 따라 확장된 DO Descriptor를 나타낸다.
도 116은 본 발명의 실시 예에 따른 인터넷 위치 테이블을 나타낸다.
도 117은 본 발명의 실시 예에 따른 시그널링 테이블의 질의 테이블을(Query terms for Signaling Table Requests)을 나타낸다.
도 118은 인터넷을 통한 트리거 전송에 있어서, Short Polling 사용시 요청 및 응답간 타임라인을 나타낸다.
도 119는 인터넷을 통한 트리거 전송에 있어서, HTTP Streaming 사용시 요청 및 응답간 타임라인을 나타낸다.
도 120은 본 발명의 다른 일 실시 예에 따른 트리거의 구조를 나타낸다.
도 121은 본 발명의 일 실시 예에 따른 트리거 스트림 디스크립터를 나타낸다.
도 122는 본 발명의 실시 예에 따른 트리거 및 TDO API의 사용 예를 나타낸다.
도 123은 본 발명의 다른 일 실시 예에 따른 트리거 스트림 연관 디스크립터(Trigger stream association descriptor)를 나타낸다.
도 124는 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)을 나타내며, 도 125는 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)에서 사용되는 URL 기능 코드 값 테이블을 나타낸다.
도 126 및 도127은 본 발명의 실시 예에 따른 시그널링 테이블 요청 메시지의 제2 쿼리 정보 및 응답 관계의 실시 예들을 나타낸다.
도 128는 본 발명의 또 다른 일 실시 예에 따른 ILT를 나타내며, 도 129는 도 128에서 사용되는 URL_fuction_code 값 테이블을 나타낸다.
도 130은 본 발명의 일 실시 예에 따른 데이터 스트림 소비 모델을 포함하는 소비 모델 필드를 설명하기 위한 도면이다.
도 131은 데이터 스트림 소비 모델로 할당된 비실시간 서비스를 수신하여, DO를 위한 데이터를 제공하는 수신기의 방송 서비스 수신 방법을 설명하기 위한 흐름도이다.
도 132은 본 발명의 실시 예에 따른 복수 파일 HTTP 스트리밍 요청 메시지의 XML 포맷을 나타낸다.
도 133은 본 발명의 또 다른 일 실시 예에 따른 ILT의 신택스를 나타내며, 도 134는 도 133에 도시된 ILT에서 사용되는 URL 기능 코드를 설명하기 위한 테이블이다.
도 135는 본 발명의 실시 예에 따른 TDO를 위한 실시간 데이터를 수신할 수 있는 트리거 API의 XML 포맷을 나타낸다.
도 136은 본 발명의 또 다른 일 실시 예에 따른 제2 쿼리 정보 테이블을 나타낸다.
도 137은 본 발명의 일 실시 예에 따른 향상된 EPG 디스크립터의 신택스를 나타내는 도면이다.
도 138은 본 발명의 다른 일 실시 예에 따른 향상된 EPG 디스크립터의 신택스를 나타내는 도면이다.
도 139는 본 발명의 일 실시 예에 따라 EPG 소비 모델이 할당된 경우의 비실시간 서비스 디스크립터에 포함되는 소비 모델(consumption_model) 필드의 각 값에 따른 의미를 나타낸다.
도 140은 본 발명의 일 실시 예에 따른 방송 서비스를 수신하는 방법으로서 특히 EPG 소비 모델의 비실시간 서비스에 기초하여 전자 프로그램 가이드를 제공하는 방법을 설명하기 위한 흐름도이다.
도 141은 본 발명의 일 실시 예에 따른 전자 프로그램 가이드와 각 테이블간의 관계를 설명하기 위한 도면이다.
도 142는 본 발명의 일 실시 예에 따라 제공되는 전자 프로그램 가이드를 설명하기 위한 도면이다.
도 143 내지 도 144는 본 발명의 일 실시 예에 따라 사용자가 추가 정보를 요청한 경우의 전자 프로그램 가이드 화면을 나타낸다.
도 145는 본 발명의 다른 일 실시 예에 따른 연결 관계(linkage) 정보가 다른 테이블과 연계되는 것을 나타내기 위한 도면이다.
도 146은 본 발명의 일 실시 예에 따른 연결 관계(linkage) 디스크립터의 신택스를 나타내는 도면이다.
도 147은 본 발명의 실시 예에 따른 연결 관계 디스크립터의 타겟 타입 필드를 나타낸다.
도 148은 연결 관계 디스크립터의 다른 일 실시 예를 나타낸다.
도 149는 본 발명의 실시 예에 따른 화면의 일부 영역에서 동작하는 DO를 나타낸다.
도 150은 본 발명의 실시 예에 따른 전자 프로그램 가이드가 표시될 일부 영역들을 나타낸다.
도 151은 부가 서비스 오브젝트가 표시될 영역 및 크기별로 인덱스가 할당되는 것을 나타낸다.
도 152는 본 발명의 실시 예에 따른 오브젝트가 사용 불가능한 영역의 지정을 나타낸다.
이하 의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
한편, 본 발명에서 사용하는 용어 중 real time (RT) service는, 말 그대로 실시간 서비스를 의미한다. 즉, 시간에 구속받는 서비스이다. 이에 반해, non-real time (NRT) service는 RT 서비스 이외의 비실시간 서비스를 의미한다. 즉, 비실시간 서비스는 시간에 구속받지 않는 서비스이다. 그리고 NRT 서비스를 위한 데이터를 NRT 서비스 데이터라고 할 수 있다.
본 발명에 따른 방송 수신기는 지상파, 케이블, 인터넷 등과 같은 매체를 통해 비실시간(NRT) 서비스를 수신할 수 있다.
NRT 서비스는 방송 수신기의 저장 매체에 저장된 후, 기 설정된 시간이나 유저의 요청에 따라 디스플레이 장치에 표시될 수 있다. NRT 서비스는 파일 형태로 수신되어 저장 매체에 저장되는 것을 일 실시예로 한다. 저장 매체는 방송 수신기의 내부에 장착된 내장 HDD인 것을 일 실시예로 한다. 또 다른 예로, 저장 매체는 방송 수신 시스템의 외부에 연결된 USB(Universal Serial Bus) 메모리, 외장 HDD 등이 될 수도 있다.
NRT서비스를 구성하는 파일들을 수신하여 저장 매체에 저장하고, 유저에게 서비스하기 위해서는 시그널링 정보가 필요하다. 본 발명은 이를 NRT 서비스 시그널링 정보 또는 NRT 서비스 시그널링 데이터라고 할 수 있다.
본 발명에 따른 NRT 서비스는 NRT 서비스 시그널링 데이터를 포함한 IP 데이터그램을 얻는 방식에 따라 Fixed NRT 서비스와 Mobile NRT 서비스로 구분할 수 있다. 특히 Fixed NRT 서비스는 고정형 방송 수신기로 제공되고, Mobile NRT 서비스는 이동형 방송 수신기로 제공된다.
도 1은 RT 서비스와 NRT 서비스를 제공하는 개념을 개시한다.
방송국은 기존 방식에 따라 즉, 현재의 지상파 방송(또는 모바일 방송)과 같이 RT 서비스를 송신한다. 이때, 방송국은 RT 서비스를 송신하고 그 과정에서 남는 대역폭을 이용하거나 또는 전용 대역폭을 이용하여 NRT 서비스를 제공할 수 있다. 즉, RT 서비스와 NRT 서비스는 동일 채널 또는 다른 채널을 통해 전송된다. 따라서 방송 수신기에서 RT 서비스와 NRT 서비스를 구분하고, 구분된 NRT 서비스를 저장한 후 필요시에 유저에게 제공하기 위해 NRT 서비스 시그널링 정보(또는 NRT 서비스 시그널링 데이터)가 요구된다. NRT 서비스 시그널링 정보(또는 NRT 서비스 시그널링 데이터)는 뒤에서 상세히 설명하기로 한다.
예를 들어, 방송국에서는 방송 서비스 데이터를 실시간으로 송신하고, 뉴스 클립, 날씨 정보, 광고, Push VOD 등을 비실시간으로 송신할 수 있다. 또한 NRT 서비스는 뉴스 클립, 날씨 정보, 광고, Push VOD 뿐만 아니라, 실시간 방송 스트림 중 특정 장면들, 특정 프로그램의 상세 정보, 미리보기 등이 될 수도 있다.
종래의 방송 수신기(즉, legacy device)는 실시간 서비스를 수신하여 처리할 수는 있으나, 비실시간 서비스를 수신하여 처리할 수는 없다. 즉, 종래의 방송 수신기(즉, legacy device)는 실시간 서비스를 전송하는 채널에 포함된 NRT 스트림에 의해 그 동작이 영향을 받지 않는 것이 원칙이다. 다시 말해, 종래의 방송 수신기는 NRT 서비스를 수신하여도 적절하게 처리할 수 있는 수단이 구비되지 않아 수신된 NRT 서비스를 처리할 수 없다.
반면, 본 발명에 따른 방송 수신기(즉, NRT device)는 RT 서비스와 결합된 NRT 서비스를 수신하여 적절하게 처리할 수 있으므로, 시청자에게 종래 방송 수신기에 비해 다양한 기능을 제공할 수 있다.
도 2는 본 발명의 일 실시예에 따른 NRT 서비스의 구조를 설명하기 위한 도면이다.
본 발명에 따른 하나의 NRT 서비스는 도 2에서와 같이 하나 이상의 컨텐트 아이템(또는 컨텐트 또는 NRT 컨텐트라 함)를 포함하고, 하나의 컨텐트 아이템은 하나 이상의 파일을 포함하는 것을 일 실시예로 한다. 본 발명에서 파일과 오브젝트는 동일한 의미로 사용될 수 있다.
컨텐트 아이템은 독립적으로 재생이 가능한 최소 단위이다. 예를 들어, 비실시간으로 제공되는 뉴스가 있고, 뉴스에는 경제 뉴스, 정치 뉴스, 생활뉴스가 포함된다고 할 때, 뉴스는 NRT 서비스라 할 수 있고, 경제 뉴스, 정치 뉴스, 생활 뉴스 각각은 컨텐트 아이템이라 할 수 있다. 그리고, 경제 뉴스, 정치 뉴스, 생활 뉴스 각각은 하나 이상의 파일로 구성될 수 있다.
이때 NRT 서비스는 RT 서비스와 동일한 방송 채널 또는 전용 방송 채널을 통해 MPEG-2 트랜스포트 스트림(TS) 패킷 형태로 전송될 수 있다. 이 경우 NRT 서비스를 식별하기 위하여 유일한 PID가 NRT 서비스 데이터의 TS 패킷에 할당되어 전송될 수 있다. 본 발명은 IP 기반의 NRT 서비스 데이터가 MPEG-2 TS 패킷화되어 전송되는 것을 일 실시예로 한다.
이때, NRT 서비스 데이터를 수신하는데 필요한 NRT 서비스 시그널링 데이터는 NRT 서비스 시그널링 채널을 통해 전송된다. NRT 서비스 시그널링 채널은 IP 계층 상에서 특정 IP 스트림을 통하여 전송되는데, 이때 이 특정 IP 스트림도 MPEG-2 TS 패킷화되어 전송될 수 있다. NRT 서비스 시그널링 채널로 전송되는 NRT 서비스 시그널링 데이터는 NRT 서비스 맵 테이블(Service Map Table, SMT), NRT 서비스 테이블(NRT Service Table, NST), NRT 컨텐트 테이블(NRT Content Table, NCT) 및 NRT 정보 테이블(NRT Information Table, NRT-IT), 텍스트 프래그먼트 테이블(TFT)중 적어도 하나를 포함할 수 있다. NST 또는 SMT는 IP 레이어에서 구동하는 적어도 하나의 NRT 서비스 또는 NRT 서비스를 구성하는 컨텐트 아이템 또는 파일들의 접속 정보를 제공하는 것을 일 실시예로 한다. NRT-IT 또는 NCT는 NRT 서비스를 구성하는 컨텐트 아이템 또는 파일들의 상세 정보를 제공하는 것을 일 실시예로 한다.
또한, SMT(또는 NST) 및 NRT-IT(또는 NCT)를 포함할 수 있는 NRT 서비스 시그널링 데이터는 MPEG2 TS상의 PSIP 테이블에 포함되거나, 가상 채널(Virtual Channel)내의 IP 레이어상의 NRT 서비스 시그널링 채널을 통해 전송될 수도 있다. 그리고, 하나의 가상 채널을 통해 복수의 NRT 서비스 데이터가 제공될 수 있다.
비실시간 정보 테이블(NRT-IT)은 수신 장치에 저장되도록 다운로드될 수 있는 콘텐트를 기술하는 정보를 포함한다. NRT-IT에 제공되는 정보는, 콘텐트의 타이틀(예를 들어, 다운로드될 수 있는 프로그램의 이름), 콘텐트가 다운로드될 수 있는 시간, 및 콘텐트 권고, 캡션 서비스의 이용가능성, 콘텐트 식별, 기타 메타데이터와 같은 정보를 포함할 수 있다.
또한, 텍스트 프래그먼트 테이블(TFT)은 콘텐트 항목이나 서비스에 대한 상세 기술 정보를 제공하기 위한 테이블이다. TFT는 다수의 언어를 지원하는 데이터 구조를 포함하고, 이에 따라 서로 다른 여러 언어들로 된 상세 기술들(각 스트링은 하나의 언어에 대응함)을 나타낼 수 있다. 텍스트 프래그먼트 테이블은 table_id 값(TBD)을 갖는 개인 섹션(private sections)에 포함되며, TFT_id에 의해 구별될 수 있다. TFT 섹션은 서비스 시그널링 채널 내에서 IP 패킷들에 포함되며, 이 채널은 IANA에 의해 멀티캐스트 IP 어드레스(224.0.23.60)와 포트(4937)를 할당받은 채널일 수 있다.
우선, 수신기는 예를 들어, SMT 내 service_category 필드를 참조하여 해당 서비스가 NRT 서비스인지 여부를 식별할 수 있다. 그리고 수신기는 SMT로부터 NRT 서비스 식별자 정보(NRT_service_id) 필드를 통해 NRT 서비스를 유일하게 식별할 수 있다.
한편, NRT 서비스는 복수의 컨텐트 아이템을 포함할 수 있다. 수신기는 각각의 NRT 컨텐트 아이템을 NCT 또는 NRT-IT내의 content_id 필드를 통해 식별할 수 있다. 그리고, NRT 컨텐트 아이템과 NRT 서비스는 NCT의 NRT_channel_id 필드와 상술한 NRT_service_id 필드를 일치시킴으로써 연결될 수 있다.
한편, NRT 서비스는 FLUTE 세션을 통해 전송되고, 수신기는 상기 FLUTE 세션으로부터 FDT 정보를 추출할 수 있다. 그리고 상기 추출된 FDT 정보 내 content_id는 NCT 또는 OMA-BCAST SG의 컨텐트 식별자(content_id)와 매핑하여 사용자 등에 의해 선택된 NRT 서비스 컨텐트를 확인하여 수신할 수 있다. 상기 매핑 방법에 대해 간략하게 설명하면 예를 들어, 수신기는 NRT 컨텐트 아이템을 구성하는 각 파일을 FLUTE 세션 내에서의 FDT 내에 명시된 TOI 및 Content-Location 필드를 이용하여 식별하며, 상기 각 TOI 또는 Content-Location과 컨텐트 아이템은 FDT에서의 content_ID 필드를 NCT의 컨텐트 식별자(content_id) 필드 또는 OMA BCAST SG의 컨텐트 식별자(content_id) 필드와 매핑하고, NRT 서비스 컨텐트를 확인하여 수신할 수 있다.
도 3은 본 발명의 일 실시예에 따라 구성한 NRT 서비스에 대한 프로토콜 스택을 도시한 것이다.
본 발명에서는 Fixed NRT 서비스를 위해, 파일 형태의 NRT 서비스를 IP 계층에서 IP 패킷화한 후 특정 가상(Virtual) 채널을 통해 MPEG-2 TS 형태로 전송하는 것을 일 실시예로 한다.
본 발명에서는 MPEG-2 기반의 PSI(Program Specific Information) 또는 PSIP(Program and System Information Protocol) 테이블 예를 들어, 가상 채널 테이블(VCT)를 통하여 가상 채널(Virtual channel) 내, NRT 서비스의 존재 여부 및 NRT 서비스의 식별(Identification) 정보를 시그널링하는 것을 일 실시예로 한다.
본 발명은 IP 기반의 NRT 서비스의 접속 정보를 시그널링하는 NRT 서비스 시그널링 데이터를 전송하는 NRT 서비스 시그널링 채널을 IP 계층에서 특정 IP 스트림으로 IP 패킷화한 후 MPEG-2 TS 형태로 전송하는 것을 일 실시예로 한다.
즉, 방송국에서는 도 3에서와 같이 파일 전송 프로토콜(File Transfer Protocol) 방식에 따라 NRT 컨텐트 아이템 또는 파일들을 패킷화하고, 패킷화된 NRT 컨텐트 아이템 또는 파일들을 ALC 또는 LCT(Asynchronous Layered Coding 또는 Layered Coding Transport) 방식에 따라 패킷화한다. 그리고, 패킷화된 ALC 또는 LCT 데이터는 다시 UDP 방식에 따라 패킷화되며, 패킷화된 UDP 데이터는 다시 IP 방식에 따라 패킷화되어 IP 데이터가 된다. 여기서, IP 데이터는 FLUTE (File Delivery over Unidirectional Transport) 세션에 대한 정보를 포함하는 FDT(File Description Table)를 포함할 수 있다. 패킷화된 IP 데이터를 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 할 수 있다.
또한, 본 발명에서는 NRT 서비스의 IP 데이터그램들을 어드레서블 섹션 구조로 인캡슐레이션하고, 다시 MPEG-2 TS 포맷으로 패킷화하는 것을 일 실시예로 한다. 즉, 하나의 어드레서블 섹션 구조는 하나의 IP 데이터그램에 섹션 헤더와 CRC 첵섬(checksum)이 추가적으로 더해지는 형태를 가지게 된다. 이러한 어드레서블 섹션 구조의 형태는 프라이빗 데이터(private data) 전송을 위한 DSM-CC(Digital Storage Media Command and Control) 섹션 포맷에 부합되는 구조로 될 수 있다. 따라서 어드레서블 섹션은 DSM-CC어드레서블 섹션이라고 할 수 있다.
한편, NRT 컨텐트/파일들을 수신하기 위해 필요한 SMT(또는 NST) 및 NRT-IT(또는 NCT) 중 적어도 하나를 포함하는 NRT 서비스 시그널링 데이터는 IP 레이어 상의 NRT 서비스 시그널링 채널을 통해 전송될 수 있다. 따라서, NRT 서비스 시그널링 데이터는 IP 레이어 상의 NRT 서비스 시그널링 채널을 통해 전송하기 위해 IP 방식에 따라 패킷화될 수 있다. NRT 서비스 시그널링 채널은 Well-known IP address를 가지는 IP 데이터그램에 인캡슐레이션되어 멀티캐스트(Multicast)되는 것을 일 실시예로 한다.
또한, 일 실시예에 따르면 NRT 서비스 시그널링 데이터는 PSI(Program Specific Information) 또는 PSIP(Program and System Infromation Protocol) 테이블 섹션 데이터에 포함되어 전송될 수 있다. 그리고, PSI테이블은 일 실시예로, PMT(Program Map Table), PAT(Program Association Table) 등을 포함할 수 있으며, PSIP테이블은 일 실시예로, VCT(Virtual Channel Table), TVCT(Terrestrial Virtual Channel Table), CVCT(Cable Virtual Channel Table), STT(System Time Table), RRT(Rating Region Table), ETT(Extended Text Table), DCCT(Direct Channel Change Table), DCCSCT(Direct Channel Change Selection Code Table), EIT(Event Information Table), 및 MGT(Master Guide Table)를 포함할 수 있다.
한편, 이와 같은 NRT 서비스를 불법 유통 및 복제로부터 보호하기 위해 방송 서비스의 디지털 저작권 관리 및 암호화를 위한 데이터로서 오픈 모바일 연합(Open Mobile Allience, OMA)에서 제안된 BCAST DRM(BroadCast Services Enalbler Suite Digital Rights Management)이 사용될 수 있다.
그리고, 상술한 PSI(Program Specific Information), PSIP(Program and System Information Protocol) 테이블 섹션 데이터, DSM-CC 어드레서블 섹션 데이터 및 OMA BCAST DRM 데이터를 184 바이트 단위로 분할한 후, 각184 바이트에 4바이트의 MPEG 헤더를 부가하면, 188 바이트의 MPEG-2 TS 패킷을 만들 수 있다. 이때, MPEG 헤더의 PID에 할당되는 값은 NRT 서비스와 NRT 서비스 시그널링 채널을 전송하는 TS 패킷을 식별할 수 있는 유일한 값일 수 있다.
MPEG-2 TS 패킷들은 물리 계층(physical layer)에서 기 정해진 전송 방식 예를 들면, 8-VSB 전송 방식으로 변조되어 수신 시스템으로 전송될 수 있다.
한편, 도 4는 본 발명의 다른 일 실시예에 따라 구성한 NRT 서비스에 대한 프로토콜 스택을 도시한 것이다.
도 4는 모바일 NRT 서비스를 제공하기 위한 프로토콜 스택의 일 예를 보이고 있다. 도 4는 IP 계층과 물리 계층 사이에 적응 계층(Adaption Layer)을 포함시켜, MPEG-2 TS 포맷을 사용하지 않으면서 모바일 서비스 데이터의 IP 데이터그램과 시그널링 정보의 IP 데이터그램을 전송할 수 있도록 하는데 있다.
즉, 방송국에서는 도 4에서 파일 전송 프로토콜(File Transfer Protocol) 방식에 따라 NRT 컨텐트/파일들을 패킷화하고, 이를 다시 ALC/LCT(Asynchronous Layered Coding/Layered Coding Transport) 방식에 따라 패킷화한다. 상기 패킷화된 ALC/LCT 데이터는 다시 UDP 방식에 따라 패킷화되며, 상기 패킷화된 ALC/LCT/UDP 데이터는다시 IP 방식에 따라 패킷화되어 ALC/LCT/UDP/IP 데이터가 된다. 상기 패킷화된 ALC/LCT/UDP/IP 데이터를 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 한다. 이때 OMA BCAST SG 정보도 상기 NRT 컨텐트/파일과 동일한 과정을 거쳐 IP 데이터그램을 구성할 수 있다.
또한 상기 NRT 컨텐트/파일들을 수신하기 위해 필요한 NRT 서비스 시그널링 정보(예를 들어, SMT)는 서비스 시그널링 채널을 통해 전송되는데, 상기 서비스 시그널링 채널은 UDP(User Datagram protocol) 방식에 따라 패킷화되고, 상기 패킷화된 UDP 데이터는 다시 IP 방식에 따라 패킷화되어 UDP/IP 데이터가 된다. 상기 UDP/IP 데이터도 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 한다. 이때 상기 서비스 시그널링 채널은 Well-known IP desinationaddress와 well-known desination UDP port number를 가지는 IP 데이터그램에 인캡슐레이션되어 멀티캐스트(Multicast)되는 것을 일 실시예로 한다.
그리고, 서비스 보호를 위한 OMA BCAST DRM은 UDP 헤더, IP 헤더가 순차적으로 더해져 하나의 IP 데이터그램을 구성한다.
적응 계층에서 상기 NRT 서비스, NRT 서비스 시그널링 채널, 모바일 서비스 데이터의 IP 데이터그램들을 모아 RS 프레임을 생성한다. 상기 RS 프레임에 OMA BCAST SG의 IP 데이터그램도 포함될 수 있다.
상기 RS 프레임에서 컬럼의 길이(즉, 로우의 개수)는 187 바이트로 정해지며, 로우의 길이(즉, 컬럼의 개수)는 N바이트이고, 상기 N은 전송 파라미터(또는 TPC 데이터)와 같은 시그널링 정보에 따라 달라질 수 있다.
상기 RS 프레임은 모바일 물리 계층(mobile physical layer)에서 기 정해진 전송 방식 예를 들면, VSB 전송 방식으로 변조되어 수신 시스템으로 전송된다.
한편, 본 발명에서는 NRT 서비스의 전송 여부를 PSI/PSIP 테이블을 통해 시그널링하는 것을 일 실시예로 한다. 일 예로, NRT 서비스의 전송 여부를 가상 채널 테이블(VCT) 또는 지역 가상 채널 테이블(TVCT)에 시그널링하는 것을 일 실시예로 한다.
도 5는 본 발명의 일 실시 예에 따라 구성한 TVCT 테이블 섹션(VCT)의 비트스트림 섹션을 도시한 것이다.
도 5를 참조하면, TVCT 테이블 섹션은 MPEG-2 프라이빗 섹션의 테이블 형태를 가지는 것을 일 예로 하여 설명하나, 반드시 이에 한정되는 것으로 아니다.
오디오/비디오에 관한 패켓 식별(PID)정보는 상기 오디오/비디오의 VCT, PID를 파싱하여 TVCT를 통해 전송된고 오디오/비디오에 관한 패킷 식별(PID)정보를 알 수 있다.
따라서, TVCT 테이블 섹션은 헤더, 바디와 트레일러로 구분할 수 있고, 헤더 부분은 table_id 필드에서 protocol_version 필드까지이며, transport_stream_id 필드는 16비트 필드로서, 다중화(multiplex)를 위해 0의 PID 값에 의해 정의되는 PAT(program association table) 내의 MPEG-2 전송 스트림 ID를 나타낸다. 바디 부분은 num_channels_in_section 필드는 8비트 필드로서, VCT 섹션 내의 가상 채널(virtual channel)들의 개수를 상술한다. 마지막으로 트레일러 부분은 CRC_32 필드를 포함한다.
service_type 필드(6비트)는, 가상 채널에서 전송되는 서비스의 타입을 나타낸다. 도 6과 도 7은 본 발명의 실시예에 따른 service_type 필드의 값을 정의한 예를 나타낸 도면이다. 본 발명의 일 실시 예에서, 도 6에 표시된 service_type의 값 '0x04'는 service_type이 ATSC_data_only_service라는 것과 가상 채널을 통해 NRT 서비스가 전송될 수 있다는 것을 의미한다. 본 발명의 다른 실시 예에서, 도 7에 표시된 service_type의 값'0x08'은 service_type이 ATSC_nrt_service라는 것과 가상 채널은 ATSC 기준에 부합한 NRT 서비스를 제공한다는 것을 의미한다.
도 8은 NRT 서비스의 어플리케이션을 식별하기 위한 DST 테이블 섹션(data_service_table_section) 및 DST 섹션에 포함된 data_service_table_bytes의 비트스트림 신택스를 도시한 것이다. 방송국은 도 8에 도시된 DST 테이블 섹션을 통하여 ASTC규격에 부합하는 NRT 서비스 데이터 또는 NRT 서비스 시그널링 데이터를 전송할 수 있다.
이하 data_service_table_section 구조를 포함하는 필드들의 시맨틱스의 일 실시예는 다음과 같다.
table_id 필드(8비트)는 해당 테이블 섹션의 타입 식별을 위한 필드로서, 본 필드를 통해 해당 테이블 섹션이 DST를 구성하는 테이블 섹션임을 알 수 있다. 예를 들어, 수신기는 본 필드의 값이 0XCF를 가지면 해당 테이블 섹션이 DST를 구성하는 테이블 섹션임을 식별할 수 있다.
section_syntax_indicator 필드(1비트)는 DST의 섹션 형식을 정의하는 지시자로서, 섹션 형식은 예를 들어, MPEG의 short-form 신택스(0) 등이 될 수 있다.
private_indicator 필드(1비트)는 해당 섹션의 형태가 프라이빗 섹션 형태를 따르는지 여부를 나타내며 '1'로 설정될 수 있다.
private_section_length 필드(12비트)는 해당 필드 이후의 나머지 테이블 섹션 길이를 나타낸다. 또한 이 필드의 값은 '0xFFD'를 넘지 않는다.
table_id_extension 필드(16비트)는 테이블에 종속적이고, 남은 필드들의 범위를 제공하는 table_id 필드의 논리적인 부분이 될 수 있다.
version_number 필드(5비트)는 DST의 버전 넘버를 나타낸다.
current_next_indicator 필드(1비트)는 전송된 DST 테이블 섹션이 현재 적용 가능한지 여부를 지시한다. 이 필드 값이 0이면, 아직 테이블이 존재 하지 않고 다음 테이블에 유효함을 의미한다.
section_number 필드(8비트)는 해당 테이블 섹션이 DST 테이블을 구성하는 섹션들 내 섹션 넘버를 나타낸다. DST의 첫 섹션의 section_number는 '0x00'으로 설정된다. section_number는 DST의 섹션이 늘어갈때마다 하나씩 증가한다.
last_section_number 필드(8비트)는 DST 테이블을 구성하는 마지막 섹션 번호를 나타낸다. (가장 높은 section_number)
data_service_table_bytes는 DST를 구성하는 데이터 블록을 나타내며, 자세한 구조는 후술한다.
CRC_32 필드는 32비트 필드로서, 전체 DST 섹션을 프로세싱한 후 MPEG-2 시스템에 정의된 디코더(decoder)의 레지스터(register)들로부터 제로 출력(zero output)을 보장(ensure)하는 CRC(cyclic redundancy check) 값을 포함한다.
한편, 상술한 data_service_table_bytes 구조를 포함하는 필드들의 시맨틱스의 일 실시예를 정의하면 아래와 같다.
sdf_protocol_version 필드 (8비트)는, Service Description Framework 프로토콜의 버전을 설명한다.
application_count_in_section 필드 (8비트)는, DST 섹션 내 리스트 된 어플리케이션들의 수를 설명한다.
compatibility_descriptor() 필드는, 해당 구조가 DSM-CC 호환성 디스크립터를 포함함을 나타낸다. 그 목적은 해당 데이터 서비스를 사용하기 위해 그 능력을 판단하기 위해 수신 플랫폼에서 어플리케이션의 호환성 요구사항들을 시그널링하기 위함이다.
app_id_byte_length 필드 (16비트)는, 어플리케이션을 식별하는데 사용되는 바이트들의 개수를 설명한다.
app_id_description 필드 (16비트)는, 다음 application identification bytes의 포맷과 시맨틱스를 설명할 수 있다. 예를 들어, app_id_description 필드의 값은 다음의 표 1과 같이 정의할 수 있다.
Figure 112014031286144-pct00001
app_id_byte 필드 (8비트)는, 어플리케이션 식별자의 바이트를 표현한다.
tap_count 필드 (8비트)는, 해당 어플리케이션에 의한 사용되는 Tap() 구조들의 개수를 설명한다.
protocol_encapsulation 필드 (8비트)는, Tap() 필드에 의해 참조되는 특정 데이터 엘리먼트를 전송하기 위해 사용되는 프로토콜 인캡슐레이션의 타입을 설명한다. protocol_encapsulation 필드의 값은 다음과 같은 표 2와 같이 정의되어 사용될 수 있다.
Figure 112014031286144-pct00002
action_type 필드 (7비트)는, Tap() 필드에 의해 참조되는 데이터의 속성을 나타낼 수 있다.
resource_location 필드 (1비트)는, 다음 Tap 구조 내 리스트 된 association_tag 값과 매칭되는 association_tag 필드의 위치를 설명한다. 해당 필드가 '0'으로 설정되면 매칭되는 association_tag는 현재 MPEG-2 프로그램의 PMT 내 존재한다. 이와 달리, '1'로 설정되면 매칭되는 association_tag는 해당 데이터 서비스의 Network Resources Table 내 DSM-CC Resource Descriptor에 존재한다.
Tap() 필드는, 하위 계층의 통신 채널에 포함된 어플리케이션 단계의 데이터 엘리먼트를 찾기 위한 정보를 포함할 수 있다. Tap() 필드 내의 association_tag 필드에는 어플리케이션 단계의 데이터 엘리먼트간의 대응관계 정보가 포함될 수 있다. 하나의 Tap 구조 내의 association_tag 필드의 값은 현재 PMT 내에 포함된 하나의 association tag 디스크립터의 association_tag 필드의 값에 대응한다. 예를 들어, Tap()필드는 하기의 표 3과 같은 필드들을 포함한 특정 구조를 포함할 수 있다.
Figure 112014031286144-pct00003
tap_id 필드 (16비트)는 데이터 엘리먼트들을 식별하기 위해 어플리케이션에 의해 사용된다. tap_id의 값은 DST 내 Tap()와 관련된 app_id_byte필드들의 값에 의해 범위가 정해진다. tap_id 값은 데이터 서비스 프로바이더에 의해 선택된다. 또한, tap_id 값은 데이터 엘리먼트를 다루기 위한 어플리케이션에서 사용될 수 있다.
Use 필드 (16비트)는, association_tag에 의해 참조되는 통신 채널을 특정하기 위해 사용된다.
association_tag 필드 (16비트)는, Network Resource Table 내 리스트 된 DSM-CC 리소스 디스크립터나 또는 PMT 내에 리스트 된 데이터 엘리먼트리 스트림 중 어느 하나를 유일하게 식별한다. 해당 필드의 값은 데이터 서비스의 PMT 내 association_tag_descriptor의 association_tag 값과 일치할 수 있다.
Selector() 필드는, association_tag 필드에 의해 참조되는 통신 채널 또는 데이터 엘리먼트리 스트림 내에 이용 가능한 특정 데이터 엘리먼트를 설명한다. 또한, selector 구조는 해당 데이터 엘리먼트를 위해 요구되는 프로토콜을 지시할 수 있다.
tap_info_length 필드 (16비트)는, 해당 필드 다음 필드의 디스크립터들의 바이트의 수를 설명할 수 있다.
descriptor() 필드는, 해당 디스크립터 포맷에 따른 디스크립터 정보를 포함할 수 있다.
app_info_length 필드 (8비트)는, 해당 필드 다음의 디스크립터들의 바이트 수를 설명한다.
descriptor() 필드는, 해당 디스크립터 포맷에 따른 디스크립터 정보를 포함할 수 있다.
app_data_length 필드 (16비트)는, app_data_byte 필드들의 바이트 단위의 길이를 설명한다.
app_data_byte (8비트)는, 어플리케이션과 관련된 입력 파라미터들과 다른 프라이빗 데이터 필드들을 1바이트로 표현한다.
service_info_length 필드 (8비트)는, 다음 디스크립터들의 바이트 단위의 수를 설명한다.
descriptor() 필드는, 해당 디스크립터 포맷에 따른 디스크립터 정보를 포함할 수 있다.
service_private_data_length 필드 (16비트)는, 프라이빗 필드들의 바이트 단위의 길이를 설명한다.
service_private_data_byte 필드 (8비트)는, 프라이빗 필드를 1바이트로 표현한다.
도 9는 본 발명에 따른 수신 시스템에서, 데이터 방송 스트림을 전달하기 위한 ATSC A/90 규격과 IP 멀티캐스트 스트림(Multicast stream)을 전송하는 ATSC A/92 규격을 활용하여 NRT 서비스를 수신하여 서비스하는 방법을 설명하고 있다.
즉, 각 가상 채널을 구성하는 스트림의 정보는 VCT의 Service location descriptor나 PMT의 ES_loop에 시그널링 된다. 예를 들어, 도 7 또는 도 8에서와 같이 VCT의 서비스 타입(service type)이 0x02(즉, 디지털 A/V/Data)이거나 0x04(즉, Data only)인 경우, 또는 0x08(즉, NRT Only service)인 경우, 상기 가상 채널로 NRT 서비스 스트림이 전송될 수 있다. 이때 VCT의 service location descriptor(또는 PMT의 ES loop)에 포함된 stream_type 필드 값에 0x95(즉, DST 전송)가 할당되어 있으면 데이터 방송이 전송됨을 의미한다. 만일 stream_type 필드 값이 없거나, 0x95가 아니면 일반 A/V만 전송된다. 즉, 상기 service location desciptor에 포함된 stream_type 필드 값이 0x95를 나타내면, 이때의 Elementary_PID 필드 값은 DST(Data Service Table)의 PID 값이 된다. 따라서 상기 Elementary_PID를 통해 DST를 수신할 수 있다.
상기 DST를 통해 어플리케이션(Application)의 종류 및 이 채널을 통해 전송되는 데이터 방송 스트림의 상세 정보를 알 수 있다. 본 발명에서는 DST를 이용하여 NRT 어플리케이션(즉, NRT 서비스)를 식별하도록 한다.
즉, DST의 App_id_descrption 필드는 뒤이어 오는 application identification bytes의 포맷 및 해석을 규정한다. 본 발명은 NRT 어플리케이션을 식별하기 위해 상기 App_id_descrption 필드에 '0x0003'를 할당하는 것을 일 실시예로 한다. 상기 예시한 수치는 일 예에 불과하며, 상기 수치로 본 발명의 권리범위가 제한되는 것은 아니다.
만일, 상기 App_id_descrption 필드 값이 '0x0003'이면, 그 다음에 오는 Application_id_byte 값은 NRT 어플리케이션의 Service ID값이 된다. 상기 NRT 어플리케이션을 위한 서비스 아이디는 해당 서비스를 전 세계적으로 유일하게 식별하는 URI 값을 가질 수 있다.
상기와 같이 NRT 어플리케이션임을 식별한 이후에는 NRT 서비스 시그널링 채널의 IP 데이터그램으로부터 분할된 MPEG-2 TS 패킷의 PID를 Tap 정보를 통해 찾는다. 그러면, 상기 tap 정보를 통해 찾은 PID를 갖는 MPEG-2 TS패킷들로부터 NRT 서비스 시그널링 채널을 전송하는IP 데이터그램을 획득할 수 있으며, 상기 획득된 IP 데이터그램으로부터 NRT 서비스 시그널링 데이터를 획득할 수 있다. 이때 상기 NRT 서비스 시그널링 채널의 IP 접속정보는 잘 알려진 IP 접속 정보 즉, well-known IP address와 well-known UDP port number가 사용될 수 있다.
즉, 상기 DST에서 Protocol_encapsulation 필드 값이 0x04이면 비동기 IP 스트림이 전송되고, Selector_type필드 값이 0x0102이면 selector_bytes를 통해 destination address를 가리키는 device_id 값이 전달된다. 상기 selector_bytes 값을 정확히 해석하기 위해서 multiprotocol_encaplsulation_descriptor가 사용되며, device_id값 중에서 유효(valid)한 바이트의 개수를 시그널링해준다. 결국 Tap 정보를 통하여 해당 PID로 전송 되는 NRT 서비스 시그널링 채널의 IP Multicast address (혹은 address range)를 알 수 있게 된다.
따라서, 수신기는 상기 IP Multicast address (혹은 address range)에 접속하여 IP 스트림 즉, IP 패킷을 수신하고, 상기 수신된 IP 패킷으로부터 NRT 서비스 시그널링 데이터를 추출한다.
그리고, 수신기는 상기 추출된 NRT 서비스 시그널링 데이터를 기초로, NRT 서비스 데이터 즉, NRT 컨텐트 아이템/파일들을 수신하여 저장 매체에 저장하거나, 디스플레이 장치에 표시할 수 있다.
본 발명은 다른 실시예로, DST의 Stream Type 필드 값에 0x95 대신 새로운 값 예를 들어, 0x96을 사용하여 NRT서비스를 시그널링할 수 있다. 이는 기존 수신기가 데이터 방송 스트림의 존재 여부를 스트림 타입이 0x95인 스트림의 존재 여부로만 판단하여 동작할 경우, 새로운 어플리케이션인 NRT서비스에 대해 오동작할 우려가 있기 때문이다. 이러한 경우 스트림 타입을 새롭게 지정해 줌으로써 기존 수신기에서는 이를 무시하도록 하여 하위 호환성을 보장할 수 있을 것이다.
도 10 및 도 11은 본 발명의 다른 일 실시예에 따라 DSM-CC 어드레서블 섹션 데이터를 이용하여 NRT 서비스를 수신하는 방법을 설명하고 있다.
DST를 이용한 데이터 전송 방식은 모든 종류의 IP 데이터그램을 디지털 방송 스트림을 통하여 전송하기 위한 규격으로서, NRT 서비스에 대하여는 비효율적일 수 있다. 따라서, 도 10 과 도 11에서는 일 실시예로서, DSM-CC 어드레서블 섹션의 데이터를 통하여 NRT 서비스에 대한 IP 데이터그램의 IP 주소정보와 섹션 데이터를 포함하는 특정 스트림의 PID를 시그널링 하여 NRT 서비스를 수신하도록 하는 방법을 도시하고 있다.
도 10과 같이, 수신기는 VCT(또는 TVCT)의 서비스 타입(service type)이 0x08(즉, NRT Only service)인 경우, 상기 가상 채널로 NRT 서비스 스트림이 전송될 수 있다는 정보를 획득 할 수 있다. 즉, 수신기는 가상 채널의 PID와 채널 번호를 매핑하여 service_type 정보에 따라 NRT 서비스 존재 여부에 대한 정보를 획득 할 수 있다.
이때 VCT의 service location descriptor(또는 PMT의 ES loop)에 포함된 stream_type 필드 값에 0x0D가 할당되어 있으면 DSM-CC 스트림이 전송됨을 의미할 수 있다. 이때의 Elementary_PID 필드 값은 DSM-CC 어드레서블 섹션의 PID 값이 될 수 있다. 따라서 수신기는 Elementary_PID를 통해 NRT 서비스 데이터를 포함하는 DSM-CC 어드레서블 섹션을 수신할 수 있다.
즉, 수신기는 VCT 또는 PMT를 통해 DSM-CC 어드레서블 섹션의 PID를 획득할 수 있다. 여기서, 수신기는 해당 스트림의 PMT로부터 획득한 PID에 대응하는 NRT 서비스 시그널링 채널의 IP 주소 또는 NRT 서비스 데이터를 전송하기 위한 FLUTE 세션의 IP 주소를 포함하는 NRT_IP_address_list_descriptor_A() 필드를 획득할 수 있다.
그리고, 수신기는 NRT_IP_address_list_descriptor_A()필드로부터 획득한 IP 주소에 기초하여 IP 멀티캐스트 스트림 또는 IP 서브넷으로부터 DSM-CC 어드레서블 섹션 데이터를 수신할 수 있다. 수신기는 수신한 DSM-CC 어드레서블 섹션 데이터에서 상기 획득한 elementray_PID에 대응하는 PID가 존재하는 DSM-CC 어드레서블 섹션을 찾음으로써, 특정 NRT 서비스(예를 들어 A, B, 또는 C) 데이터를 포함하는 해당 IP 데이터그램을 획득할 수 있다.
도 11에서는 다른 일 실시예로서, VCT를 이용하여 DSM-CC 어드레서블 섹션 데이터를 시그널링 하는 방법을 나타낸다.
상술한 바와 마찬가지로, 수신기는 VCT에 명시된 서비스 타입(service_type)이 0X02, 0X04 또는 0X08인 경우 NRT 서비스 스트림이 전송될 수 있다는 정보를 획득할 수 있다. 그리고, 수신기는 DSM-CC 스트림을 수신하기 위하여 service_location_descriptor() 필드로부터 스트림 타입이 0X0D인 elementary_PID를 획득할 수 있다. 여기서, 수신기는 획득한 elementray_PID에 대응하는 NRT 서비스 시그널링 채널의 IP 주소 또는 NRT 서비스 데이터를 전송하기 위한 FLUTE 세션의 IP 주소를 포함하는 NRT_IP_address_list_descriptor_B() 필드를 VCT로부터 획득할 수 있다.
그리고, 수신기는 NRT_IP_address_list_descriptor_B()필드로부터 획득한 IP 주소에 기초하여 IP 멀티캐스트 스트림 또는 IP 서브넷으로부터 DSM-CC 어드레서블 섹션 데이터를 수신할 수 있다. 수신기는 수신한 DSM-CC 어드레서블 섹션 데이터에서 상기 획득한 elementray_PID에 대응하는 PID가 존재하는 DSM-CC 어드레서블 섹션을 파싱함으로써, 수신하고자 하는 특정 NRT 서비스(예를 들어 A, B, 또는 C) 데이터를 포함하는 IP 데이터그램을 획득할 수 있다.
이와 같은 NRT 서비스 시그널링 데이터 및 NRT 서비스 데이터 추출 과정을 예를 들어 설명하면 다음과 같다. 여기서는 VCT 내 service_type 필드 값에 0x08을 할당하여, 해당 가상 채널로 하나 이상의 NRT 서비스가 전송됨을 지시하는 것을 일 실시예로 한다.
즉, 수신기의 전원이 켜지고 디폴트 또는 사용자에 의한 채널이 튜너를 통해 선택되면, PSI/PSIP 섹션 핸들러는 상기 선택된 채널로 수신되는 방송 신호로부터 VCT와 PMT를 획득한다. 그리고 PSI/PSIP 섹션 핸들러는 상기 획득된 VCT를 파싱하여 NRT 서비스가 있는지를 확인한다. 이는 상기 VCT의 가상 채널 루프 내 service_type 필드 값을 확인하여 알 수 있다. 예를 들어, 상기 service_type 필드 값이 0x08이 아니면 해당 가상 채널은 NRT 서비스를 전송하지 않는다. 이때 상기 가상 채널은 기존 서비스(즉, legacy ATSC 서비스)를 전송하므로, 수신기는 상기 가상 채널에 포함된 정보에 따라 적절한 동작을 수행한다.
그리고, 역다중화기는 서비스 매니저의 제어에 의해 service_type 필드 값이 0x08이면, 해당 가상 채널은 NRT 서비스를 전송한다. 이 경우 상기 VCT의 가상 채널 루프 내 service location descriptor를 파싱하여 DST의 PID를 추출한다. 그리고 추출된 PID를 이용하여 DST를 수신한다.
그리고, 수신기는 상기 수신된 DST로부터 선택된 채널을 통해 제공되는 해당 서비스가 NRT 서비스인지를 확인한다.
상기 NRT 서비스는 App_id_descrption 필드 값으로부터 확인할 수 있다.
본 발명은 NRT 어플리케이션(즉, NRT 서비스)을 식별하기 위해 상기 App_id_descrption 필드에 '0x0003'를 할당하는 것을 일 실시예로 한다. 상기 예시한 수치는 일 예에 불과하며, 상기 수치로 본 발명의 권리범위가 제한되는 것은 아니다.
만일 상기 DST 내 App_id_descrption 필드 값이 '0x0003'이면, 그 다음에 오는 Application_ id_byte 값은 NRT 어플리케이션(즉, NRT 서비스)의 Service ID값이 된다. 그러므로, 서비스 매니저 또는 PSI/PSIP섹션 핸들러는 상기와 같이 NRT 어플리케이션(즉, NRT 서비스)임을 식별한 이후에 NRT 서비스 시그널링 채널의 IP 데이터그램으로부터 분할된 MPEG-2 TS 패킷의 PID를 찾기 위해 Tap을 추출한다. 이어 상기 추출된 Tap의 association_tag를 포함하는 스트림 PID를 PMT로부터 추출한다.
그리고, 어드레서블 섹션 핸들러는 상기 추출된 스트림 PID에 해당하는 MPEG-2 TS 패킷들을 수신하여 디캡슐레이션 즉, MPEG-2 헤더를 제거하여 DSM-CC 어드레서블 섹션을 복원할 수 있다.
이후, 수신기는 상기 DSM-CC 어드레서블 섹션으로부터 섹션 헤더와 CRC 첵섬을 제거하여 NRT 서비스 시그널링 채널을 전송하는 IP 데이터그램을 복원(recover)하고 복원된 IP 데이터그램으로부터 NRT 서비스 시그널링 데이터를 획득한다. 여기서, 상기 NRT 서비스 시그널링 채널을 전송하는 IP 데이터그램의 접속 정보는 well-known 데스티네이션(destination) IP 어드레스와 well-known 데스티네이션 (destination) UDP 포트 번호인 것을 일 실시예로 한다.
즉, 상기 DST에서 Protocol_encapsulation 필드 값이 0x04이면 비동기 IP 스트림이 전송되고, Selector_type필드 값이 0x0102이면 selector_bytes를 통해 destination address를 가리키는 device_id 값이 전달된다. 상기 selector_bytes값을 정확히 해석하기 위해서 multiprotocol_encaplsulation_descriptor가 사용되며, device_id값 중에서 유효(valid)한 바이트의 개수를 시그널링해준다. 결국 Tap 정보를 통하여 해당 PID로 전송되는 NRT서비스 시그널링 채널의 IP Multicast address (혹은 address range)를 알 수 있게 된다.
따라서, 수신기는 상기 IP Multicast address (혹은 address range)에 접속하여 IP 스트림 즉, IP 패킷을 수신하고, 상기 수신된 IP 패킷으로부터 NRT 서비스 시그널링 데이터를 추출한다.
수신기는 상기 추출된 NRT 서비스 시그널링 데이터를 기초로, NRT 서비스 데이터 즉, NRT 컨텐트 아이템/파일들을 수신하여 저장 매체에 저장하거나, 디스플레이 장치에 표시할 수 있다.
한편, 본 발명의 일 실시예에 따르면 상술한 NRT 서비스는 DCD(Dynamic Content Delivery) 서비스를 통해 제공될 수 있다. DCD 서비스는 수신기로 전송하는 컨텐츠를 주기적으로 또는 사용자가 원할 때 전송하는 서비스로서, 이 때의 컨텐츠는 수신기의 정보에 따라 서버세어 선택된 것을 의미한다. DCD 서비스는 컨텐츠 전달을 위한 통신 수단을 점대점(point-to-point) 방식과 브로드캐스트(broadcast) 방식을 지원하며, 본 발명은 상술한 NRT 서비스를 DCD서비스의 브로드캐스트 방식 중 하나인 OMA BCAST방식으로 전송하는 것을 일 실시예로 한다.
이와 같은 OMA BCAST방식의 DCD 서비스를 통해 NRT 서비스 데이터를 전송할 수 있다. 이 경우, 수신기는 NRT 서비스를 수신하기 위한 DCD 채널 정보를 획득하고, DCD 채널 정보에 기초하여 해당 DCD 채널을 통해 NRT 서비스를 수신할 수 있다.
그리고, 이와 같은 DCD 채널 정보는 상술한 NST에 포함되어 전송될 수 있다. 예를 들어, 수신기는 NST를 수신하고, DCD 부트스트랩(bootstrap)을 수행하여 DCD 채널 정보를 획득할 수 있다.
또한, 상술한 NST는 DCD 채널 정보의 시그널링을 위해 DCD 관리자 채널(Administrative channel)을 통해 수신할 수 있는 DCD 채널 메타데이터를 포함할 수 있다. 따라서, 수신기는 NST를 통해 NRT 서비스를 수신할 수 있는 채널에 대한 정보와 메타데이터를 획득할 수 있다.
따라서, NST에 DCD 채널 정보를 포함하여 전송하는 경우, 상술한 NRT 서비스 시그널링 데이터의 전송 과정 없이 NST를 통하여 DCD 채널에 접속하고, NRT 서비스를 수신할 수 있다.
이와 같이, 본 발명의 일 실시예에 따라 NST에 NRT 서비스를 수신할 수 있는 채널의 메타데이터가 포함되는 경우에는 몇 가지 장점이 있다.
먼저, 상술한 가상 채널의 서비스 타입에 기초하여 NRT 서비스 시그널링 데이터를 수신하는 과정 없이, NST에서 바로 NRT 서비스를 수신할 수 있는 채널 메타데이터를 수신함으로써 서비스 접근 속도를 높일 수 있다.
또한, 브로드캐스트(broadcast)환경에서 채널 변경 사항에 대한 업데이트 시그널링을 실시간으로 수행할 수 있다.
그리고, OMA BCAST SG에 포함되는 접속 정보를 NST를 참조함으로써 획득할 수 있게 된다. 예를 들어, 수신기는 NST에 포함된 DCD 채널 정보에 기초하여 DCD 채널 메타데이터를 수신하고, NST에서 획득한 NRT 서비스 시그널링 데이터와 DCD 채널 메타데이터에 기초하여 NRT 서비스를 수신하기 위한 접속 정보를 획득할 수 있다.
마지막으로, NST에 다른 가상 채널에 연계된 NRT 서비스의 목록을 포함하여 전송할 수 있다. 따라서, 이 경우 NRT 서비스의 목록 정보는 PSI또는 PSIP 계층이 아닌 IP계층을 통해 특정 NRT 서비스 시그널링 채널을 통해 전송될 수 있다. 따라서, 이 경우에는 PSI 또는 PSIP과의 하위 호환성이 보존될 수 있다.
한편, 상술한 바와 같이 DCD 채널 메타데이터를 포함하는 DCD 채널 정보는 OMA BCAST의 SG의 접속 정보에 포함될 수 있으며, 상기 접속 정보는 NST에 포함된 NRT 서비스 정보에 대응될 수 있다. 좀 더 구체적으로, 수신기는 OMA BCAST SG의 접속 정보(Access fragment)로부터 NST에 포함된 NRT 서비스 정보를 획득할 수 있다. 따라서, 수신기는 획득한 NRT 서비스 정보에 대응하는 NST를 수신하여 NRT 서비스를 수신하기 위한 정보를 획득할 수 있다.
한편, 이와 같은 DCD 채널을 통해 전송되는 NRT 서비스는 서비스 카테고리를 별도 할당하여 구분할 수 있다. 예를 들어, DCD 채널을 통해 전송되는 NRT 서비스의 서비스 카테고리는 0X0F로 식별될 수 있다.
도 12 및 도 13은 본 발명의 일 실시 예에 따라 구성한 NST의 비트스트림 신택스를 도시한 것이다.
여기서, 해당 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다. 예를 들어, SDP(Session Description Protocol)의 형태로 표현하여 SAP(Session Announcement Protocol)을 통하여 시그널링하는 등의 다른 방법도 사용할 수 있다.
NST는 NST가 전송되는 가상 채널(virtual channel) 내의 서비스 정보 및 IP 접속 정보를 기술하며, 각 서비스가 속하는 NRT 브로드캐스트 스트림(Broadcast stream)의 인식자인 NRT_service_id를 이용, 해당 서비스의 NRT 브로드캐스트 스트림 정보 또한 제공한다. 그리고 본 실시 예에 따른 NST는 하나의 가상 채널 내의 각 고정 NRT 서비스의 서술(Description) 정보를 포함하며, 서술자(Descriptor) 영역에 기타 부가 정보들이 포함될 수 있다.
num_NRT_services 필드(8비트)는 NST 섹션 내의 NRT 서비스의 수를 나타낸다.
한편, 본 실시 예에 따른 NST는, for loop를 사용하여 복수의 고정 NRT 서비스에 대한 정보를 제공한다. 이하 각 고정 NRT 서비스에 대해 다음과 동일한 필드 정보를 제공할 수 있다.
NRT_service_id 필드(16비트)는, 해당 NRT 브로드캐스트의 범위 내의 해당 NRT 서비스를 유일하게 식별하는 지시자이다. 상기 NRT_service_id는 해당 서비스를 통틀어 변하지 않는다. 여기서, 혼동을 피하기 위해 서비스가 종료되면, 상기 서비스를 위한 NRT_service_id는 적절한 시간이 경과한 후까지 다른 비실시간 서비스를 위하여 사용되지 않을 수 있다.
한편, 본 실시 예에 따른 NST는, for loop를 사용하여 복수의 컴포넌트에 대한 정보를 제공한다. essential_component_indicator 필드(1비트)는, 해당 필드의 값이 1로 설정되어 있으면 해당 컴포넌트는 NRT서비스를 위한 필수 컴포넌트 임을 지시한다. 그렇지 않으면, 해당 컴포넌트는 선택적인 컴포넌트임을 나타낸다.
port_num_count 필드(6비트)는 해당 UDP/IP 스트림 컴포넌트와 관련된 UDP 포트들의 넘버를 지시한다. 목적 UDP포트 넘버들의 값은 component_destination_UDP_port_num 필드 값으로부터 시작해서 하나씩 증가한다.
component_destination_IP_address_flag 필드(1비트)는 1로 설정되어 있으면 해당 컴포넌트를 위해 component_destination_IP_address 필드가 존재함을 나타내는 플래그이다.
component_destination_IP_address 필드(128비트)는 component_destination_IP_address_flag가 1로 설정되면 해당 필드는 존재하지만, component_destination_IP_address_flag가 0으로 설정되면 해당 필드는 존재하지 않을 것이다. 만약 해당 필드가 존재한다면, 해당 필드는 해당 NRT 서비스의 컴포넌트들을 전송하는 모든 IP 데이터그램들의 소스 IP 어드레스를 포함할 것이다. 해당 필드의 128 비트의 롱 어드레스의 제한적인 사용은 비록 현재 IPv6의 사용이 정의되지 않았지만 향후 IPv6의 사용을 가능하도록 하기 위함이다.
component_destination_UDP_port_num 필드(16비트)는 해당 UDP/IP 스트림 컴포넌트를 위한 목적 UDP 포트 넘버를 나타낸다.
num_component_level_descriptors 필드(4비트)는, 해당 IP 스트림 컴포넌트를 위한 추가 정보를 제공하는 서술자들의 수를 제공한다.
component_level_descriptors 필드는, 해당 IP 스트림 컴포넌트를 위한 추가 정보를 제공하는 하나 또는 그 이상의 디스크립터들을 식별한다.
num_NRT_service_level_descriptors 필드(4비트)는 해당 서비스를 위한 NRT 서비스 레벨 디스크립터들의 수를 나타낸다.
NRT_service_level_descriptor()은 해당 NRT 서비스를 위한 추가적인 정보를 제공하는 없거나 하나 이상의 서술자들을 식별한다. 여기에서, NRT 서비스에 대한 구체적인 서비스 타입을 알려줄 수 있다. 상기 구체적인 서비스 타입에는 예를 들어, 웹 컨텐츠를 제공하는 포털 서비스, 푸쉬 VOD, A/V 다운로드 등이 있을 수 있다.
num_virtual_channel_level_descriptors 필드(4비트)는 해당 가상 채널을 위한 가상 채널 레벨 서술자들의 수를 설명한다.
virtual_channel_level_descriptor()은 해당 NST가 서술하는 가상 채널에 대한 추가 정보를 제공하는 서술자를 나타낸다.
한편, NRT 서비스는 FLUTE를 통해 전송되며 NST 테이블 상의 접속 정보는 다음과 같이 FLUTE 세션 정보와 연결된다.
Source_IP_address는 FLUTE 세션(session)의 모든 채널을 전송하는 동일한 서버의 source IP 주소가 된다.
NRT_service_destination_IP_Address는 이 FLUTE 세션의 세션 레벨의 destination IP address가 있을 경우 시그널링된다.
Component는 FLUTE 세션 내의 채널에 매핑될 수 있으며 각 채널별로(세션 단위로 시그널링된 IP address와 다른) 별도의 destination IP address를 component_destination_IP_address를 통해 시그널링 할 수 있다.
또한, component_destination_UDP_port_num를 통해 destination port number를 시그널링하고 port_num_count를 통해 component_destination_UDP_port_num로부터 시작하는 목적 포트의 개수를 추가로 지정할 수 있다.
포트를 복수 개로 지정함으로써 하나의 목적 IP 어드레스에 대해 복수 개의 채널을 구성할 수도 있다. 여기서 하나의 컴포넌트는 복수 개의 채널을 지정할 수 있다. 그러나 일반적으로 목적 IP 어드레스를 통해 채널을 구별하는 것이 바람직하다. 여기서, 하나의 채널은 하나의 컴포넌트로 매핑된다고 볼 수 있다.
NRT 서비스를 위한 컨텐트 아이템들/파일들은 FLUTE를 통해 전송되며, NST 테이블 상의 접속 정보를 이용하여 해당 FLUTE 세션 정보를 시그널링한다.
도 14는 본 발명의 일 실시 예에 따라 구성한 NRT_component_descriptor(MH_component_descriptor)의 비트 스트림 신택스를 도시한 것이다.
NRT_component_descriptor()는 NST 내 각 NRT 서비스의 각 컴포넌트의 컴포넌트 디스크립터 루프 내에 나타날 것이다. 그리고 해당 디스크립터 내 모든 파라미터들은 NRT 서비스의 컴포넌트들을 위해 사용되는 파라미터들에 상응한다.
이하 도 14의 NRT_component_descriptor를 통해 전송되는 각 필드 정보에 대해 기술하면 다음과 같다.
component_type 필드(7비트)는 컴포넌트의 인코딩 포맷을 식별한다. 상기 식별 값은 RTP/AVP 스트림의 payload_type을 위해 할당된 값들 중의 하나일 수 있다. 또한, 식별 값은 96에서 127까지의 범위 내 다이내믹 밸류(dynamic value)일 수 있다. RTP를 거쳐 전송되는 미디어를 구성하는 컴포넌트들을 위해 본 필드의 값들은 해당 컴포넌트를 전송하는 IP 스트림의 RTP 헤더 내 payload_type 내 값들과 일치한다.
43에서 71까지의 범위 내 component_type 필드의 추가 값은 표준의 미래 버전에서 정의된다. NRT 서비스 스트림을 FLUTE 기반으로 전송할 경우에 FLUTE 세션에 대해 필요한 아래에 기술할 파라미터들을 추가로 시그널링하기 위하여 ATSC에서 FLUTE 컴포넌트를 위해 정의한 component_type인 38을 사용할 수도 있고, 아직 할당되지 않은 값인 43을 새로이 NRT 전송을 위한 component_type으로 정의하 여 쓸 수도 있다.
num_STKM_streams 필드(8비트)는, 해당 컴포넌트와 관련된 STKM 스트림들의 넘버를 식별한다.
STKM_stream_id 필드(8비트)는, 얻어진 해당 보호된 컴포넌트를 디크립트하기 위해 키들을 있는 STKM 스트림을 식별한다. 여기서, 상기 STKM 스트림을 위한 상기 컴포넌트 디스크립터 내에 STKM_stream_id 필드를 참조한다.
NRT_component_data(component_type) 필드는, 해당 컴포넌트를 표현하기 위해 필요한 인코딩 파라미터들 및 다른 파라미터들 중 적어도 하나를 제공한다. 여기서, NRT_component_data 엘리먼트의 구조는 component_type 필드의 값에 의해 결정된다.
FLUTE 세션들의 FDT(File Delivery Table)는 모든 컨텐트 아이템들의 아이템 리스트들을 전달하는데 사용되고, 상기 아이템들을 획득하는데 관련된 아이템들의 사이즈, 데이터 타입과 다른 정보들을 제공한다.
따라서, 본 발명은 NRT-IT를 사용해 구성된 SG로부터 선택된 컨텐트를 수신하기 위해 NST를 사용하여 해당 컨텐트를 전송하는 FLUTE 세션에 접속하기 위한 정보를 획득한다. 그리고, 본 발명은 해당 FLUTE 세션을 통해 전송되는 파일에 대한 정보를 NRT-IT의 컨텐트 아이템의 정보와 함께 맵핑한다. 이 경우에는, 선택된 컨텐트 아이템을 포함한 서비스의 식별은 상기 NST의 NRT_service_id를 통해 해결된다.
NRT 서비스는 FLUTE를 통해 전송되며 NST 테이블 상의 접속 정보는 다음과 같이 FLUTE 세션 정보와 연결된다.
Component는 FLUTE 세션 내의 채널에 매핑될 수 있으며 각 채널별로 (세션 단위로 시그널링된 IP 어드레스와 다른) 별도의 destination IP address를 component_destination_IP_address를 통해 시그널링 할 수 있다. 또한, component_destination_UDP_port_num을 통해 destination port number를 시그널링하고 port_num_count를 통해 component_destination_UDP_port_num로 부터 시작하는 목적 포트의 개수를 추가로 지정할 수 있다.
포트를 복수 개로 지정함으로써 하나의 destination IP address에 대하여 복수 개의 채널을 구성할 수도 있으며 이와 동일한 경우 하나의 Component가 복수 개의 채널을 지정하게 된다. 그러나 일반적으로 Destination IP address를 통해 채널을 구별하는 것을 권장하며 이 경우 하나의 채널은 하나의 component로 매핑된다고 볼 수 있다.
세션을 구성하는 컴포넌트의 추가적인 속성(attribute)을 시그널링하기 위하여 component_attribute_byte를 사용할 수 있다. FLUTE 세션을 시그널링하기 위하여 필요한 추가적인 파라미터들을 이를 통해 시그널링할 수 있다.
이와 관련하여, FLUTE 세션을 시그널링하기 위해서는 파라미터들이 필요하고, 이러한 파라미터들에는 반드시 필요한 필수 파라미터들과 해당 FLUTE 세션과 관련되어 선택적으로 필요한 파라미터들이 있다.
도 15는 본 발명의 일 실시 예에 따라 구성한 NRT_component_data가 속한 NRT 컴포넌트 디스크립터의 비트 스트림 신택스를 도시한 것이다.
하나의 NRT 서비스는 멀티플 FLUTE 세션들에 포함될 수 있다. 각 세션은 세션을 위해 사용되는 IP 어드레스들과 포트들에 의존하는 하나 또는 그 이상의 NRT 컴포넌트 디스크립터들을 이용하여 시그널링 될 수 있다.
이 FLUTE 컴포넌트 디스크립터(FLUTE component descriptor)는 NST의 Component_level_descriptor 루프를 통해 전달될 수 있다. FLUTE 채널이 복수 개일 경우에는 세션 레벨의 파라미터들인 TSI, session_start_time, session_end_Time 등은 한 번만 시그널링 되어야 하므로 여러 개의 채널의 컴포넌트 중에서 하나의 컴포넌트에서만 FLUTE 컴포넌트 디스크립터를 Component_level_descriptor 루프를 통해 전송할 수도 있다.
도 16은 본 발명의 일 실시 예에 따라 구성한 NRT 어플리케이션을 시그널링 하기 위한 NRT-IT 섹션의 비트스트림 신택스를 도시한 것이다.
NRT-IT에서 제공되는 정보는 컨텐트의 제목(예를 들어, 다운로드 가능한 프로그램의 이름), 다운로드 가능한 시간 및 정보 예컨대, 컨텐트 권고(content advisories), 캡션 서비스의 가용성(availability), 컨텐트 식별 및 다른 메타데이터를 포함한다. 컨텐트의 하나의 아이템은 하나 이상의 파일로 구성될 수도 있다. 예를 들어, 오디오/비디오 클립은 화면 디스플레이하는 데 사용할 수 있는 JPEG 축소 이미지(thumbnail image)로 재생할 수 있다.
NRT-IT의 인스턴스(instance)는 임의로 정의된 기간에 해당하는 데이타를 포함할수 있고 또는 지정된 시간에서 시작되고 무기한 미래에 끝나는 NRT 컨텐트를 서술할 수도 있다. 각 NRT-IT는 시작시간 및 무기한일 수 있는 지속기간을 나타낸다. 각 NRT-IT 인스턴스는 무려 256 섹션들로 분할될 수 있다. 각 섹션은 다수의 컨텐트 아이템의 정보를 포함하지만 특정 컨텐트 아이템의 정보는 분할될 수 없고 두 개 이상의 섹션들 안에 저장될 수 없다.
하나 이상의 NRT-IT 인스턴스가 걸리는 기간에 비해 연장된 다운로드 가능한 컨텐트 아이템은 이 NRT-IT 중에 첫 번째만 서술된다. 컨텐트 아이템 서술은 가용성 순서로 NRT_information_table_section()에 저장된다. 따라서, last_section_number의 값이 0보다 클 경우에(NRT-IT가 다수의 섹션에 전송됐음을 의미함), 첫 번째 섹션이 아닌 특정한 섹션의 모든 컨텐트 아이템 서술은 다음 섹션의 컨텐트 아이템 서술의 첫 가용성과 같거나 높은 첫 가용성을 지닐 것이다.
각 NRT-IT는 상기 기간 동안 특정 가상 채널에서 유효한 service_id의 특정 값과 관련된 NRT 서비스를식별한다.
num_items_in_section 필드(8비트)는 NRT-IT 섹션에서 서술된 컨텐트 아이템의 수를 나타낸다.
content_linkage 필드(16비트)는 0x0001에서 0xFFFF까지의 범위 내 컨텐트의 식별번호를 나타낸다. 값 0x0000은 사용되지 않는다. content_linkage는 두개의 결합(linkage) 기능: NRT 서비스와 관련된 FLUTE FDT의 하나 이상의 파일을 NRT-IT의 메타데이터를 결합 및 TF_id (identifier for Text Fragement in Text FragmentTable)도 형성한다. content_linkage 필드의 값은 컨텐트 아이템과 관련된 각 파일의 FLUTE FDT에서 FDTCotent-Linkage 엘리먼트의 값 또는 File-Content-Linkage 엘리먼트의 값에 해당한다. 우선순위 규칙은 FLUTE FDT 내 해당 컨텐트 결합 엘리먼트(content linkage element)를 포함한 각 content_linkage 값을 매칭할 경우에 적용된다.
content_descriptor는 각 컨텐트 아이템에 별도로 적용되는 디스크립터이다.
도 17은 본 발명에 따른 NCT섹션(NRT_content_table_section)에 대한 비트 스트림 신택스 구조의 일 실시예를 보인 도면이다. 상기 NCT 섹션의 각 필드의 상세한 설명은 다음과 같다.
도 17에서 table_id 필드(8비트)는 테이블의 식별자로서, NCT를 식별하는 식별자가 설정될 수 있다.
content_id 필드(16비트)는 상기 컨텐트(또는 파일)를 유일하게 식별할 수 있는 식별자를 표시한다.
즉, 수신기에서는 상기 NCT를 이용하여 NRT 컨텐트/파일의 구성 정보를 획득하고, 획득한 NRT 컨텐트/파일의 구성 정보를 기초로 NRT 컨텐트/파일에 대한 가이드를 제공할 수 있다. 그리고 이 가이드로부터 선택된 컨텐트/파일을 전송하는 FLUTE 세션의 접속 정보를 NST로부터 획득하고, 획득한 FLUTE 세션 접속 정보를 이용하여 상기 선택된 컨텐트를 수신할 수 있다.
한편, 본 발명은 NRT 서비스를 구성하는 컨텐트/파일들의 렌더링(rendering)에 필수적인 컨테이너 정보, 인코딩 정보, 미디어 오브젝트의 디코딩 파라미터를 상기 NCT에 포함하여 전송할 수 있다. 따라서 수신 시스템에서는 각 컨텐트별로 해당 컨텐트의 렌더링(rendering)에 필수적인 컨테이너 정보, 인코딩 정보, 미디어 오브젝트의 디코딩 파라미터를 추출하여 해당 컨텐트의 렌더링에 이용할 수 있게 된다.
도 18은 NRT 서비스 데이터에 대한 시그널링 정보를 제공하는 SMT 섹션의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
여기서, 해당 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다.
상기 SMT는 SMT가 전송되는 앙상블(Ensemble) 내의 모바일 서비스의 시그널링 정보(또는 NRT 서비스의 시그널링정보) 및 IP 접속 정보를 기술한다. 상기 SMT는 또한 각 서비스가 속하는 방송 스트림(Broadcast stream)의 인식자인 Transport_Stream_ID를 이용, 해당 서비스의 방송 스트림 정보를 제공한다. 그리고 본 발명의 실시예에따른 SMT는 하나의 앙상블 내의 각 모바일 서비스(또는 NRT 서비스)의 서술(Description) 정보를 포함하며, 디스크립터(Descriptor) 영역에 기타 부가 정보들이 포함될 수 있다.
상술한 바와 같이, SMT 섹션은 RS 프레임 내의 IP 스트림 형태로 포함되어 전송될 수 있다. 이 경우, 후술할 수신기의 RS 프레임 디코더들은 입력된 RS 프레임을 디코딩하고, 디코딩된 RS 프레임은 해당 RS 프레임 핸들러로 출력한다. 그리고 각 RS 프레임 핸들러는 입력된 RS 프레임을 로우(row) 단위로 구분하여 M/H TP를 구성하여 M/H TP 핸들러로 출력한다.
한편, SMT를 통해 전송될 수 있는 필드들의 예를 들면 다음과 같다.
table_id 필드(8비트)는 테이블의 타입을 구분시키기 위한 필드로서, 이를 통해 본 테이블 섹션이 SMT 내 테이블 섹션임을 알 수 있다.
num_services 필드(8비트)는 SMT 섹션 내의 서비스의 개수를 지시한다. 상기 SMT가 포함되는 앙상블로 적어도 하나의 모바일 서비스만 포함되어 수신될 수도 있고, 적어도 하나의 NRT 서비스만 포함되어 수신될 수도 있으며, 모바일 서비스와 NRT 서비스가 모두 포함되어 수신될 수도 있다. 만일 상기 SMT가 포함되는 앙상블로 NRT 서비스들만 포함되어 전송된다면, 상기 SMT에 포함되는 NRT 서비스의 개수를 지시할 수 있다
이후 상기 num_services필드 값에 해당하는 서비스 개수만큼 'for' 루프(또는 서비스 루프라 함)가 수행되어 복수의 서비스에 대한 시그널링 정보를 제공한다. 즉, 상기 SMT 섹션에 포함되는 서비스별로 해당 서비스의 시그널링 정보를 표시한다. 여기서, 서비스는 모바일 서비스일 수도 있고, NRT 서비스일 수도 있다. 이때 각 서비스에 대해 다음과 같은 필드 정보를 제공할 수 있다.
service_id 필드(16 비트)는 해당 서비스를 유일하게 식별할 수 있는 값을 표시한다(A 16-bit unsigned integer number that shall uniquely identify this service within the scope of this SMT section.). 하나의 서비스의 service_id 필드 값은 그 서비스가 유지되는 동안 변하지 않는다.
일 어떤 서비스가 종료되면 그 서비스의 service_id 필드 값은 일정 시간이 경과할 때까지 사용하지 않을 수 있다. 여기서, 상기 서비스가 NRT 서비스라면, 상기 service_id는 상기 NRT 서비스를 식별할 것이다
short_service_name_length 필드 (3비트)는 short_service_name 필드에 서술되는 숏 서비스 네임의 길이를 바이트 단위로 표시한다.
short_service_name 필드는 해당 서비스의 숏 네임을 나타낸다. 예를 들어, 서비스가 모바일 서비스이면 모바일 서비스의 숏 네임을, NRT 서비스이면 NRT 서비스의 숏 네임을 표시한다.
service_category 필드(6비트)는, 해당 서비스의 타입 카테고리를 식별한다. 해당 필드의 값이 "informative only" 지시하는 값으로 설정되면, 해당 필드의 값은 상기 서비스의 카테고리에 대한 인포머티브 디스크립션으로 다루어진다. 그리고 수신기는 수신되는 서비스의 실제 카테고리를 식별하기 위해 SMT의 component_level_descriptors() 필드를 검사하는 것이 요구된다. 비디오 및/또는 오디오 콤포넌트를 가진 서비스들을 위해 그것들은 NTP 타임 베이스 콤포넌트를 가진다.
특히, 본 발명과 관련하여, service_category 필드의 값이 예를 들어, '0x0E' 값을 가진 경우에는 해당 서비스는 NRT 서비스임을 지시한다. 이 경우, SMT 섹션에서 현재 서술하는 서비스의 시그널링 정보는 NRT 서비스의 시그널링 정보임을 알 수 있다.
만일 상기 서비스가 NRT 서비스이면, 상기 Source_IP_address 필드는 FLUTE 세션의 모든 채널을 전송하는 동일한 서버의 소스 IP 어드레스(source IP address)가 된다.
한편, 본 실시 예에 따른 SMT는, for loop를 사용하여 복수의 콤포넌트에 대한 정보를 제공한다.
이후 상기 num_components 필드 값에 해당하는 콤포넌트 개수만큼 'for' 루프(또는 콤포넌트 루프라 함)가 수행되어 복수의 콤포넌트에 대한 접속 정보를 제공한다. 즉, 해당 서비스에 포함되는 각 콤포넌트의 접속 정보를 제공한다. 이때 각 콤포넌트에 대해 다음과 같은 필드 정보를 제공할 수 있다. 여기서, 하나의 콤포넌트는 하나 의 FLUTE 세션에 대응되는 것을 일 실시예로 한다.
num_component_level_descriptors 필드(4비트)는 콤포넌트 레벨의 추가 정보를 제공하는 디스크립터의 개수를 표시한다.
상기 num_component_level_descriptors 필드 값에 해당하는 개수만큼 상기 콤포넌트 루프에 component_level_descriptor()들이 포함되어, 상기 콤포넌트에 대한 부가 정보를 제공한다.
num_service_level_descriptors 필드(4비트)는 해당 서비스 레벨의 추가 정보를 제공하는 디스크립터의 개수를 표시한다.
상기 num_service_level_descriptors 필드 값에 해당하는 개수만큼 상기 서비스 루프에 service_level_descriptor()들이 포함되어, 상기 서비스에 대한 부가 정보를 제공한다. 상기 서비스가 모바일 서비스이면 모바일 서비스에 대한 부가 정보를 제공하고, NRT 서비스이면 NRT 서비스에 대한 부가 정보를 제공한다.
num_ensemble_level_descriptors 필드(4비트)는 앙상블 레벨의 추가 정보를 제공하는 디스크립터의 개수이다.
상기 num_ensemble_level_descriptors 필드 값에 해당하는 개수만큼 상기 앙상블 루프에 ensemble_level_descriptor()들이 포함되어, 상기 앙상블에 대한 부가 정보를 제공한다.
한편, 도 18의 SMT에서도 component_level_descriptors()로서 component_descriptor()가 제공될 수 있다.
상기 component_descriptor()는 SMT의 콤포넌트 레벨 디스크립터component_level_descriptors()의 하나로서 사용되며, 해당 콤포넌트의 부가적인 시그널링 정보를 서술한다.
따라서, 모바일 NRT 서비스에서도 해당 FULTE 세션을 수신하기 위하여 필요한 시그널링 정보들은 도 14의 콤포넌트 디스크립터를 사용하여 제공할 수 있다.
예를 들어, 도 14의 콤포넌트 디스크립터의 component_type 필드 값이 38이면 component_data(component_type) 필드는 도 15와 같은 FLUTE 파일 딜리버리를 위한 데이터를 제공한다. 도 14, 도 15의 각 필드의 설명은 앞에서 했으므로 여기서는 생략하기로 한다.
도 19는 본 발명의 일 실시 예에 따른 파일과 content_id의 매핑을 위한 FDT 스키마를 설명하기 위해 도시한 것이고, 도 20은 본 발명의 다른 실시 예에 따른 파일과 content_id의 매핑을 위한 FDT 스키마를 설명하기 위해 도시한 것으로, FDT 인스턴트 레벨 엔트리 파일 지정 방식을 표현한다. NRT 컨텐트는 복수의 파일이 있지만 각 파일에는 표시가 없기 때문에 NRT 컨텐트의 관련된 파일을 찾기가 어렵다. 따라서, 도 19 및 도 20은 각 파일 내 FDT에 content_id을 삽입하는 것을 도시한다.
이하에서 FDT 인스턴스 레벨은, FDT에서 선언된 모든 파일의 공통 속성을 정의할 필요가 있는 경우 그에 대한 정의 부분을 포함하는 레벨을 의미하고, FDT 파일 레벨은, 각 파일에 개별적인 속성에 대한 정의를 포함하는 레벨을 의미하는 것으로 사용될 수 있다.
수신기는 해당 채널을 통해 전송된 서비스가 SMT를 기반으로 한 NRT 서비스인지를 식별한다. 또한, 수신기는 해당 NRT 서비스의 컨텐트 아이템 및 파일을 식별한다.
앞 설명에서 언급되듯이, 수신기는 NRT 서비스 내에 파일 및 컨텐트 아이템을 식별할 수 있지만, 수신기는 컨텐트 아이템의 파일에 대한 정보가 없기 때문에 컨텐트 아이템의 파일과 매칭할 수가 없다. 따라서, 수신기는 수신된 NRT 서비스를 처리할 수 없다.
따라서, 본 발명은 컨텐트 아이템과 관련되어 있는지를 식별하는 방법을 제공할 수 있다. 다시 말해서, 해당 방법은 컨텐트 아이템에 무슨 파일이 존재하는지를 보여줄 것이다. 이 경우에는, 수신기는 수신된 NRT 서비스 적절히 처리할 수 있다. 따라서, 해당 방법은 NRT 서비스를 전송해 FLUTE 세션 내 FDT 정보를 기반으로 지정할 수 있다. 예를 들어, 컨텐트 아이템을 구축하는 각 파일은 FLUTE 세션에서 지정된 content-location 및 TOI 필드로 기반으로 식별된다. FDT 내에 content_id는 NCT의 컨텐트 식별자(content_id) 또는 OMB BCAST SG 내 컨텐트 프래그먼트의 컨텐트 식별자와 매칭된다.
도 19 내지 20을 참조할 때, 1번으로 표시된 부분은 FDT-Instance 레벨(level)에서 컨텐트 식별자를 선언하는 것으로, 여기에서 선언된 컨텐트 식별자는 해당 FDT-Instance 내에서 선언된 모든 파일(file)에 부여된다. 물론 파일 레벨(File level)에서 컨텐트 식별자를 새롭게 부여함으로써 이 정보를 오버라이드(override) 할 수도 있다. 혹은 특정 파일이 FDT-Instance 레벨에 정의된 컨텐트 아이템(content item)이 아닌 다른 컨텐트 아이템에도 속한다면 하기에 설명할 파일 레벨 content_id를 부여하는 것을 통해 이를 알려줄 수도 있다. 본 실시 예에서는 content_id를 16 비트를 사용해 표현한다.
2번으로 표시된 부분은 파일 레벨에서 content_id를 선언하는 것으로 FDT Instance 내에 포함된 파일이 서로 다른 컨텐트 아이템에 속할 경우 이 방법을 이용해 각 파일이 어느 컨텐트 아이템 및 컨텐트의 모든 파일이 어느엔트리(entry)에 속하는 지를 시그널링 한다.
3번은 각 파일에 대해 해당 파일이 엔트리 파일(entry file)인지 여부를 알려주기 위한 방법이다. 즉, 컨텐트 아이템을 구성하는 여러 개의 파일들 중에서 가장 먼저 재생하거나 컨텐트 아이템을 접근하기 위해 반드시 먼저 실행해야 하는 루트 파일(root file)에 해당하는 파일을 엔트리 파일이라고 하며 이러한 정보를 알려주기 위한 방법을 나타낸다. entry 속성(attribute)은 생략이 가능하며 기본 값은 false로 생략되어 있는 경우 해당 파일은 엔트리 파일이 아님을 의미한다."엔트리(entry)"는 파일을 실행하기 위해 처리해야 할 파일의 헤드를 말한다. 예를 들어, "index.html"는 "엔트리"일 수 있다. 따라서, 엔트리 파일은 "true"로 설정 될 수 있고 다른 파일은 "false"로 설정될 수 있다. 엔트리 파일을 통해서, 동일한 파일을 전송하는 중복은 효과적으로 제어될 수 있다. 일단 파일이 다운로드했으면, 엔트리 파일이 다른 참조를 위한 컨텐트의 파일을 지시하기 때문에 다른 또는 별도의 인스턴스에 다운로드 할 필요가 없다.
특정한 파일은 파일 레벨에 관련된 그룹에서 엔트리 여부를 시그널링해서 특정한 그룹에서 엔트리의 역할을 하지만 다른 그룹에서는 해당 역할이 실패할 수도 있다. FDT-instance 레벨에서 컨텐트 식별자를 부여할 경우의 엔트리 파일 여부를 알려주는 방법은 아래와 같은 두 가지 방법을 생각해 볼 수 있다.
1) 엔트리 파일에 해당되는 파일에 대하여 파일 레벨 컨텐트 식별자를 추가로 부여하고 이의 엔트리 속성을 true로 설정하는 방법: 이 경우 컨텐트 식별자가 FDT-Instance 레벨과 파일 레벨에 중복되는 단점이 있으나 가장 융통성 있는 구조를 가질 수 있다. 다시 말해서, File-level 및 FDT-instance 레벨 중에 하나가 content_id를 지정할 수 있지만 다른 content_id가 File-level 및 FDT-instance 레벨에서 함께 지정됐을 경우에는 File-level의 content_id가 우선권이 있다.
2) 도 20에 도시한 FDT 스키마(schema)의 또 다른 실시 예와 같이 FDT-instance 레벨의 컨텐트 식별자 정의에서 엔트리 파일의 역할을 수행하는 파일들을 직접 레퍼런스(reference) 해주는 방식을 생각할 수 있다. 이를 위해 도 20의 실시 예에서는 FDT-instance 레벨 컨텐트 식별자를 위해 FDT-Content-ID-Type을 별도로 정의하고 이를 2번으로 표시된 바와 같이 엔트리 파일의 컨텐트 로케이션(content location)을 포함할 수 있도록 확장하였다. 2번의 경우에는, 엔트리 레벨은 그것의 content_id로 정의된다. 예를 들어, 각 content_id에서 어느 엔트리 파일이 있는지를 보여준다.
이 방법의 경우 컨텐트 로케이션(content-location)을 중복해서 시그널링 하는 부분이 단점이 될 수 있으나 각 컨텐트 아이템별로 엔트리 파일 구성 정보를 바로 획득할 수 있다는 점이 장점이 될 수 있다.
도 21은 본 발명의 일 실시예에 따른 수신기의 동작 방법을 나타낸 흐름도이다.
도 21을 참조하면, 본 발명의 일 실시예에서는 수신기가 NRT 서비스 시그널링 채널을 통해 NRT 서비스 시그널링 데이터를 수신하고, 수신한 NRT 서비스 시그널링 데이터를 이용하여 NRT 가이드 정보를 표시하며, 선택된 NRT 컨텐트에 대한 NRT 서비스 데이터를 수신하여 NRT 서비스를 제공할 수 있다.
먼저, 수신기에 전원이 켜지면, 사용자에 의해 채널이 선택된다(S1000). 그리고, 선택된 채널에 따라 물리적 전송 채널을 튜닝한다.
이후, 튜닝된 물리적 전송 채널로 수신되는 방송 신호로부터 VCT와 PMT를 획득한다(S1010). 그리고 상기 획득된 TVCT(VCT)를 파싱하여 NRT 서비스가 있는지를 확인한다(S1020). 이는 상기 VCT의 가상 채널 루프 내 service_type 필드 값을 확인하여 알 수 있다. 예를 들어, service_type 필드의 값이 0x08인 경우, NRT 서비스가 있는지를 확인할 수 있다. 그리고, 0X08이 아닌 경우에는 해당 가상 채널은 NRT 서비스를 전송하지 않으므로, 가상 채널에 포함된 정보에 따라 일반 A/V 서비스 제공 등의 적절한 동작을 수행할 수 있다(S1111).
한편, NRT 서비스가 존재하는 것으로 판단된 경우, 해당 가상 채널은 NRT 서비스를 전송하므로, NRT 서비스 시그널링 채널 접속을 위한 잘 알려진 IP주소(Wellknown IP address)를 포함하는 스트림의 특정 PID(PID_NST)와 매칭되는 PID(PID=PID_NST)를 획득한다(S1030).
그리고, 수신기는 획득한 PID 값(PID_NST)으로부터, 이와 일치하는 PID값을 갖는 트랜스포트 패킷(Transport Packet, TP)을 수신한다(S1040).
이후, 수신기는 수신한 TP로부터 NRT 서비스 테이블(NST)를 포함하는 NRT 서비스 시그널링 데이터를 추출하거나, 수신한 TP로부터 상술한 NRT 서비스 시그널링 채널 접속을 위한 IP 주소를 추출하여, IP 계층을 통해 다른 형태로 전송되는 NRT 서비스 시그널링 데이터를 수신한다(S1050).
그리고, 수신기는 NST로부터 각 NRT 서비스 별로, NRT 서비스 데이터의 전송을 위한 채널 정보를 획득한다(S1060).
이후, 수신기는 NRT 서비스 시그널링 데이터로부터 상기 획득한 채널 정보의 식별자인 Channel_id 값과 일치하는 NRT_channel_id 필드의 값을 가지는 NRT 컨텐트 테이블(NCT)를 획득한다(S1070).
그리고, 수신기는 획득한 NCT의 각 필드로부터 각 NRT 서비스를 구성하는 NRT 컨텐트에 대한 컨텐트 정보를 획득한다(S1080). 컨텐트 정보는 예를 들어, 상술한 NCT의 실시 예에 따라, content_delevery_bit_rate, content_available_start_time, content_available_end_time 및 content_title_text() 필드 중 적어도 하나를 포함할 수 있다.
그리고, 수신기는 컨텐트 정보를 이용하여 NRT 가이드 정보를 표시한다(S1090). 사용자는 표시된 NRT 가이드 정보로부터 사용 또는 수신하고자 하는 NRT 컨텐트를 선택할 수 있다.
이후, 수신기는 선택된 NRT 컨텐트가 속한 NRT 서비스 접속정보를 NST로부터 획득한다(S1100). NRT 서비스 접속정보는 예를 들어, NRT 서비스 데이터를 수신하기 위한 채널 정보 또는 IP 주소 정보를 포함할 수 있다.
그리고, 수신기는 획득한 NRT 서비스 접속 정보를 이용하여, NRT 서비스를 전송하기 위한 채널 또는 서버에 접속하여 해당 NRT 컨텐트를 수신하며(S1110), 수신한 NRT 컨텐트에 따라 적절한 동작을 수행할 수 있다.
도 22 및 도 23은 NRT 서비스를 위한 NRT 컨텐트를 수신하여 저장 및 재생할 수 있는 수신 시스템의 일 실시예와 다른 일 실시예이다.
도 23의 수신기는 오퍼레이션 제어부(100), 베이스밴드 처리부(110), 서비스 역다중화기(120), 스트림 콤포넌트 핸들러(130), 미디어 핸들러(140), 파일 핸들러(150), 서비스 매니저(160), PVR 매니저(170), 제1 저장부(180), SG 핸들러(190), EPG 매니저(191), NRT 서비스 매니저(192), 어플리케이션 매니저(194), 미들웨어 엔진(193), 프리젠테이션 매니저(195), 및 UI(User Interface) 매니저(196)를 포함할 수 있다.
베이스밴드 처리부(110)는 튜너(111)와 복조기(112)를 포함할 수 있다. 서비스 역다중화기(120)는 MPEG-2 TP 핸들러(121), PSI/PSIP 핸들러(122), MPEG-2 TP 역다중화기(123), 디스크램블러(124), 및 제2 저장부(125)를 포함할 수 있다.
스트림 콤포넌트 핸들러(130)는 PES(Packetized Elementary Stream) 복호기(131), ES(Elementary Stream)복호기(132), PCR 핸들러(133), STC 핸들러(134), DSM-CC 어드레서블 섹션 핸들러(135), IP 데이터그램 핸들러(136), 디스크램블러(137), UDP 핸들러(138), 서비스 시그널링 섹션 핸들러(138-1), 및 CAS(Conditional Access System)(139)을 포함할 수 있다.
미디어 핸들러(140)는 A/V 복호기(141)를 포함할 수 있다. 상기 파일 핸들러(150)는 ALC/LCT 스트림 핸들러(151), 파일 재건(reconstruction) 버퍼(152), XML 파서(153), FDT 핸들러(154), 디콤프레서(155), 및 제3저장부(156), 및 파일 디코더(157)를 포함할 수 있다.
이와 같이 구성된 도 23에서, 튜너(111)는 예를 들면, 지상파를 통해 수신되는 방송 신호 중 원하는 채널의 방송 신호를 서비스 매니저(160)의 제어에 의해 튜닝하여 중간주파수(IF: Intermediate Frequency) 신호로 다운 컨버전하여 복조기(112)로 출력한다. 상기 튜너(111)는 실시간 스트림과 비실시간 스트림을 수신할 수 있다. 본발명에서 비실시간 스트림은 NRT 스트림이라 하기로 한다.
복조기(112)는 튜너(111)로부터 입력되는 통과대역의 디지털 IF 신호에 대해 자동 이득 제어, 반송파 복구 및 타이밍 복구 등을 수행하여 기저대역 신호로 변환하고, 채널 등화를 수행한다. 예를 들어, 상기 방송 신호가 VSB 변조 신호인 경우 VSB 복조 과정을 수행하여 자동 이득 제어, 반송파 복구 및 타이밍 복구 등을 수행한다.
복조기(112)에서 복조 및 채널 등화된 데이터는 MPEG-2 TS(Transport Stream) 패킷 형태로 상기 MPEG-2 TP 핸들러(121)로 출력된다.
MPEG-2 TP(Transport Stream Packet) 핸들러(121)는 MPEG-2 TP 버퍼와 MPEG-2 TP 파서로 구성되며, 복조기(112)의 출력을 일시 저장한 후 TS 헤더를 분석하여, 복조기(112)의 출력이 실시간용 A/V TS 패킷이거나, NRT TS 패킷이면 역다중화기(123)로 출력하고, PSI/PSIP 테이블용 TS 패킷이면 PSI/PSIP 핸들러(122)로 출력한다.
상기 PSI/PSIP 핸들러(122)는 PSI/PSIP 섹션 버퍼와 PSI/PSIP 파서로 구성되며, 상기 MPEG-2 TP 핸들러(121)에서 출력되는 TS 패킷을 일시 저장한 후 테이블 식별자 등을 참조하여 상기 TS 패킷의 페이로드에 포함된 PSI/PSIP 섹션 데이터로부터 해당 테이블을 복원하여 파싱한다. 이때 하나의 테이블이 하나의 섹션으로 구성되는지 복수개의 섹션으로 구성되는지는 해당 섹션 내 table_id 필드, section_number 필드, last_section_number 필드 등을 통해 알 수 있다. 그리고 동일한 테이블 식별자를 갖는 섹션들을 모으면 해당하는 테이블을 완성할 수 있다. 예를 들어, VCT에 할당된 테이블 식별자를 갖는 섹션들을 모으면 VCT를 완성할 수 있다. 그리고 상기 파싱된 각 테이블의 정보는 서비스 매니저(160)에 의해 수집되어 제1 저장부(180)에 저장한다. 본 발명에 따른 VCT, PAT, PMT, DST 등의 테이블 정보가 상기 과정을 거쳐 제1 저장부(180)에 저장된다. 상기 서비스 매니저(160)는 상기 테이블 정보를 서비스 맵 및 가이드 데이터 형태로 상기 제1 저장부(180)에 저장한다.
역다중화기(123)는 입력되는 TS 패킷이 리얼 타임의 A/V TS 패킷이면 오디오 TS 패킷과 비디오 TS 패킷으로 분리한 후 PES 디코더(131)로 출력하고, NRT TS 패킷이면 DSM-CC 핸들러(135)로 출력한다. 또한 역다중화기(123)는 PCR(Program Clock Reference)가 포함된 TS 패킷이면 PCR 핸들러(133)로 출력하고, CA(Conditional Access) 정보가 포함된 TS 패킷이면 CAS(139)로 출력한다. NRT TS 패킷은 NRT 서비스 데이터를 포함하는 TS 패킷과 NRT 서비스 시그널링 채널을 포함하는 TS 패킷으로 구분된다. 상기 NRT 서비스 데이터의 TS 패킷에는 상기 NRT 서비스를 식별하기 위하여 유일한 PID가 할당되며, 상기 NRT 서비스 시그널링 채널을 포함하는 TS 패킷의 PID는 DST와 PMT를 이용하여 추출한다.
역다중화기(123)는 입력되는 TS 패킷의 페이로드가 스크램블되어 있으면, 디스크램블러(124)로 출력하고, 상기 디스크램블러(124)는 상기 CAS(139)로부터 디스크램블에 필요한 정보(예, 스크램블에 이용된 제어 단어등)를 입력받아 상기 TS 패킷에 대해 디스크램블을 수행한다.
역다중화기(123)는 일시 녹화, 예약 녹화, 타임시프트 중 어느 하나의 요청에 의해 입력되는 리얼 타임의 A/V 패킷을 제2 저장부(125)에 저장한다. 상기 제2 저장부(125)는 대용량 저장 매체로서, 일 예로 HDD 등이 될 수 있다. 상기 제2 저장부(125)에서의 다운로드(즉, 저장) 및 업로드(즉, 재생)는 PVR 매니저(170)의 제어에 의해 이루어진다.
역다중화기(123)는 재생 요청에 따라 상기 제2 저장부(125)로부터 업로드된 A/V TS 패킷으로부터 오디오 TS 패킷과 비디오 TS 패킷으로 분리하여 PES 디코더(131)로 출력한다.
역다중화기(123)는 전술한 처리를 위해 서비스 매니저(160) 또는/및 PVR(Personal Vedeo Recorder) 매니저(170)의 제어를 받는다.
즉, 서비스 매니저(160)는 VCT 내 service_type 필드 값이 NRT 서비스가 전송됨을 지시하면, 상기 VCT의 가상 채널 루프에 포함되어 수신되는 NRT 서비스 디스크립터(NRT_service_descriptor())로부터 각 NRT 서비스의 식별 정보를 추출하여 저장하고, 상기 VCT의 service location descriptor(또는 PMT의 ES loop)로부터 DST의 PID를 추출하여 DST를 수신한다.
그리고, 상기 수신된 DST로부터 NRT 서비스를 식별하고, 식별된 NRT 서비스를 수신하기 위해 상기 NRT 서비스 시그널링 채널을 포함하는 MPEG-2 TS 패킷의 PID를 DST와 PMT를 이용하여 추출한다. 상기 추출된 PID는 역다중화기(123)로 출력한다. 상기 역다중화기(123)는 상기 서비스 매니저(160)에서 출력하는 PID에 해당하는 MPEG-2 TS 패킷들을 어드레서블 섹션 핸들러(135)로 출력한다.
상기 PCR은 A/V 디코더(141)에서 오디오 ES 및 비디오 ES의 타임 동기 등을 위해 사용되는 시간 기준값이다. 상기 PCR 핸들러(133)는 입력되는 TS 패킷의 페이로드에 포함된 PCR을 복원하여 STC 핸들러(134)로 출력한다. 상기 STC 핸들러(134)는 상기 PCR로부터 시스템의 기준 클럭이 되는 STC(System Time Clock)를 복원하여 A/V 디코더(141)로 출력한다.
상기 PES 디코더(131)는 PES 버퍼와 PES 핸들러로 구성되며, 오디오 TS 패킷과 비디오 TS 패킷을 일시 저장한 후 각 TS 패킷으로부터 TS 헤더를 제거하여 오디오 PES와 비디오 PES로 복원한다. 상기 복원된 오디오 PES와 비디오 PES는 ES 디코더(132)로 출력된다. 상기 ES 디코더(132)는 ES 버퍼와 ES 핸들러로 구성되며, 오디오 PES와 비디오 PES로부터 각 PES 헤더를 제거하여 순수한 데이타인 오디오 ES와 비디오 ES로 복원한다. 상기 복원된 오디오 ES와 비디오 ES는 상기 A/V 디코더(141)로 출력된다.
A/V 디코더(141)는 각각의 디코딩 알고리즘으로 상기 오디오 ES와 비디오 ES를 디코딩하여 압축 이전의 상태로 복원한 후 프리젠테이션 매니저(195)로 출력한다. 이때 상기 STC에 따라 오디오 ES와 비디오 ES의 디코딩시 타임 동기가 이루어진다. 일 예로, 오디오 디코딩 알고리즘은 AC-3 디코딩 알고리즘, MPEG 2 audio 디코딩 알고리즘, MPEG 4 audio 디코딩 알고리즘, AAC 디코딩 알고리즘, AAC+ 디코딩 알고리즘, HE AAC 디코딩 알고리즘, AAC SBR 디코딩 알고리즘, MPEG surround 디코딩 알고리즘, BSAC 디코딩 알고리즘중 적어도 하나를 적용하고, 비디오 디코딩 알고리즘은 MPEG 2 video 디코딩 알고리즘, MPEG 4 video 디코딩 알고리즘, H.264 디코딩 알고리즘, SVC 디코딩 알고리즘, VC-1 디코딩 알고리즘 중 적어도 하나를 적용할 수 있다.
CAS(139)는 CA 스트림 버퍼와 CA 스트림 핸들러로 구성되며, 상기 MPEG-2 TP 핸들러(121)에서 출력되는 TS 패킷 또는 UDP 데이터그램 핸들러(138)에서 복원되어 출력되는 서비스 보호 데이터를 일시 저장한 후 상기 저장된 TS 패킷 또는 서비스 보호 데이터로부터 디스크램블에 필요한 정보(예를 들어, 스크램블에 사용된 제어 단어 등)를 복원한다. 즉, 상기 TS 패킷의 페이로드에 포함된 EMM(Entitlement Management Message), ECM(Entitlement Control Message) 등을 추출하고, 추출된 EMM, ECM 등을 분석하여 디스크램블에 필요한 정보를 획득한다. 상기 ECM은 스크램블에 사용된 제어 단어(CW)를 포함할 수 있다. 이때 상기 제어 단어는 인증키로 암호화되어 있을 수 있다. 상기 EMM은 해당 데이터의 인증키와 자격 정보를 포함할 수 있다. 상기 CAS(139)에서 획득한 디스크램블에 필요한 정보는 디스크램블러(124,137)로 출력된다.
DSM-CC 섹션 핸들러(135)는 DSM-CC 섹션 버퍼와 DSM-CC 섹션 파서로 구성되며, 상기 역다중화기(123)에서 출력되는 TS 패킷을 일시 저장한 후 상기 TS 패킷의 페이로드에 포함된 어드레서블 섹션을 복원하고, 상기 어드레서블 섹션의 헤더와 CRC 첵섬(checksum)을 제거하여 IP 데이터그램을 복원한 후 IP 데이터그램 핸들러(136)로 출력한다.
IP 데이터그램 핸들러(136)는 IP 데이터그램 버퍼와 IP 데이터그램 파서로 구성되며, 상기 DSM-CC 섹션 핸들러(135)로부터 전달받은 IP 데이터그램을 버퍼링한 후, 버퍼링된 IP 데이터그램의 헤더를 추출하고 분석하여 상기 IP 데이터그램의 페이로드로부터 UDP 데이터그램을 복원한 후 UDP 데이터그램 핸들러(138)로 출력한다.
이때 상기 IP 데이터그램이 스크램블되어 있다면, 상기 스크램블된 UDP 데이터그램은 디스크램블러(137)에서 디스크램블된 후 UDP 데이터그램 핸들러(138)로 출력된다. 일 예로, 상기 디스크램블러(137)는 상기 CAS(139)로부터 디스크램블에 필요한 정보(예, 스크램블에 이용된 제어 단어 등)를 입력받아 상기 UDP 데이터그램에 대해 디스크램블을 수행한 후 UDP 데이터그램 핸들러(138)로 출력한다.
상기 UDP 데이터그램 핸들러(138)는 UDP 데이터그램 버퍼와 UDP 데이터그램 파서로 구성되며, 상기 IP 데이터그램 핸들러(136) 또는 디스크램블러(137)로부터 출력되는 UDP 데이터그램을 버퍼링한 후, 버퍼링된 UDP 데이터그램의 헤더를 추출하고 분석하여 상기 UDP 데이터그램의 페이로드에 포함된 데이터를 복원한다. 이때 복원된 데이터가 서비스 프로텍션 데이터이면 CAS(139)로 출력하고, NRT 서비스 시그널링 데이터이면 서비스 시그널링 섹션 핸들러(138-1)로 출력하며, NRT 서비스 데이터이면 ALC/LCT 스트림 핸들러(151)로 출력한다.
즉, 상기 NRT 서비스 시그널링 채널을 전송하는 IP 데이터그램의 접속 정보는 well-known 데스티네이션(destination) IP 어드레스와 well-known 데스티네이션 (destination) UDP 포트 번호인 것을 일 실시예로 한다.
따라서, 상기 IP 데이터그램 핸들러(136)와 UDP 데이터그램 핸들러(138)는 well-known 데스티네이션 IP 멀티캐스트 어드레스와 well-known 데스티네이션 UDP 포트 번호를 가지면서, NRT 서비스 시그널링 채널을 전송하는 IP 멀티캐스트 스트림 즉, NRT 서비스 시그널링 데이터를 추출하여 서비스 시그널링 섹션 핸들러(138-1)로 출력한다.
그리고, 상기 서비스 시그널링 섹션 핸들러(138-1)는 서비스 시그널링 섹션 버퍼와 서비스 시그널링 섹션 파서로 구성되며, 상기 NRT 서비스 시그널링 데이터로부터 NST를 복원하고 파싱하여 서비스 매니저(160)로 출력한다. 상기 NST를 파싱하면 NRT 서비스를 구성하는 컨텐트/파일들을 전송하는 FLUTE 세션의 접속 정보와 상기 NRT 서비스를 렌더링하는데 필요한 시그널링 정보를 추출할 수 있다. 예를 들어, 상기 NST로부터 각 FLUTE 세션으로 전송되는 NRT 서비스의 컨텐트/파일들의 렌더링(rendering)에 필수적인 정보를 추출할 수 있다. 상기 NRT 서비스의 컨텐트/파일들의 렌더링(rendering)에 필수적인 정보는 컨테이너 정보가 될 수도 있고, 인코딩 정보가 될 수도 있으며, 미디어 오브젝트의 디코딩 파라미터가 될 수도 있다.
상기 NST로부터 파싱된 정보는 서비스 매니저(160)에 의해 수집되어 제1 저장부(180)에 저장된다. 서비스 매니저(160)는 상기 NST에서 추출된 정보를 서비스 맵 및 가이드 데이터 형태로 제1 저장부(180)에 저장한다. 다른 실시예로, 서비스 매니저(160)의 역할을 NRT 서비스 매니저(192)에서 수행할 수도 있다. 즉, 상기 NST로부터 파싱된 정보는 NRT 서비스 매니저(192)에 의해 수집되어 제1 저장부(180)에 저장될 수도 있다.
ALC/LCT 스트림 핸들러(151)는 ALC/LCT 스트림 버퍼와 ALC/LCT 스트림 파서로 구성되며, UDP 데이터 그램 핸들러(138)로부터 출력되는 ALC/LCT 구조의 데이터를 버퍼링한 후, 버퍼링된 데이터로부터 ALC/LCT 세션의 헤더 및 헤더 확장(header extension)을 분석한다. 상기 ALC/LCT 세션의 헤더 및 헤더 확장을 분석한 결과, ALC/LCT 세션으로 전송되는 데이터가 XML 구조이면 XML 파서(153)로 출력하고, 파일 구조이면 파일 재건(File Reconstruction) 버퍼(152)에 일시 저장한 후 파일 디코더(157)로 출력하거나, 제3 저장부(156)에 저장한다. ALC/LCT 스트림 핸들러(151)는 상기 ALC/LCT 세션으로 전송되는 데이터가 NRT 서비스를 위한 데이터이면 NRT 서비스 매니저(192)의 제어를 받는다. 이때 상기 ALC/LCT 세션으로 전송되는 데이터가 압축되어 있으면, 디콤프레서(155)에서 해제된 후 XML 파서(153), 파일 디코더(157), 제3 저장부(156) 중 적어도 하나로 출력된다.
XML 파서(153)는 상기 ALC/LCT session을 통하여 전송되는 XML 데이터를 분석하고, 분석된 데이터가 파일기반 서비스를 위한 데이터이면 FDT 핸들러(154)로 출력하고, 서비스 가이드를 위한 데이터이면 SG 핸들러(190)로 출력한다.
FDT 핸들러(154)는 ALC/LCT session을 통하여 FLUTE 프로토콜의 파일 디스크립션 테이블(File Description Table)을 분석하고 처리한다. 상기 FDT 핸들러(154)는 수신된 파일이 NRT 서비스를 위한 파일이면 NRT 서비스 매니저(192)의 제어를 받는다.
SG 핸들러(190)는 XML 구조로 전송되는 서비스 가이드를 위한 데이터를 수집하고 분석하여 EPG 매니저(191)로 출력한다.
파일 디코더(157)는 파일 재건 버퍼(152)로부터 출력되는 파일 또는 디콤프레서(155)로부터 출력되는 파일 또는 제3 저장부(156)로부터 업로드된 파일을 기 설정된 알고리즘으로 디코딩하여 미들웨어 엔진(193)으로 출력하거나, A/V 디코더(141)로 출력한다.
미들웨어 엔진(193)은 파일 구조의 데이터 즉, 어플리케이션을 해석하여 실행시킨다. 그리고 상기 어플리케이션을 프리젠테이션 매니저(195)를 통해 화면이나 스피커와 같은 출력 장치로 출력할 수도 있다. 상기 미들웨어 엔진(193)은 자바(JAVA) 기반의 미들웨어 엔진인 것을 일 실시예로 한다.
EPG 매니저(191)는 유저의 입력에 따라 SG 핸들러(190)로부터 서비스 가이드 데이터를 입력받아 디스플레이 포맷으로 변환한 후 프리젠테이션 매니저(195)로 출력한다. 상기 어플리케이션 매니저(194)는 상기 파일 등의 형태로 수신되는 어플리케이션 데이터의 처리에 관한 전반적인 관리를 수행한다.
서비스 매니저(160)는 PSI/PSIP 테이블 데이터 또는 NRT 서비스 시그널링 채널로 전송되는 NRT 서비스 시그널링 데이터를 수집하고 분석하여 서비스 맵을 만든 후 제1 저장부(125)에 저장한다. 또한 서비스 매니저(160)는 사용자가 원하는 NRT 서비스에 대한 접속 정보를 제어하며, 튜너(111), 복조기(112), IP 데이터그램 핸들러(136) 등에 대한 제어를 수행한다.
오퍼레이션 제어기(100)는 UI 매니저(196)를 통해 입력되는 유저의 명령에 따라 상기 서비스 매니저(160), PVR 매니저(170), EPG 매니저(191), NRT 서비스 매니저(192), 어플리케이션 매니저(194), 프리젠테이션 매니저(195) 중 적어도 하나를 제어하여, 상기 유저의 명령에 따른 기능이 수행되도록 한다.
NRT 서비스 매니저(192)는 IP 계층 상에서 FLUTE 세션을 통하여 컨텐트/파일 형태로 전송되는 NRT 서비스에 대한 전반적인 관리를 수행한다.
UI 매니저(196)는 UI를 통해 유저의 입력을 오퍼레이션 제어기(100)로 전달한다.
상기 프리젠테이션 매니저(195)는 A/V 디코더(141)에서 출력되는 오디오 및 비디오 데이터, 미들웨어 엔진(193)에서 출력되는 파일 데이터, EPG 매니저(191)에서 출력되는 서비스 가이드 데이터 중 적어도 하나를 스피커 및 화면 중 적어도 하나를 통해 유저에게 제공한다.
한편, 서비스 시그널링 섹션 핸들러(138-1), 서비스 매니저(160), NRT 서비스 매니저(192) 중 어느 하나는 NST의 FLUTE 세션 루프(또는 NST의 콤포넌트 루프)로부터 상기 NRT 서비스를 구성하는 컨텐트 또는 파일을 전송하는 FLUTE 세션에 대한 IP 접속 정보를 획득한다. 또한 상기 NST의 FLUTE 세션 루프에 포함되어 수신되는 NRT_FLUTE_File_delivery_descriptor()로부터 FLUTE레벨 접속 정보를 획득한다. 또한 NST의 콤포넌트 루프에 포함되어 수신되는 component_descriptor()로부터 FLUTE 레벨 접속 정보를 획득한다.
그러면, 상기 ALC/LCT 스트림 핸들러(151)와 파일 디코더(157)에서는 상기 획득한 FLUTE 레벨 접속 정보를 이용하여 FLUTE 파일 딜리버리 세션에 접속하여, 상기 세션에 속한 파일들을 모은다. 상기 파일들을 모으면 하나의 NRT 서비스가 구성된다. 이러한 NRT 서비스는 제3 저장부(156)에 저장하거나, 미들웨어 엔진(193)이나 A/V 디코더(141)로 출력하여 디스플레이 장치에 표시되도록 한다.
상기 제3 저장부(156)는 NRT 서비스 데이터와 같은 파일을 저장하는 저장 매체로서, 제2 저장부(125)와 공유하여 사용할 수도 있고, 별도로 사용할 수도 있다.
도 24는 본 발명의 일 실시예에 따라 수신기가 NRT 서비스를 수신하여 제공하는 방법을 설명하기 위한 흐름도이다.
수신기는 NRT 서비스 시그널링 채널을 통하거나, 모바일 NRT 서비스의 경우에는 IP데이터그램을 수신하여 NRT 서비스 시그널링 정보를 획득할 수 있으며, NRT 서비스 시그널링 정보로부터 SMT를 획득한다(S2010).
그리고, 수신기는 SMT로부터 NRT 서비스 정보를 획득한다(S2020). NRT 서비스 정보는 SMT 내의 Service level descriptor 루프에서 NRT_service_info_descriptor를 파싱하여 획득할 수 있다. 획득한 NRT 서비스 정보는 각 NRT 서비스에 대한 어플리케이션 형식(application type) 또는 기타 NRT 서비스에 대한 요구(requirement)정보를 포함할 수 있다.
이후, 수신기는 획득한 NRT 서비스 정보에 기초하여 NRT 서비스 가이드를 출력한다(S2030). NRT 서비스 가이드에는 각 서비스에 대한 어플리케이션과 서비스 카테고리 정보가 표시될 수 있다. 또한, NRT service info descriptor의 각 필드에 기초하여 상세 정보가 더 표시될 수 있다. 상세 정보는 예를 들어, storage_requirement필드에 따른 해당 NRT 서비스의 용량 정보나 audio_codec_type 또는 video_codec_type 필드에 따른 해당 NRT 서비스의 오디오 또는 비디오 코덱 정보를 포함할 수 있다. 사용자는 서비스 가이드에 표시된 정보를 바탕으로 수신 또는 사용하고자 하는 NRT 서비스를 선택할 수 있다.
그리고, 수신기는 선택된 NRT 서비스를 구성하는 컨텐트 아이템에 대한 식별자(content_id)를 NCT로부터 획득한다(S2040). 수신기는 선택된 NRT 서비스에 대응하는 NRT_service_id를 SMT로부터 획득하고, 획득한 NRT_service_id의 값과 일치하는 NRT_channel_id값을 가지는 NCT를 획득하며, 획득한 NCT를 통하여 해당 NRT 서비스를 구성하는 컨텐트 아이템에 대한 식별자(content_id)를 획득할 수 있다.
이후, 수신기는 획득한 컨텐트 아이템 식별자(content_id)를 이용하여 해당 컨텐트 아이템을 구성하는 파일을 수신하기 위해 FLUTE 세션에 접속한다(S2050). 컨텐트 아이템을 구성하는 각각의 파일은 FLUTE세션 내의 FDT에 명시된 TOI 또는 Content-Location필드에 매칭되어 있으므로, 이후 수신기는 이와 같은 FLUTE 세션을 이용하여 해당 컨텐트 아이템의 파일을 수신한다(S2060). 파일의 수신은, 예를 들어, 해당 FLUTE 세션에서 FDT를 읽어 해당 파일에 대한 Content-ID attribute 필드가 획득한 content_id와 일치하면 해당 파일 또는 오브젝트를 수신하는 방법으로 이루어질 수 있다.
또한, 수신기는 해당 FLUTE 세션 내의 FDT 인스턴스들을 파싱함으로써, 컨텐트 아이템에 대응하는 파일들의 목록을 획득할 수 있다. 그리고, 수신기는 각 파일들의 목록 중 엔트리(entry)의 역할을 수행하는 파일들의 목록을 포함하는 엔트리 정보를 획득한다(S2070).
마지막으로, 수신기는 수신한 컨텐트 아이템과 컨텐트 아이템에 대응하는 파일들의 목록 또는 엔트리 정보에 기초하여 사용자에게 NRT 서비스를 제공한다(S2080).
이와 같이 NRT 서비스를 통하여 다운로드된 컨텐트는 실시간 방송과 독립적으로 사용자가 원하는 시점에 이용할 수 있다.
또한, 방송국은 NRT 서비스를 미리 송출하고 수신기가 수신하여 저장한 후, 특정 실시간 방송이 송출되거나 수신기에서 표시되는 시점에 해당 NRT 서비스의 컨텐트 아이템을 실행하도록 지정할 수도 있다. 이와 같이 본 발명의 일 실시예로서, NRT 서비스는 실시간 방송과 연계되어 미리 다운로드한 후, 특정 시점에 실행시킬 수 있는 컨텐트를 포함할 수 있다. 또한, 본 발명의 일 실시예로서 NRT 서비스는 특정 NRT 서비스를 특정 시점에 실행시키기 위해 미리 준비하기 위한 컨텐트를 포함할 수 있다. 이와 같이 특정 NRT 서비스에 대하여 특정 액션이 실행되도록 실시간 방송과 연계된 특정 시점에 트리거된 NRT 서비스 컨텐트를 트리거 선언적 오브젝트(TDO, Triggered Declarative Object) 라고 할 수 있다. 따라서, NRT 서비스 어플리케이션은 특정 시점에 실행되는지 여부에 따라 비실시간 선언적 오브젝트(NDO) 또는 트리거 선언적 오브젝트(TDO)로 구분될 수 있다.
본 발명의 일 실시예에 따르면, 방송국은 이와 같은 트리거 선언적 오브젝트(TDO)를 트리거 하기 위한 트리거 정보를 전송할 수 있다. 트리거 정보는 수신기가 특정 트리거 선언적 오브젝트에 대한 특정 액션을 특정 시점에 수행하기 위한 정보들을 포함할 수 있다.
또한, 트리거 정보는 트리거를 시그널링 하기 위한 트리거 시그널링 데이터(트리거 시그널링 정보) 및 트리거를 구성하는 트리거 데이터를 포함할 수 있다. 또한, 트리거 데이터를 전송하는 데이터 스트림을 트리거 스트림이라고 할 수 있다. 그리고, 본 발명에서 트리거 데이터는 트리거 그 자체를 의미할 수 있다.
이와 같은 트리거는 트리거를 식별하기 위한 트리거 식별자, 트리거하기 위한 NRT 서비스를 식별하기 위한 TDO 식별자, TDO에 대해 수행될 액션 정보 및 트리거 시간 중 적어도 하나를 포함할 수 있다.
또한, 본 발명의 일 실시 예에서, 트리거 스트림은 User data space 또는 DTV-CC를 이용하여 전송될 수 있다. 트리거 스트림은 전송을 위해 다양한 형태를 가질 수 있다. 이와 같이 트리거 스트림은 다양한 형태로 전송될 수 있지만, 각 트리거 스트림은 본 발명에서 제안되는 트리거와 개념적으로 동일하거나 유사한 트리거를 포함할 수 있다.
트리거 식별자는 트리거를 유일하게 식별하기 위한 식별자일 수 있다. 예를 들어, 방송국은 EIT를 통해 제공되는 일정 시간 동안의 방송 프로그램 정보에 하나 이상의 트리거를 포함하여 전송할 수 있다. 이 경우, 수신기는 하나 이상의 트리거에 기초하여 각 트리거별로 지정된 시간에 트리거 대상 TDO에 대한 액션을 수행할 수 있다. 이 때, 수신기는 트리거 식별자를 이용하여 각 트리거들을 구별할 수 있다.
TDO 식별자는 트리거의 대상이 되는 NRT 서비스 컨텐트를 식별하기 위한 식별자일 수 있다. 따라서, TDO 식별자는 트리거 NRT 서비스 식별자(NRT_service_id), 컨텐트 결합(content_linkage), NRT 컨텐트 아이템 엔트리의 URI 또는 URL 중 적어도 하나를 포함할 수 있다. 그리고 후술할 트리거 대상 TDO를 식별하기 위한 대상 식별자(targer_service_id)를 포함할 수있다.
또한, TDO 액션 정보는 트리거 대상이 되는 TDO에 대해 수행할 액션에 대한 정보를 포함할 수 있다. 액션 정보는 대상 TDO의 실행, 종료, 연장 명령중 적어도 하나일 수 있다. 또한, 액션 정보는 대상 TDO 내의 특정 함수 또는 이벤트를 발생시키기 위한 명령을 포함할 수 있다. 예를 들어 액션 정보가 대상 TDO의 실행 명령을 포함하는 경우, 트리거는 대상 TDO의 활성화를 수신기에 요청할 수 있다. 또한, 액션 정보가 대상 TDO의 연장 명령을 포함하는 경우, 트리거는 대상 TDO가 연장될 것임을 수신기에 지시할 수 있다. 그리고, 액션 정보가 대상 TDO의 종료 명령을 포함하는 경우, 트리거는 대상 TDO가 종료되어야 함을 수신기에 지시할 수 있다. 이와 같이 방송국은 트리거를 통해 실시간 방송 컨텐트에 따른 수신기에서의 TDO 동작을 제어할 수 있다.
한편, 트리거 시간은 대상 TDO에 대해 지정된 액션을 수행(트리거)하기 위해 지정된 시간을 의미할 수 있다. 또한, 트리거 시간은 NRT 서비스를 실시간 방송과 연계하기 위하여, 특정 가상 채널의 비디오 스트림과 동기화시킬 수 있다. 따라서, 방송국은 비디오 스트림에서 참조하는 PCR을 참조하여 트리거 시간으로 지정할 수 있다. 또한, 수신기는 비디오 스트림이 참조하는 PCR을 참조하여 방송국이 지정한 시간에 TDO를 트리거 할 수 있다. 그리고, 방송국은 정확한 트리거 시간을 전송하기 위하여 비디오 스트림의 헤더에 트리거 식별자를 포함하여 트리거를 시그널링 할 수 있다.
또한, 트리거 시간은 UTC 시간으로 지정될 수 있다. UTC 시간의 경우는 상대적인 시간이 아니라, 절대적인 시간을 참조하여 트리거 할 수 있는 장점이 있다.
이와 같은 트리거 시간은 정확한 트리거 시점일 수 있으며, 대략적인 시작 시간을 포함할 수도 있다. 그리고, 수신기는 대략적인 시간을 수신하여 정확한 트리거 시점 이전에 미리 대상 TDO에 대한 액션을 준비할 수 있다. 예를 들어, 수신기는 미리 TDO를 실행할 준비를 하여 트리거 시간에 자연스럽게 TDO를 동작시킬 수 있다.
도 25는 본 발명의 일 실시 예에 따라 구성한 트리거의 비트스트림 신택스를 도시한 것이다.
여기서, 트리거 또는 트리거 데이터는 트리거 테이블의 형태로 구성하였고, 해당 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다. 예를 들어, SDP(Session Description Protocol)의 형태로 표현하여 SAP(Session Announcement Protocol)을 통하여 시그널링하는 등의 다른 방법도 사용할 수 있다.
table_id 필드는 임의로(0XTBD) 설정되어, 해당 테이블 섹션이 트리거를 구성하는 테이블 섹션임을 식별한다.
section_syntax_indicator 필드는 1로 설정되면, 상기 섹션이 일반적인 섹션 신택스를 따름을 나타낸다.
private_indicator 필드는 1로 설정되어 있다.
section_length 필드는 section_length 필드 바로 다음에서부터 상기 섹션의 마지막까지 이 섹션에 남아 있는 바이트들의 개수를 상술한다.
source_id 필드는, 가상 채널과 연관된 프로그램의 소스를 나타낸다.
TTT_version_number 필드는 트리거의 버전 정보를 나타낼 수 있다. 또한, 트리거의 버전 정보는 트리거 프로토콜의 버전을 나타낼 수 있다. 트리거 버전 정보는 트리거 구조 또는 트리거 자체에 변화가 있는지 판단하기 위하여 사용될 수 있다. 예를 들어, 수신기는 트리거의 버전 정보가 동일하면 트리거에 변화가 없음을 판단할 수 있다. 또한 수신기는 트리거의 버전 정보에 변경이 있는 경우, 트리거에 변화가 있음을 판단할 수 있다. 예를 들어, 트리거 버전 정보는 복수의 버전 넘버를 포함할 수 있으며, 수신기는 복수의 버전 넘버 중 일부에 기초하여 트리거에 변화가 발생하였는지 판단할 수 있다.
current_next_indicator 필드는 1로 설정되어 있으면 해당 테이블 섹션은 현재 적용 가능함을 나타낸다.
section_number 필드는, 해당 테이블 섹션의 넘버를 지시한다.
last_section_number 필드는, 섹션들 중 가장 마지막 및 가장 높은 넘버의 테이블 섹션을 의미한다.
num_triggers_in_section 필드는, 해당 테이블 섹션 내에 포함되는 트리거의 개수를 의미한다. 한 섹션에 포함되는 트리거의 개수는 1개일 수 있으며, 복수일 수도 있다. 또한, 다음의 'for' 루프는 트리거의 개수만큼 반복될 수 있다.
trigger_id 필드는, 트리거를 유일하게 식별할 수 있는 식별자를 나타낸다.
trigger_time 필드는, 트리거를 수행하는 시간을 나타낸다. 한편 이 필드는 섹션 내에 포함되지 않을 수 있으며, 그 경우 트리거 시간은 상술한 바와 같이 방송 스트림으로부터 지정된 시간일 수 있다.
trigger_action 필드는, 트리거 시간에 수행될 트리거의 액션 정보를 나타낸다. 트리거 액션은 상술한 바와 같이 대상 TDO에 대한 준비, 대상 TDO의 실행, 대상 TDO의 연장 또는 대상 TDO의 종료 명령 중 어느 하나를 포함할 수 있으며, 대상 TDO내의 특정 함수나 이벤트를 발생하도록 하는 명령을 포함할 수도 있다.
trigger_description_length 필드는, trigger_description_text의 길이를 나타낸다.
trigger_description_text 필드는, 해당 트리거에 대한 텍스트 형태의 디스크립션을 나타낸다.
service_id_ref 필드는, 트리거의 대상 TDO를 식별하기 위한 식별자를 나타낸다. 따라서, 예를 들어 service_id_ref 필드는 트리거의 대상 TDO의 NRT 서비스를 식별하기 위해 SMT 또는 NST의 NRT_service_id 필드를 지시할 수 있다.
content_linkage 필드는, 트리거의 대상 TDO 컨텐트 아이템을 식별하기 위한 식별자를 나타낸다. 예를 들어, content_linkage 필드는 트리거의 대상 TDO 컨텐트 아이템을 식별하기 위해 NRT-IT 또는 NCT의 content_linkage 필드를 지시할 수 있다. 또한, service_id_ref 필드와 content_linkage 필드는 하나의 대상 TDO를 지시하기 위한 클래스 내에 포함될 수도 있다.
num_trigger_descriptors 필드는, 트리거 디스크립터의 개수를 나타낸다.
trigger_descriptor()필드는, 트리거에 대한 정보를 포함하는 디스크립터를 나타낸다.
이와 같이 MPEG2 프라이빗 섹션의 테이블 형태로 구성되는 트리거의 경우, 방송국은 가상 채널에 따라 하나의 트리거를 전송할 수 있다.
방송국이 트리거를 전송하기 위한 제1 방법으로서, 상술한 트리거 테이블을 PSIP 기본 PID인 0X1FF 스트림에 포함하여 전송할 수 있다. 제1 방법은 트리거 테이블의 table_id를 유일하게 할당함으로써 트리거 테이블을 다른 테이블과 구별할 수 있는 특징이 있다.
그리고, 트리거를 전송하기 위한 제2 방법으로서, 마스터 가이드 테이블(Master Guide Table, MGT)에 트리거 테이블에 대응하는 PID를 할당하고, 해당PID의 스트림에 트리거 테이블을 포함하여 전송할 수 있다. 제2 방법은 수신기가 해당 PID의 스트림 내에 있는 모든 테이블을 트리거 테이블로 처리할 수 있는 특징이 있다.
한편, 본 발명에서는 비디오 및 오디오에 동기화된 정확한 시점을 트리거 시간으로 지정하기 위해 MPEG2 PES(Packetized Elemetary Stream)을 통해 트리거 및 트리거 시그널링 정보중 적어도 하나를 전송하는 것을 일 실시예로 한다.
여기서, MPEG2 PES의 비디오 및 오디오의 동기화를 설명하면 다음과 같다. 수신기 디코더는 송신기 인코더의 시간 스탬프에 의해 동기화하여 동작한다. 인코더는 System Time Clock(이하, STC라 함)이라는 주 오실레이터(main oscillator)와 카운터(counter)를 가지고 있다. STC는 특정 프로그램에 속해 있고 비디오와 오디오 인코더를 위한 프로그램의 주 클럭(main clock)이다.
한편, 인코더 입력에서 비디오 프레임이 발생하거나 오디오 블럭이 발생하면 STC를 샘플링하도록 한다. 샘플링 값과 인코더 버퍼와 디코더 버퍼의 지연만큼의 상수값을 더하여 표시 시간 정보, 즉 Presentation Time Stamp(이하, PTS라 한다)를 생성하고 픽쳐 블록(picture block) 또는 오디오 블록(audio block)의 처음 부분에 삽입한다. 프레임 재배치(frame reordering)가 발생하는 경우에는 데이터가 디코더에서 디코딩되어야 하는 시간을 나타내는 Decode Time Stamp(이하, DTS라 함)를 삽입한다. B 픽쳐의 프레임 재배치의 경우를 제외하고는 DTS와 PTS는 동일하다. DTS는 이러한 프레임 재배치의 경우에만 추가적으로 필요하다. DTS가 사용될 때는 항상 PTS도 존재하며 이들은 700msec 이내의 간격으로 삽입될 수 있다. 또한, ATSC에서는 각각의 픽쳐의 시작부분에 PTS와 DTS를 삽입하도록 정의되어있다.
한편, 인코더 버퍼의 출력에는 전송 패킷(transport packet) 레벨에서는 프로그램 클럭 레퍼런스(Program Clock Reference; 이하 PCR이라고 함)이라는 타임 스탬프를 갖는다. 그리고, PCR 타임 스탬프는 100msec이내의 간격으로 발생할 수 있으며, 이러한 PCR 은 디코더의 STC와 인코더의 STC를 동기화하기 위해 사용된다.
그리고, 비디오 스트림과 오디오 스트림은 디코더의 동기화를 위해 공통된 STC에 해당하는 각각의 PTS 또는 DTS를 가질 수 있다. 따라서, 오디오 스트림과 비디오 스트림이 디코딩 단위마다 언제 재생해야 하는지를 각 PTS와 DTS를 통하여 알 수 있게 되며, 이를 이용하여 오디오와 비디오가 동기화된다.
예를 들어 설명하면, 수신기의 디코더는 수신된 TS 스트림에서 PES 패킷을 비디오 PES 디패킷타이저(Video PES Depacketizer)로 출력하고, TS 패킷 헤더에 삽입된 PCR값을 PCR 카운터(PCR Counter) 로 출력한다. PCR 카운터는 PCR값 100을 카운팅시켜 비교부로 출력한다. 그리고, 비디오 PES 디패킷타이저는 PES 패킷의 헤더를 DTS/PTS 추출부(DTS/PTS Extractor)로 출력하고, ES(Elementary Stream), 즉 디스플레이될 영상 데이터를 엘레멘터리 스트림 버퍼&디코더(Elementary Stream Buffer&Decoder)에 버퍼링한다. DTS/PTS 추출부는 PES 패킷 헤더로부터 DTS값과 PTS값을 추출하여 비교부로 출력한다. 비교부는 상기 PCR 카운터로부터 입력받은 PCR값이 DTS값으로 되거나, PCR값 100이 PTS값으로 되면 그에 대한 각각의 신호를 디코딩/디스플레이 콘트롤부(Decoding, Display Control Block)로 출력한다. 상기 디코딩/디스플레이 콘트롤부는 상기 비교부로부터 PCR값이 DTS값으로 된 것에 대한 신호를 입력받아 상기 엘레멘터리 스트림 버터&디코더에 버퍼링된 영상 데이터를 디코딩하여 디코디드 스트림 메모리(Decoded StreamMemory)에 저장시킨다. 또한 디코딩/디스플레이 콘트롤부는 비교부로부터 PCR값이 PTS값으로 된 것에 대한 신호를 입력받으면 디코디드 스트림 메모리에 디코딩되어 저장된 영상 데이터를 디스플레이부를 통해 디스플레이한다.
따라서, MPEG2 PES는 헤더에 PTS와 DTS를 포함하여, 데이터 전송시 전송되는 데이터와 하나의 엘레멘터리 스트림(Elementray Stream, ES) 또는 복수의 ES간의 표시되는 시간(Presentation time)을 동기화할 수 있다. 이를 동기화된 데이터 스트림(synchronized data stream)방식이라 할 수 있다.
즉, 본 발명의 일 실시예에 따르면, 방송국은 이와 같은 동기화된 데이터 스트림 방식을 이용하여 트리거 데이터 또는 트리거 스트림을 PES의 페이로드에 포함시키고, 트리거 시간을 PES 패킷 헤더의 PTS값으로 지정할 수 있다. 이 경우, 수신기는 트리거를 포함하는 PES의 PTS가 참조하는 PCR값에 따라 정확한 시간에 대상 TDO를 트리거 할 수 있다. 따라서, 방송국은 트리거 시간으로 지정된 PES 패킷 헤더의 PTS와 오디오 및 비디오 PES 패킷 헤더의 PTS값을 이용하여 방송국이 트리거하고자 하는 오디오 및 비디오가 재생(Presentation)되는 정확한 시간에 트리거를 동기화할 수 있다.
그리고, 트리거를 포함하는 PES 스트림 패킷의 헤더는 동기화된 데이터 스트림 방식을 나타내기 위해 steam_type값이 0x06일 수 있으며, stream_id는 기 설정된 스트림의 식별자를 나타낼 수 있고, PES_packet_length는 PES 스트림의 페이로드를 포함하는 PES 스트림의 길이를 나타낼 수 있다.
도 26은 본 발명의 일 실시예에 따라 트리거가 포함된 동기화된 데이터 스트리밍 방식에 따른 PES의 구조를 도시한 도면이다.
도 26과 같이, 동기화된 데이터 스트리밍 방식의 PES는 PES 헤더와 PES 페이로드로 구성될 수 있으며, PES 페이로드는 동기화된 데이터 패킷 구조(Synchronized Data Packet Structure)를 포함할 수 있다. 상술한 바와 같이 트리거 테이블로 구성되거나, 다른 형식의 데이터로 구성된 트리거는 도 26의 PES 페이로드(payload) 부분에 포함되어 전송될 수 있다. 또한, 방송국은 트리거를 IP데이터그램의 형태로 패킷화하고, 패킷화된 트리거를 IP 데이터 영역에 포함하여 전송할 수도 있다.
도 27은 본 발명의 일 실시예에 따라 트리거를 전송하기 위한 PES 페이로드의 동기화된 데이터 패킷 구조(synchrozied data packet structure)를 비트스트림 신택스로 도시한 것이다.
도 26 및 도27과 같이, 트리거는 동기화된 데이터 패킷 구조 내에 포함되어 전송될 수 있다. 구조내 각 필드의 상세한 설명은 다음과 같다.
data_identifier 필드는, PES 데이터 패킷에 포함된 데이터의 타입을 식별하기 위한 식별자이다. 이는 데이터 타입에 따라 0X22로 설정될 수 있다.
sub_stream_id 필드는, 사용자에 의해 설정가능한 식별자이다(user private).
PTS_extention_flag 필드는, PTS 확장 필드(PTS_extention field)가 존재하는지를 지시한다. 이 필드의 값이 1이면 PES_data_packet 필드에 PTS 확장 필드가 존재할 수 있다. 또한, PTS 확장 필드가 존재하지 않으면 이 필드의 값은 0일 수 있다.
output_data_rate_flag 필드는, 0으로 설정될 수 있다.
syncnronized_data_packet_header_length필드는, PES 패킷 헤더에 포함된 선택적 필드(optional field)의 길이를 나타낸다. 이 필드는 PTS_extention_flag 필드가 1일 때 포함될 수 있으며, synchroziced_data_privete_data_byte(s)를 포함하는 길이를 나타낼 수 있다.
PTS_extension 필드는, 해당 PES 패킷의 헤더로부터 전달된 PTS를 확장한다. 이 필드는 9비트의 PCR(Program Clock Reference) 확장 정보를 포함할 수 있다. 또한, 수신기는 이 필드를 통하여 동기화된 데이터의 PTS 해상도를 MPEG2 표준인 11.1 마이크로초(90kHz)로부터 37나노초(27MHz)로 확장할 수 있다.
synchronized_data_private_data_byte 필드는, 동기화된 PES 패킷의 페이로드의 바이트를 나타낸다. 만약 데이터 서비스 테이블(DST)의 protocol_encapsulation필드가 동기화된 데이터그램, LLC/SNAP을 포함하지 않는 IP 데이터그램, LLS/SNAP를 포함하는 다중프로토콜(multiprotocol) 데이터그램 중 어느 하나임을 나타내면, synchronized_data_byte 필드는 유일한 하나의 데이터그램을 포함할 수있다. 따라서, LLC/SNAP가 사용되는 경우에는 오직 PES패킷의 처음 8 바이트의 synchronized_data_byte에만 8바이트의 LLC/SNAP 헤더가 나타날 수 있다.
따라서, 방송국이 상술한 바와 같은 PES의 동기화된 데이터 스트림(stream_type이 0x06)에 트리거를 포함하여 전송하면, 수신기는 트리거 스트림을 PES의 페이로드로부터 추출할 수 있다. 또한, 수신기는 PES헤더의 PTS값을 트리거 시간으로 하여 대상 TDO에 대한 액션을 수행할 수 있게 된다. 따라서, 비디오와 오디오의 표시 동기를 위한 기준 시간인 PTS를 기준으로 트리거를 동기화 함으로써, 프레임단위의 정확한 시간에 TDO가 트리거될 수 있다. 또한, 트리거 시간을 PTS로 지정하는 경우, 비디오 및 오디오와의 동기화가 쉽게 이루어질 수 있다.
한편, 본 발명에서는 트리거 스트림을 획득할 수 있는 트리거 시그널링 정보를 전송하는 것을 일 실시예로 한다. 수신기는 트리거 시그널링 정보를 수신하고, 수신한 트리거 시그널링 정보에 기초하여 PES의 동기화된 데이터 스트림에 포함된 트리거 스트림을 획득할 수 있다.
동기화된 데이터 스트리밍을 이용하여 전송되는 트리거 스트림을 획득하기 위한 트리거 시그널링 정보를 전송하는 방법은 실시예에 따라 다양한 방법이 있을 수 있다. 본 발명에서는 1. DST를 통한 전송 방법, 2. 서비스 식별자 디스크립터(service id descriptor)를 통한 전송 방법, 3. 트리거 스트림 디스크립터(trigger stream descriptor)를 통한 전송 방법 또는 4. 트리거 스트림에 대한 스트림 타입을 정의하여 전송하는 방법 중 적어도 하나의 방법을 사용하여 트리거 시그널링 정보를 전송하는 것을 일 실시예로 한다.
일 실시예에 따라, 본 발명에서는 NRT 서비스를 위한 DST(data_service_table)를 통하여 트리거 시그널링 정보를 전송할 수 있다. DST는 데이터 서비스를 전송하기 위한 테이블 섹션으로서, DST에 대한 설명 및 DST를 구성하는 data_service_bytes()의 일 실시예에 대한 설명은 도 8에서 설명한 바와 같으므로 생략하기로 한다.
상술한 DST에는 데이터 서비스를 구성하는 각 엘레멘터리 스트림(Elementray Stream, ES)을 수신하기 위한 시그널링 데이터가 포함될 수 있다. 따라서, 트리거 스트림을 수신하기 위한 트리거 시그널링 데이터도 DST에 포함될 수 있다.
한편, 데이터 서비스는 각각 하나 이상의 어플리케이션을 포함할 수 있으며, 각 어플리케이션은 app_id와 같은 어플리케이션 식별자를 포함하는 어플리케이션 식별 구조(application identification structure)의 형태일 수 있다. 그리고, 각 어플리케이션은 해당 어플리케이션을 구성하는 하나 이상의 데이터 엘리먼트(data element) 또는 데이터 스트림(data stream)을 포함할 수 있다.
따라서, 방송국은 트리거 스트림을 데이터 서비스를 통해 전송하기 위해 특정 가상 채널(Virtual Channel, VC)에 하나의 트리거 스트림을 포함하여 전송할 수 있다. 뿐만 아니라 어플리케이션마다 하나의 트리거 스트림을 포함하여 전송할 수도 있다. 따라서, 하기에 두 가지 방법에 대해 경우를 나누어 트리거 시그널링 정보를 전송하는 일 실시예들을 설명한다.
가상 채널에 하나의 트리거 스트림이 포함되는 경우, 본 발명의 일 실시예에서는 트리거 스트림을 전송하기 위한 데이터 서비스를 트리거 서비스라고 할 수 있다. 이 경우, 방송국은 고정된 서비스 식별자(Service ID)를 트리거 서비스에 할당할 수 있다.
따라서, 수신기는 예를 들어, 서비스 식별자가 고정된 값으로서 0X01인 경우에 해당 가상 채널에 하나의 트리거 스트림이 전송되고 있음을 식별할 수 있다.
여기서, 방송국은 DST에 포함된 어플리케이션 식별 구조(Application identification structure)에 트리거 시그널링 정보를 포함하여 전송할 수 있다.
예를 들어, 방송국은 DST의 App_id_description 필드의 값으로 0x0001을 추가하여 TDO와 같은 형태의 NRT 서비스를 실시간 방송과 연계하기 위한 양방향 어플리케이션을 의미하는 값으로 설정할 수 있다. 또한, app_id_byte_length는 0x0003으로 3바이트를 사용하며, app_id_byte는 0x01로 할당하여 해당 데이터 서비스가 트리거 스트림 시그널링 정보를 포함하는 것을 지시할 수 있다.
따라서, 수신기는 상술한 방법으로 DST를 수신하여 app_id_byte_length가 0x0003이고, app_id_description이 0x0001이며, app_id_byte가 0x01인 경우 트리거 시그널링 정보를 포함하는 tap()을 식별할 수 있다. 수신기는 식별된 tap()구조로부터 association_tag값을 포함하는 트리거 시그널링 정보를 추출하며, 방송 스트림에서 추출한 PMT 내에 리스트 된 데이터 엘리먼트리 스트림(ES) 중 association_tag_descriptor가 상기 추출된 association_tag와 일치하는 PID를 갖는 스트림을 수신하여 트리거 스트림을 수신할 수 있다.
상술한 바와 같이, NRT 서비스는 SMT 또는 NST를 통해 시그널링 되며, 16비트의 서비스 식별자(service_id)를 통해 유일하게 식별될 수 있다. 또한, NRT 서비스를 구성하는 컨텐트 아이템들은 NCT 또는 NRT-IT내의 content_linkage 또는 컨텐트 식별자를 통해 식별될 수 있다. 따라서, DST를 통해 app_id_byte를 확장하여 트리거 서비스를 NRT 서비스와 같이 전송할 수 있다. 예를 들어, app_id_byte는 트리거 서비스의 서비스 식별자(service id)필드 및 컨텐트 결합(content_linkage)필드를 조합한 데이터를 포함할 수 있다. 따라서, app_id_byte를 처음 16비트는 SMT 또는 NST 내의 서비스 식별자(service id) 필드에 대응되며, 이후 32비트는 NCT 또는 NRT-IT내의 content linkage 필드에 대응되도록 구성할 수 있다.
이와 같이, 방송국은 가상 채널당 하나의 스트림이 포함되는 경우, DST상의 어플리케이션 식별 구조(Application identification structure)를 통해 트리거 시그널링 정보를 tap()에 포함하여 전송할 수 있다.
한편, 본 발명의 일 실시예에서는 DST의 protocol_encapsulation 필드를 이용하여 트리거 시그널링 정보를 전송할 수 있다. 예를 들어, DST내 app_id_byte_length를 0x0000으로 설정하면 app id가 할당되지 않으며, protocol_encapsulation 필드의 값이 0x0F인 경우에 트리거 시그널링 정보가 해당 tap()구조에 포함되어 있음을 지시할 수 있다. 따라서, 수신기는 app_id_byte_length가 0x0000이고, protocol_encapsulation 필드의 값이 0x0F이면, 해당 tap()구조로부터 트리거 시그널링 정보를 수신할 수 있으며, 이를 통하여 상술한 바와 같이 트리거 스트림을 지시하는 PMT상의 PID값을 획득하고, 트리거 스트림을 수신할 수 있다.
한편, 본 발명의 다른 일 실시예에서는 DST의 content type descriptor 필드를 이용하여 트리거 시그널링 정보를 전송할 수 있다.
도 28과 같이, DST상의 tap()에 포함될 수 있는 content type descriptor 구조의 일 실시예는 다음과 같다.
descriptorTag 필드는 contentTypeDescriptor를 나타내기 위한 0x72값을 가질 수 있다.
descriptorLenth 필드는 디스크립터의 전체 길이(바이트 단위)를 나타낸다.
contentTypeByte 필드는 본 디스크립터가 연결되어 있는 tap에 의해 참조된 데이터의 MIME 미디어 타입 값을 나타낸다. MIME 미디어 타입은 RFC2045 섹션 [8]의 5에 정의되어 있다.
따라서, 본 발명의 일 실시예에서는 트리거 시그널링 정보를 포함하는 tap()구조에 content type descriptor를 부가할 수 있다. 따라서, 수신기는 app_id_byte_length가 0x0000이고, tap()구조의 content type descriptor가 기 설정된 내용과 일치하면 해당 tap()구조로부터 트리거 시그널링 정보를 수신할 수 있으며, 이를 통하여 상술한 바와 같이 트리거 스트림을 지시하는 PMT상의 PID값을 획득하고, 트리거 스트림을 수신할 수 있다. content type descriptor로부터 트리거 서비스 시그널링 정보가 존재함을 식별하기 위해, MIME 미디어 타입은 특정 타입으로 지정될 수 있다.
상술한 바와 같이, 하나의 NRT 서비스가 트리거 스트림을 전송하기 위한 트리거 서비스일 수 있으며, 트리거 서비스 내의 컨텐트 아이템별로 각각 다른 트리거 스트림을 전송할 수도 있다. 이 경우, 각 어플리케이션은 하나의 트리거 스트림을 포함할 수 있다.
따라서 본 발명의 일 실시예에서는 NRT 서비스의 각 컨텐트 아이템에 트리거 스트림을 포함하여 전송할 수 있다. 이 경우, 상술한 어플리케이션 식별 구조(Application identification structure)를 이용할 수 있다. 예를 들어, app_id_byte_length를 0x0003인 경우는 하나의 서비스 식별자를 이용하여 하나의 NRT 서비스를 통해 트리거 스트림을 전송함을 나타내고, 0x0007인 경우는 서비스 식별자 및 컨텐트 결합(content linkage)을 이용하여 컨텐트 아이템별로 트리거 스트림을 전송함을 나타낼 수 있다. 이와 같이 정의한 경우, 각 NRT 서비스 또는 컨텐트 아이템에 대응하여 각각의 트리거 스트림을 전송할 수 있다. 이후 단계의 트리거 시그널링 정보 전송 방법 및 트리거 스트림 수신 방법은 가상 채널당 하나의 트리거 스트림을 포함하는 경우와 동일하므로 생략하기로 한다.
도 29는 PMT의 신택스와 서비스 식별자 디스크립터의 일 실시예를 도시하고 있다.
도 29와 같이, PMT(Program Map Table)는 각 채널에서 방송되는 프로그램에 대한 정보를 나타낸다. PMT는 'packet ID'가 '0x00'으로 정의되어 전송되는 PAT(Program AssociationTable)에서, PMT가 전송되는 'packet ID'를 파싱하여서, PMT를 수신할 수 있다.
한편, 서비스 식별자 디스크립터는 PMT의 엘리멘터리 스트림(ES)별 디스크립터 루프(loop)에 포함될 수 있다. 그리고, 각 프로그램 엘리먼트에 포함된 서비스의 목록 정보를 포함할 수 있다.
서비스 식별자 디스크립터의 구조를 설명하면 다음과 같다.
descriptor_tag 필드는, 본 디스크립터가 service_id_descriptor()임을 나타내기 위한 필드이며, 0xC2값을 가질 수 있다.
descriptor_length 필드는, 본 필드 다음부터 본 디스크립터의 종료시까지 의 바이트 단위 길이를 나타낸다.
service_count 필드는, 본 디스크립터가 붙어 있는 프로그램 엘리먼트에 포함된 서비스의 개수를 지시한다.
service_id 필드는, 본 디스크립터가 붙어 있는 프로그램 엘리먼트에 포함된 서비스 식별자를 나타낸다.
본 발명의 일 실시예에서 트리거 스트림은 기 설정된 IP 주소(Well-known IP address)를 통해 전송될 수 있다. 그리고, 방송국은 트리거를 시그널링 하기 위해 트리거 스트림에 대응하는 특정 서비스 식별자(service id, 예를 들어 0x01)를 서비스 식별자 디스크립터에 포함하여 전송할 수 있다. 즉, 트리거 스트림을 수신하기 위한 트리거 시그널링 정보는 서비스 식별자 디스크립터를 통해 전송될 수 있다. 따라서, 수신기는 PMT의 ES 루프 내의 ES descriptor 루프에 포함된 service_id_descriptor의 서비스 식별자가 0x01인 경우, ES 루프 내의 elementray_PID가 트리거 스트림을 지시하는 PID라고 판단할 수 있으며, 이 PID를 이용하여 트리거 스트림을 수신할 수 있다.
도 30은 본 발명의 일 실시예에 따른 트리거 스트림 디스크립터를 도시한 도면이다. 본 발명의 일 실시예에 따르면 트리거 스트림 디스크립터를 이용하여 트리거를 시그널링할 수 있다. 상술한 서비스 식별자 디스크립터와 마찬가지로, 트리거 스트림 디스크립터는 PMT의 ES 루프 내 ES descriptor 루프에 포함될 수 있다. 따라서, 트리거 스트림이 존재하는 경우 ES descriptor 루프에 트리거 스트림 디스크립터가 존재할 수 있다. 수신기는 트리거 스트림 디스크립터를 식별한 경우, 해당 ES 루프 내 elementray_PID로부터 트리거 스트림의 PID를 획득하여 트리거 스트림을 수신할 수 있다.
이와 같이 트리거 시그널링 정보를 전송하기 위한 트리거 스트림 디스크립터는 트리거 스트림내 트리거의 대상이 되는 TDO의 서비스 식별자(target service id) 또는 트리거 스트림을 전송하는 IP 주소 리스트 중 적어도 하나를 포함할 수 있다. 도 30의 트리거 스트림 디스크립터는 일 실시예이며, 구조에 대한 설명은 다음과 같다.
descriptor_tag 필드는, 기 설정된 값인 경우 트리거 스트림 디스크립터(trigger_stream_descriptor)임을 나타낸다.
descriptor_length 필드는, 본 필드 다음부터 본 디스크립터의 종료시까지 바이트 단위 길이를 나타낸다.
target_service_count 필드는, 트리거 스트림에 포함된 하나 이상의 트리거들의 대상 NRT 서비스(TDO)의 개수를 나타낸다.
target_service_id 필드는, 트리거 스트림에 포함된 하나 이상의 트리거들의 대상 NRT 서비스(TDO)의 서비스 식별자(service_id)를 나타낸다. 수신기는 target_service_id 필드를 이용하여, 트리거 스트림을 수신하기 전이라도 대상 TDO의 서비스 식별자(service_id)를 알 수 있다.
target_content_item_count 필드는, 트리거 스트림에 포함된 하나 이상의 트리거들의 대상 NRT 서비스 컨텐트 아이템의 개수를 나타낸다.
target_content_linkage 필드는, 트리거 스트림에 포함된 하나 이상의 트리거들의 대상 NRT 서비스 컨텐트 아이템 결합(content_linkage)을 나타낸다.
한편, 트리거 스트림 디스크립터는 일 실시예이므로, 추가적인 정보를 부가하거나 다른 형태로 구성할 수 있는 점은 자명할 것이다. 예를 들어, 가상 채널 당 하나의 트리거 스트림을 전송하는 경우에는 컨텐트 아이템에 관한 필드는 생략할 수 있다. 또한 트리거 스트림을 식별하기 위한 트리거 스트림 식별 정보 필드 또는 프로필 정보 필드 중 적어도 하나가 부가될 수 있다.
방송국은 상술한 트리거 스트림 디스크립터를 이용하여 TDO와 같은 트리거 대상 NRT 서비스의 목록 정보를 전송할 수 있다. 또한, 방송국은 컨텐트 아이템에 따라 다른 트리거가 존재하는 경우에는 target_service_id 및 targe_content_linkage필드를 이용하여 트리거 시그널링 정보를 전송할 수 있다. 또한, 트리거 스트림 디스크립터는 트리거 스트림을 전송하는 IP 주소 정보 또는 포트 넘버의 목록을 더 포함할 수 있다.
한편, 본 발명의 일 실시예에 따르면, 방송국은 스트림 타입을 지정하여 트리거 시그널링 정보를 전송할 수 있다. 수신기는 PMT로부터 스트림 타입을 이용하여 트리거 시그널링 정보를 추출하고, 이를 통하여 트리거 스트림을 수신할 수 있다. 예를 들어, 현재 예비적으로 설정되어 있는 스트림 타입중 하나인 0x96을 트리거 스트림으로 지정할 수 있다. 이 경우, 종래의 수신기는 스트림 타입이 0x96인 경우에 대한 정보가 없으므로, 트리거 스트림을 처리하지 않고 버릴 수 있다. 따라서, 하위 기종의 수신기에 대한 호환성이 보장되는 장점이 있다.
본 발명의 일 실시예에 따르면 MHP(Multimidia Home Platform) 또는 ACAP(Advanced Common application platform)등의 데이터 방송에서 어플리케이션 정보를 전송하기 위한 AIT(Application information)테이블에 트리거를 포함하여 전송할 수 있다. 도 31은 이와 같은 AIT테이블의 일 실시예를 도시하고 있다.
그리고, 본 발명의 다른 일 실시예에 따르면 트리거 시간으로서 STT(System Time Table)를 참조하기 위해 트리거를 STT의 디스크립터에 포함하여 전송할 수도 있다. 도 32는 이와 같은 STT 테이블의 일 실시예를 도시한다.
도 33은 본 발명의 일 실시예에 따른 TDO 및 트리거를 송신하기 위한 송신기를 개략적으로 나타낸 블록도이다.
도 33을 참조하면, 본 발명의 일 실시예에 따른 송신기(200)는 NRT 서비스 전송부(210), 트리거 전송부(220), 다중화부(230) 및 변조부(240)를 포함하여 구성되며, NRT 서비스 전송부(210)는 NRT 서비스(TDO)생성부(211) 및 NRT 서비스 시그널링 데이터 생성부(212)를 포함하고, 트리거 전송부(220)는 트리거 생성부(221) 및 트리거 시그널링 데이터 생성부(222)를 포함하여 구성된다.
NRT 서비스(TDO)생성부(211)는 서비스 제공자로부터 NRT 서비스 생성을 위한 데이터를 수신하여 NRT 서비스를 생성하고, 생성된 NRT 서비스를 IP 데이터그램으로 패킷화하고, 이를 다시 전송 패킷(TP)으로 패킷화한다. 패킷화된 NRT 서비스 데이터는 다중화부(230)로 전송된다.
그리고, NRT 서비스 생성부(211)는 NRT 서비스 시그널링 데이터 생성부(212)로 NRT 서비스를 전송하고자 하는 채널 정보 및 service_id를 포함하는 메타데이터를 전송한다. 또한, 생성된 NRT 서비스가 TDO인 경우에는, TDO를 트리거 하기 위한 트리거 시간, 대상 TDO의 식별 정보 및 트리거 액션 정보를 포함하는 트리거 정보를 추출하여 트리거 생성부(221)로 전송한다.
NRT 서비스 시그널링 데이터 생성부(212)는 수신한 NRT 서비스 메타데이터를 이용하여 NRT 서비스를 수신하기 위한 NRT 서비스 시그널링 데이터를 생성하고, 전송 패킷(TP)으로 패킷화 한 뒤, 다중화부(230)로 전송한다.
한편, 트리거 생성부(221)는 NRT 서비스(TDO) 생성부로부터 수신한 TDO의 트리거 정보를 이용하여 트리거 데이터를 생성한다. 생성된 트리거 데이터는 전송 패킷화 되어 다중화부(230)로 전송된다. 그리고 트리거 생성부(221)는 전송한 트리거 데이터의 패킷 식별자(PID)와 같은 트리거 수신을 위한 메타데이터를 트리거 시그널링 데이터 생성부(222)로 전송한다.
트리거 시그널링 데이터 생성부(222)는 수신한 메타데이터에 기초하여 트리거 시그널링 데이터를 생성하고, 이를 다시 전송 패킷화 하여 다중화부(230)로 전송한다.
다중화부(230)는 수신한 전송 패킷들을 각각의 채널별로 다중화하고, 다중화된 신호를 변조부(240)로 전송한다.
변조부(240)는 다중화된 신호에 대하여 전송을 위한 변조 처리를 거쳐 외부로 송신한다. 변조 방법으로는 다양한 방법이 있을 수 있으며, 본 발명은 변조 방법에 한정되지는 않는다.
도 34는 본 발명의 일 실시예에 따른 TDO 및 트리거를 수신하기 위한 수신기(300)를 개략적으로 나타낸 블록도이다.
도 34와 같이, 본 발명의 일 실시예에 따른 수신기(300)는 복조부(310), 역다중화부(320), 트리거 처리부(330), NRT 서비스 처리부(340) 및 서비스 매니저(350)를 포함하여 구성되며, 트리거 처리부(330)는 트리거 수신부(331) 및 트리거 시그널링 데이터 수신부(332)를 포함하고, NRT 서비스 처리부(340)는 NRT 서비스(TDO) 수신부(341) 및 NRT 서비스 시그널링 데이터 수신부(342)를 포함하여 구성된다.
복조부(310)는 송신기(200)로부터 변조된 신호를 수신하여 기 지정된 복조 방식에 따라 복조하여 역다중화부(320)로 전송한다.
역다중화부(320)는 복조된 신호를 역다중화하여 각 채널별 원래의 전송 패킷들을 복원하여 트리거 처리부(330) 또는 NRT 서비스 처리부(340)의 각 수신부로 전송한다.
NRT 서비스 시그널링 데이터 수신부(342)는 앞서 설명한 바와 같은 패킷화된 NRT 서비스 시그널링 데이터를 역다중화부(320)로부터 수신하고 복원하여 NRT 서비스를 수신하기 위한 정보를 추출한 뒤, 이를 NRT 서비스(TDO) 수신부(341)로 전송한다. NRT 서비스(TDO) 수신부(341)는 NRT 서비스를 수신하기 위한 정보를 이용하여 NRT 서비스의 전송 패킷들을 역다중화부(320)로부터 수신하고, 이를 NRT 서비스 데이터로 복원하여 서비스 매니저(350)로 전송한다.
한편 트리거 시그널링 데이터 수신부(332)는 앞서 설명한 바와 같은 패킷화된 트리거 시그널링 데이터를 역다중화부(320)로부터 수신하여 복원하고, 트리거를 수신하기 위한 정보를 추출하여 트리거 수신부(331)로 전송한다. 트리거 수신부(331)는 트리거를 수신하기 위한 정보를 이용하여 트리거를 포함하는 전송 패킷들을 역다중화부(320)로부터 수신하고, 트리거 데이터를 복원하여 서비스 매니저(350)로 전송한다.
서비스 매니저(350)는 트리거 처리부(330) 또는 NRT 처리부(340)로부터 트리거 데이터 또는 NRT 서비스(TDO) 데이터 중 적어도 하나를 수신한다. 그리고, 서비스 매니저(350)는 트리거 시간에 트리거 대상 TDO에 대하여 트리거 액션을 수행 또는 적용함으로써 TDO에 대한 트리거 액션이 이루어지도록 한다.
도 35는 본 발명의 일 실시예에 의한 트리거 전송 방법을 개략적으로 나타낸 흐름도이다.
도 35를 참조하면, NRT 서비스 생성부(211)는 외부로부터 NRT 서비스 데이터를 수신하거나, NRT 서비스 제공자로부터 수신한 데이터에 기초하여 NRT 서비스 데이터를 생성한다(S100). 그리고, NRT 서비스 생성부(211)는 생성한 데이터를 전송 패킷으로 패킷화한다. 또한, NRT 서비스 생성부(211)는 NRT 서비스를 포함하는 전송 패킷들을 수신하기 위한 정보를 NRT 서비스 시그널링 데이터 생성부(212)로 전송한다.
이후, NRT 서비스 시그널링 데이터 생성부(212)는 앞서 설명한 바와 같은 NRT 서비스 시그널링 데이터를 생성하고, 전송 패킷으로 패킷화한다(S110).
한편, NRT 서비스 생성부(211)는 생성된 NRT 서비스가 트리거 선언적 오브젝트인지, 즉 TDO인지 판단한다(S120).
그리고, NRT 서비스 생성부(211)는 생성된 NRT 서비스가 TDO인 경우에는 대상 TDO를 트리거 하기 위한 트리거 시간, 트리거 액션, 대상 TDO 식별 정보를 포함하는 트리거 정보를 트리거 생성부(221)로 전송하고, 트리거 생성부(211)는 수신한 트리거 정보를 이용하여 트리거 데이터를 생성한다(S130). 생성된 트리거 데이터는 전송 패킷화되어 다중화부로 전송된다. 예를 들어, 대상 TDO에 대한 타겟 서비스 식별자 및 타겟 서비스에 대해 적용할 트리거 액션 정보는 패킷화된 스트림, 즉 PES의 페이로드에 삽입되어 전송될 수 있다. 또한, 트리거 시간 정보는 예를 들어, PTS 또는 DTS의 형태로 지정되어 PES의 페이로드 또는 헤더에 삽입되고, 전송될 수 있다. 이와 같이 동기화된 데이터 스트리밍 방식을 사용하면, 트리거 스트림의 PTS와 비디오 및 오디오 스트림의 PTS가 동기화되어 정확한 재생 타이밍을 맞출 수 있게 된다.
그리고, 트리거 시그널링 데이터 생성부(222)는 트리거 생성부(221)에서 전송한 트리거를 식별하여 수신하기 위한 트리거 시그널링 데이터를 생성하여 전송 패킷화하고, 다중화부로 전송한다(S140). 여기서, 트리거 시그널링 데이터는 프로그램 맵 테이블에 삽입된 트리거 스트림 디스크립터 또는 서비스 식별자 디스크립터를 포함할 수 있으며, 각 디스크립터에 대응되는 트리거 스트림의 패킷 식별자를 포함할 수 있다. 또한, 트리거 시그널링 데이터는 DST의 TAP구조에 포함된 트리거 스트림의 패킷 식별자를 포함할 수도 있다.
이후, 다중화부(230)는 전송 패킷화된 NRT 서비스 데이터, NRT 서비스 시그널링 데이터, 트리거 데이터 및 트리거 시그널링 데이터 중 적어도 하나를 전송 채널별로 다중화하고, 변조부(240)로 전송한다.
그리고, 변조부(240)는 다중화된 신호를 송신하기 위한 변조를 수행하고, 외부 수신기 또는 방송망으로 전송한다(S160).
도 36은 본 발명의 일 실시예에 따른 수신기(300)의 동작을 개략적으로 나타낸 흐름도이다.
먼저 수신기(300)는 전원이 ON 되는 경우, 사용자에 의해 선택된 채널 또는 기 설정된 채널을 선택한다(S200). 그리고, 선택된 채널로부터 수신되는 신호를 복조부(310)에서 복조하고, 역다중화부(320)는 복조된 신호를 전송 채널별로 역다중화한다(S210). 그리고, NRT 서비스 수신부(341) 및 NRT 서비스 시그널링 데이터부 수신부(342)는 앞서 설명한 바와 같이 NRT 서비스 데이터를 수신하여 서비스 매니저(350)로 전송한다.
이후, 트리거 시그널링 데이터 수신부(332) 또는 NRT 서비스 시그널링 데이터 수신부(342)는 트리거 수신이 가능한지 확인한다(S220). 트리거 수신 확인은 상술한 방법들 중 어느 하나를 이용할 수 있다. 즉, 트리거 시그널링 데이터 수신부(332) 또는 NRT 서비스 시그널링 데이터 수신부(342)는 PSIP base PID 또는 MGT에서 트리거에 대응하는 PID를 확인하는 방법, DST의 tap 구조를 이용한 방법, 서비스 식별자 디스크립터 또는 트리거 스트림 디스크립터를 이용한 방법, 트리거 스트림 타입을 이용한 방법, AIT 또는 STT를 이용한 방법 중 어느 하나의 방법을 사용하여 트리거 수신이 가능한지 확인 할 수 있다.
그리고, 트리거 수신이 가능한 것으로 확인된 경우, 트리거 시그널링 데이터 수신부(332)는 트리거 시그널링 데이터를 포함하는 전송 패킷을 수신하여, 트리거 시그널링 데이터를 복원하고, 트리거 수신부(331)로 전송한다(S230).
이후, 트리거 수신부(331)는 트리거 시그널링 데이터를 이용하여 수신한 전송 패킷 중에서 트리거 데이터를 추출하고, 이를 서비스 매니저(350)로 전송한다(S240). 예를 들어, 트리거 수신부(331)는 상술한 트리거 스트림 디스크립터에 대응하는 패킷 식별자를 이용하여 트리거 스트림을 수신할 수 있다. 또한, 트리거 수신부(331)는 트리거 스트림으로부터 트리거 정보를 추출하여 서비스 매니저(350)로 전송할 수 있다. 또한, 수신한 트리거 스트림이 PES인 경우에는, PES의 헤더에 포함된 PTS를 트리거 시간으로 추출하고, PES의 페이로드에 포함된 타겟 서비스 식별자 및 트리거 액션을 추출하여 서비스 매니저(350)로 전송할 수 있다.
그리고, 서비스 매니저(350)는 트리거가 수신된 경우, 트리거 시간에 대상 TDO에 대해 트리거 액션을 수행함으로써, TDO의 트리거가 이루어지도록 한다(S250). 특히, PES의 PTS가 트리거 시간인 경우에는 트리거 스트림의 PTS가 오디오 및 비디오 스트림의 PES의 헤더에 포함된 PTS와 동기화되어 정확한 재생 타이밍을 맞출 수 있다.
도 37은 본 발명의 일 실시예에 따른 트리거 수신 방법 중, 트리거 테이블을 이용하여 수신하는 방법을 나타낸 흐름도이다.
복조부(310) 선택된 채널에 대한 방송 신호를 수신하여 복조한다. 그리고, 트리거 시그널링 데이터 수신부(332)는 역다중화부(320)를 통하여 PSIP 테이블을 수신하며, 수신되는 테이블 중 트리거 테이블이 존재하는지 판단하여 트리거 서비스를 식별한다(S310). 트리거 시그널링 데이터 수신부(332)는 트리거 테이블로 할당한 PID를 MGT 또는 PSIP base 테이블중에서 검색하거나, 트리거 테이블에 할당한 Table_id에 대응되는 테이블을 검색하여 트리거 서비스를 식별할 수 있다.
만약, 트리거 서비스가 식별되지 않는 경우에는 수신기(300)는 일반 방송 서비스를 제공한다.
한편, 트리거 서비스가 식별된 경우, 트리거 수신부(331)는 검색된 트리거 테이블을 수신하여 수신한 트리거 테이블을 파싱한다(S320, S330).
이후, 서비스 매니저(350)는 트리거 테이블에서 파싱된 트리거 시간, 트리거 액션, 대상 TDO 식별 정보를 포함하는 트리거 정보를 수신하여, 해당 트리거 시간에 해당 TDO에 대해 해당 트리거 액션을 수행한다(S340).
도 38은 본 발명의 일 실시예에 따라 DST를 이용하여 트리거 시그널링 정보 및 트리거를 전송하는 경우 수신기(300)의 동작을 나타낸 흐름도이다.
수신기(300)는 물리적 전송 채널이 선택되고(S3000), 튜너에 의해 선택된 채널이 튜닝되면, 튜닝된 물리적 전송 채널로 수신되는 방송 신호로부터 복조부(310) 및 역다중화부(320)를 이용하여 VCT와 PMT를 획득한다(S3010). 그리고, PSI/PSIP 섹션 핸들러 또는 트리거 시그널링 데이터 수신부(332) 또는 NRT 서비스 시그널링 데이터 수신부(342)는 획득된 VCT 및 PMT를 파싱하며, NRT서비스가 있는지 확인한다.
예를 들어, VCT의 service_type필드 값이 0x04 또는 0x08이 아니면 해당 가상 채널은 NRT 전용 서비스를 전송하지 않는다. 이때 해당 가상 채널은 기존 방송 서비스를 전송하므로, 수신기(300)는 해당 가상 채널에 포함된 정보에 따라 적절한 동작을 수행한다. 그러나 service_type 필드 값이 NRT 전용 서비스를 의미하지 않는다 하더라도, 해당 가상 채널은 NRT 서비스를 포함할 수 있다. 이러한 경우 해당 가상 채널에 포함되는 부가 NRT 서비스(adjunct NRT service)라고 부르고, 수신기(300)는 NRT 서비스를 수신하는 경우와 같은 프로세스를 수행할 수 있다.
그리고, NRT 서비스 시그널링 데이터 수신부(342) 또는 트리거 시그널링 데이터 수신부(332)는 service_type 필드의 값이 0x04 또는 0x08이면, 해당 가상 채널을 통해 NRT 서비스를 수신할 수 있음을 판단할 수 있다. 이 경우, VCT의 service location descriptor(또는 PMT의 ES loop)에 포함된 stream_type 필드 값이 0x95(즉, DST 전송)이면, 이때의 Elementary_PID 필드 값을 이용하여 DST를 수신한다(S3020). 이는 서비스 매니저(350)의 제어에 의해 역다중화부(320)에서 수행될 수 있다.
그리고, 트리거 시그널링 데이터 수신부(342)는 수신된 DST로부터 트리거 서비스를 식별한다(S3040). 트리거 서비스를 식별하는 방법은 상술한 바와 같이 어플리케이션 식별 구조(application identification structure)를 이용하여 app_id_description, app_id_byte에 할당된 특정 값을 식별하는 방법, protocol_encapsulation 필드에 할당된 특정 값을 식별하는 방법, content type descriptor가 존재하는 tap을 식별하는 방법 중 어느 하나를 사용할 수 있다.
만약, 수신된 DST에서 트리거 서비스가 식별되지 않는 경우에는 해당 가상 채널은 트리거 데이터가 일반 NRT 서비스를 전송하고 있으므로, 수신기(300)는 해당 가상 채널에 포함된 NRT 서비스에 따라 적절한 동작을 수행한다(S3030).
그리고, DST에서 트리거 서비스가 식별된 경우, 트리거 시그널링 데이터 수신부(332)는 트리거 시그널링 정보(트리거 스트림의 PID)를 포함하는 DST로부터 tap을 추출한다(S3060).
이어서 트리거 시그널링 데이터 수신부(332)는 추출된 Tap의 association_tag를 포함하는 스트림 PID를 PMT로부터 추출한다(S3070).
트리거 수신부(331)는 추출된 스트림 PID에 해당하는 MPEG-2 TS 패킷들을 수신하고 디캡슐레이션 즉, TS 헤더를 제거하여, 트리거 스트림을 포함하는 PES 스트림을 복원한다. 트리거 스트림을 포함하는 PES 패킷의 스트림 타입(stream_type)은 동기화된 데이터 스트림을 나타내는 0x06일 수 있다. 트리거 수신부(331)는 복원된 PES 스트림으로부터 PES패킷 헤더의 PTS, 트리거 스트림에 포함된 대상 TDO 식별자, 트리거 식별자 또는 트리거 액션 정보중 적어도 하나를 파싱한다(S3070).
이후, 서비스 매니저(350)는 트리거를 포함하는 PES 패킷 헤더의 PTS를 트리거 시간으로 하여, 트리거 시간에 대상 TDO에 대한 액션을 수행한다(S3080). 여기서, 대상 TDO는 파싱된 대상 TDO 식별자에 의해 지시된 NRT 서비스일 수 있다. 또한, 액션은 파싱된 트리거 액션 정보에 의해 지시된 준비, 실행, 연장, 종료 명령 중 어느 하나일 수 있다.
도 39는 본 발명의 일 실시예에 따라 트리거 스트림 디스크립터를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
수신기(300)는 물리적 전송 채널이 선택되고(S3000), 튜너에 의해 선택된 채널이 튜닝되면, 튜닝된 물리적 전송 채널로 수신되는 방송 신호로부터 복조부(310) 및 역다중화부(320)를 이용하여 VCT와 PMT를 획득한다(S4000). 방송 신호는 VCT와 PMT를 포함하며, 트리거 시그널링 데이터 수신부(332) 또는 PSI/PSIP 섹션 핸들러가 획득된 VCT 및 PMT를 파싱한다.
그리고, 트리거 시그널링 데이터 수신부(332)는 VCT와 PMT로부터 해당 가상 채널로 트리거가 전송되고 있는지 확인한다. 이를 위하여 트리거 시그널링 데이터 수신부(332)는 해당 가상 채널에 대응하는 PMT의 ES 디스크립터 루프에 상술한 트리거 스트림 디스크립터(Trigger_stream_descriptor)가 존재하는지를 판단한다(s4020). Trigger_stream_descriptor가 존재하는지 여부는, ES 디스크립터 루프 내 디스크립터들을 탐색하되, stream_type 값이 동기화된 데이터 스트리밍에 해당하는 0x06인지와 해당 디스크립터의 descriptor_tag 필드가 트리거 스트림 디스크립터에 대응되도록 설정한 값과 일치하는지를 이용하여 판단할 수 있다.
만약, PMT에서 Trigger_stream_descriptor가 식별되지 않아 존재하지 않는다고 판단한 경우에는 해당 가상 채널은 트리거를 전송하지 않으므로, 수신기(300)는 해당 가상 채널에 포함된 방송 서비스에 따라 적절한 동작을 수행한다(S4025).
그리고, Trigger_stream_descriptor가 존재하는 경우, 트리거 시그널링 데이터 수신부(332)는 PMT의 해당 ES 루프 에 포함된 Elementray_PID를 추출한다(S4030). 추출된 스트림 PID는 트리거 스트림을 포함하는 스트림의 PID값일 수 있다.
이후, 트리거 수신부(331)는 추출된 스트림 PID에 해당하는 MPEG-2 TS 패킷들을 수신하여 디캡슐레이션 즉, TS 헤더를 제거하고, 트리거 스트림을 포함하는 PES 스트림을 복원한다. 트리거 스트림을 포함하는 PES 패킷의 스트림 타입(stream_type)은 동기화된 데이터 스트림을 나타내는 0x06일 수 있다. 트리거 수신부(331)는 복원된 PES 스트림으로부터 PES패킷 헤더의 PTS, 트리거 스트림에 포함된 대상 TDO 식별자, 트리거 식별자 또는 트리거 액션 정보중 적어도 하나를 파싱한다(S4040).
이후, 서비스 매니저(350)는 트리거를 포함하는 PES 패킷 헤더의 PTS를 트리거 시간으로 하여, 트리거 시간에 대상 TDO에 대한 액션을 수행한다(S4050). 여기서, 대상 TDO는 파싱된 대상 TDO 식별자에 의해 지시된 NRT 서비스일 수 있다. 또한, 액션은 파싱된 트리거 액션 정보에 의해 지시된 준비, 실행, 연장, 종료 명령 중 어느 하나일 수 있다.
도 40은 본 발명의 일 실시예에 따라 스트림 타입을 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
수신기(300)는 물리적 전송 채널이 선택되고, 튜너에 의해 선택된 채널이 튜닝되면, 튜닝된 물리적 전송 채널로 수신되는 방송 신호로부터 복조부(310) 및 역다중화부(320)를 이용하여 VCT와 PMT를 획득한다. 방송 신호는 VCT와 PMT를 포함하며, 트리거 시그널링 데이터 수신부(332) 또는 PSI/PSIP 섹션 핸들러가 획득된 VCT 및 PMT를 파싱한다(S400).
그리고, 트리거 시그널링 데이터 수신부(332)는 VCT와 PMT로부터 해당 가상 채널로 트리거가 전송되고 있는지 확인한다. 이를 위하여 트리거 시그널링 데이터 수신부(332)는 해당 가상 채널에 대응하는 PMT의 ES 디스크립터 루프에 상술한 특정 스트림 타입인 0x96이 있는지 판단한다(S410).
만약, PMT에서 스트림 타입에 0x96이 식별되지 않아 존재하지 않는다고 판단한 경우에는 해당 가상 채널은 트리거를 전송하지 않으므로, 수신기(300)는 해당 가상 채널에 포함된 방송 서비스에 따라 적절한 동작을 수행한다(S415).
그리고, 스트림 타입이 0x96인 경우, 트리거 시그널링 데이터 수신부(332)는 PMT의 해당 ES 루프 에 포함된 Elementray_PID를 추출한다(S420). 추출된 스트림 PID는 트리거 스트림을 포함하는 스트림의 PID값일 수 있다.
이후, 트리거 수신부(331)는 추출된 스트림 PID에 해당하는 MPEG-2 TS 패킷들을 수신하여 디캡슐레이션 즉, TS 헤더를 제거하고, 트리거 스트림을 포함하는 PES 스트림을 복원한다. 트리거 수신부(331)는 복원된 PES 스트림으로부터 PES패킷 헤더의 PTS, 트리거 스트림에 포함된 대상 TDO 식별자, 트리거 식별자 또는 트리거 액션 정보중 적어도 하나를 파싱한다(S430).
이후, 서비스 매니저(350)는 트리거를 포함하는 PES 패킷 헤더의 PTS를 트리거 시간으로 하여, 트리거 시간에 대상 TDO에 대한 액션을 수행한다(S440). 여기서, 대상 TDO는 파싱된 대상 TDO 식별자에 의해 지시된 NRT 서비스일 수 있다. 또한, 액션은 파싱된 트리거 액션 정보에 의해 지시된 준비, 실행, 연장, 종료 명령 중 어느 하나일 수 있다.
도 41은 본 발명의 일 실시예에 따라 AIT를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
트리거 시그널링 데이터 수신부(332)는 복조부(310) 및 역다중화부(320)를 이용하여 AIT를 수신한다(S500).
그리고, 트리거 시그널링 데이터 수신부(332)는 AIT로부터 트리거가 전송되고 있는지 확인한다. 이를 위하여 트리거 시그널링 데이터 수신부(332)는 AIT에 트리거 디스크립터가 존재하는 확인한다(S510).
만약, 트리거 디스크립터가 존재하지 않는다고 판단한 경우에는 해당 어플리케이션은 트리거를 포함하지 않으므로, 수신기(300)는 해당 어플리케이션 서비스에 따라 적절한 동작을 수행한다(S515).
그리고, 트리거 디스크립터가 존재하는 경우, 트리거 수신부(332)는 트리거 디스크립터로부터 트리거 데이터를 추출하고, 추출한 트리거 데이터를 파싱하여 서비스 매니저(350)로 전송한다(S530).
이후, 서비스 매니저(350)는 파싱된 트리거 데이터에 기초하여 트리거 시간에 대상 TDO에 대한 액션을 수행한다(S540). 여기서, 대상 TDO는 파싱된 대상 TDO 식별자에 의해 지시된 NRT 서비스일 수 있다. 또한, 액션은 파싱된 트리거 액션 정보에 의해 지시된 준비, 실행, 연장, 종료 명령 중 어느 하나일 수 있다.
도 42는 본 발명의 일 실시예에 따라 STT를 이용하여 트리거를 전송하는 경우의 수신기의 동작을 나타낸 흐름도이다.
트리거 시그널링 데이터 수신부(332)는 복조부(310) 및 역다중화부(320)를 이용하여 STT를 수신한다(S600).
그리고, 트리거 시그널링 데이터 수신부(332)는 STT로부터 트리거가 전송되고 있는지 확인한다. 이를 위하여 트리거 시그널링 데이터 수신부(332)는 STT에 트리거 디스크립터가 존재하는지 확인한다(S610).
만약, 트리거 디스크립터가 존재하지 않는다고 판단한 경우에는 해당 STT는 트리거를 포함하지 않으므로, 수신기(300)는 방송 신호에 따라 적절한 동작을 수행한다(S615).
그리고, 트리거 디스크립터가 존재하는 경우, 트리거 수신부(332)는 트리거 디스크립터로부터 트리거 데이터를 추출하고, 추출한 트리거 데이터를 파싱하여 서비스 매니저(350)로 전송한다(S630).
이후, 서비스 매니저(350)는 파싱된 트리거 데이터에 기초하여 트리거 시간에 대상 TDO에 대한 액션을 수행한다(S540). 여기서, 대상 TDO는 파싱된 대상 TDO 식별자에 의해 지시된 NRT 서비스일 수 있다. 또한, 액션은 파싱된 트리거 액션 정보에 의해 지시된 준비, 실행, 연장, 종료 명령 중 어느 하나일 수 있다.
도 43은 본 발명의 한 실시예에 따른 타이밍 다이어그램을 보여준다.
도 43에 도시된 바와 같이, 송신기(200)는 수신기(300)가 언제 채널을 변경할지 수신기(300)가 언제 Power On될지 그리고 수신기(300)가 해당 NRT 서비스가 존재하는 채널을 언제 선택할지를 알 수 없으므로, 송신기(200)는 지상파 방송을 통해 NRT 방식으로 전송되는 다운로드 컨텐트들을 주기적으로 반복하여 전송할 수 있다.
도 43에서, 활성화 시간(T1)은 NRT(T1) 서비스의 활성화가 트리거되는 시간을 나타낸다. 유효 시간(Te)은 활성화 시간(T1) 이전에 마지막으로 NRT(T1)이 전송되기 시작한 시간을 나타낸다. 전송 주기 변경 시간(To)는 활성화 트리거 데이터가 전송되는 주기가 변경되는 시간을 나타낸다. 전송 주기 변경 시간(To)은 송신기(200)가 결정할 수 있는 시간 파라미터이다. 시간 윈도우(Tp1)는 유효 시간(Te) 이전을 나타낸다. 시간 윈도우(Tp2)는 유효 시간(Te)과 활성화 시간(T1) 사이를 나타낸다. 시간 윈도우(Tp3)는 유효 시간(Te)과 전송 주기 변경 시간(To) 사이를 나타낸다. 시간 윈도우(Tp4)는 전송 주기 변경 시간(To)과 활성화 시간(T1) 사이를 나타낸다.
도 44는 본 발명의 한 실시예에 따른 활성화 트리거 데이터 전송 방법을 보여주는 흐름도이다.
먼저, 트리거 전송부(220)는 타겟 오브젝트인 NRT(T1) 서비스의 활성화 시간(T1)을 설정하고(S5101), 전송 주기 변경 시간(To)을 설정하고(S5103), 짧은 주기 전송 횟수(M)를 설정한다(S5105).
현재 시스템 시간(t)이 전송 주기 변경 시간(To) 이후이고 NRT(T1) 서비스의 활성화 시간(T1) 이전이면(S5111), 트리거 전송부(220)는 짧은 주기로 NRT(T1) 서비스를 위한 활성화 트리거 데이터를 전송한다(S5113).
현재 시스템 시간(t)이 NRT(T1) 서비스의 활성화 시간(T1) 이후이면(S5111), 트리거 전송부(220)는 NRT(T1) 서비스를 위한 활성화 트리거 데이터의 전송을 종료한다(S5115).
이하에서는 도 45 내지 도 47을 참고하여 본 발명의 또 다른 실시예에 따른 트리거 데이터 전송 패턴을 설명한다. 특히, 유지 트리거 데이터(maintenance Triggering Data, MTD)의 전송 패턴을 설명한다.
일 실시예에서, 유지에 해당하는 값으로 설정된 트리거 액션을 포함하는 트리거 데이터가 유지 트리거 데이터일 수 있다.
도 45는 본 발명의 또 다른 실시예에 따른 타이밍 다이어그램을 보여준다.
도 45에서 활성화 시간(Ta)는 TDO의 활성화 시간을 나타내고, 종료 시간(Tf)은 TDO의 종료 시간을 나타낸다. 추가 액션 시간(Taction)은 활성화 시간(Ta) 이후에 그리고 종료 시간(Tf) 이전에 TDO를 위한 다른 추가 액션이 트리거(활성화)되는 시간을 나타낸다. 시간 윈도우(Tplife)는 활성화 시간(Ta)과 종료 시간(Tf) 사이를 나타내며, 특히 TDO의 라이프타임을 나타낸다. 시간 윈도우(Tp1)은 활성화 시간(Ta)과 추가 액션 시간(Taction) 사이를 나타낸다. 시간 윈도우(Tp2)은 추가 액션 시간(Taction)과 종료 시간(Tf) 사이를 나타낸다.
한편, 도 45는 시간 윈도우(Tplife) 내에서 TDO action이 Taction 시간에 한 차례 발생하는 경우를 예로 보여 주고 있다.
도 46은 본 발명의 한 실시예에 따른 유지 트리거 데이터 전송 방법을 보여주는 흐름도이다.
트리거 전송부(220)는 타겟 오브젝트인 TDO를 위한 활성화 시간(Ta)를 설정한다(S5201).
트리거 전송부(220)는 타겟 오브젝트를 위한 MTD의 전송 주기(Pmtd)를 결정한다(S5203). MTD의 전송 주기(Pmtd)는 미리 결정된 값으로 설정될 수 있다. 또한, MTD의 전송 주기(Pmtd)는 수신기(300)의 채널 변경 시간 또는 수신기(300)의 전원 온/오프에 걸리는 시간을 고려하여 설정될 수 있다.
현재 시스템 시간(t)이 타겟 오브젝트의 활성화 시간(Ta) 이전이면(S5205), 트리거 전송부(220)는 타겟 오브젝트를 위한 MTD를 전송하지 않는다(S5207).
한편, 현재 시스템 시간(t)이 타겟 오브젝트의 활성화 시간(Ta) 이후이고(S5205) 타겟 오브젝트의 종료 시간(Tf) 이전이면(S5209), 트리거 전송부(220)는 트리거 데이터의 변경을 확인한다(S5211).
트리거 데이터가 변경된 경우에, 트리거 전송부(220)는 변경된 트리거 데이터와 추가 액션을 포함하는 유지 트리거 데이터를 전송한다(S5213).
트리거 데이터가 변경되지 않은 경우에, 트리거 전송부(220)는 변경 전 트리거 데이터와 추가 액션을 포함하는 유지 트리거 데이터를 전송한다(S5215).
한편, 현재 시스템 시간(t)이 타겟 오브젝트의 종료 시간(Tf) 이후이면(S5209), 트리거 전송부(220)는 유지 트리거 데이터의 전송을 종료한다(S5217).
도 47은 본 발명의 한 실시예에 따른 유지 트리거 수신 방법을 설명한다.
먼저, 수신기(300)의 트리거 수신부(331)는 유지 트리거 데이터를 수신한다(S5301). 유지 트리거 데이터의 수신은 앞에서 설명한 다양한 실시예에 따라 수행될 수 있다.
유지 트리거 데이터의 타겟 서비스 식별자에 해당하는 오브젝트가 수신기(300)에서 이미 활성화되었으면(S5303), 수신기(300)의 서비스 매니저(350)는 이 오브젝트의 활성화를 유지한다(S5305)
유지 트리거 데이터의 타겟 서비스 식별자에 해당하는 오브젝트가 수신기(300)에서 아직 활성화되지 않았으면(S5303), 수신기(300)의 서비스 매니저(350)는 상기 오브젝트를 활성화시킨다(S5307).
이하에서는 도 48 내지 도 50를 참고하여 본 발명의 한 실시예에 따른 트리거 데이터 수신 타이밍을 설명한다. 특히, 준비 트리거 데이터(preparation Triggering Data, PTD)의 수신 타이밍을 설명한다.
도 48은 본 발명의 한 실시예에 따른 타이밍 다이어그램을 보여준다.
도 48에서, 준비 트리거 시간(Tp)는 PTD에 의해서 TDO의 준비가 트리거되는 시간을 나타낸다. 활성화 시간(Ta)는 TDO가 활성화되는 시간을 나타내고, 종료 시간(Tf)는 TDO가 종료되는 시간을 나타낸다.
시간 윈도우(Tpa)는 준비 트리거 시간(Tp)과 활성화 시간(Ta)의 사이를 나타내고, 시간 윈도우(Tplife)는 활성화 시간(Ta)과 종료 시간(Tf) 사이를 나타낸다.
시간 윈도우(Tpa)는 사전 작업에 따라 해당 사전 작업에 따라서 달라질 수 있다.
도 49는 본 발명의 한 실시예에 따른 준비 트리거 수신 방법을 보여주는 흐름도이다.
특히 도 49는 다운로딩 준비 트리거 데이터의 처리 방법을 보여준다.
도 50은 본 발명의 또 다른 실시예에 따른 준비 트리거 수신 방법을 보여주는 흐름도이다.
특히, 도 50은 TDO의 준비를 위하여 TDO의 백그라운드 활성화를 요구하는 PTD의 처리 방법을 보여준다.
이처럼 트리거는 그 성격에 따라 크게 준비 트리거, 활성화 트리거, 및 유지 트리거로 분류될 수 있다.
이런 3가지 트리거의 식별 방법과 3가지 트리거 간의 상호 참조 방법에 대하여는 후술한다.
도 51은 본 발명의 또 다른 실시예에 따라 구성한 트리거의 비트스트림 신택스를 도시한 것이다.
도 51에 도시된 신택스를 따르는 트리거는 도 25에 도시된 신택스를 따르는 트리거에 비하여 트리거 타입 필드(trigge_type)와 참조 타겟 트리거 식별자 필드(target_trigger_id_ref)를 더 포함한다.
도 53은 본 발명의 한 실시예에 따른 인터넷 위치 디스크립터의 신택스를 보여준다.
도 53에 도시된 바와 같이, 인터넷 위치 디스크립터는 디스크립터 태그 필드(descriptor_tag), 디스크립터 길이 필드(descriptor_length), URL 카운트 필드(URL_count), URL 길이 필드(URL_length), URL() 필드를 포함한다.
도 54는 본 발명의 또 다른 실시예에 따른 트리거 전송 방법을 도시한 흐름도이다.
송신기(200)는 준비 트리거의 전송 타이밍에서(S6001) 준비 트리거를 전송하고(S6003), 활성화 트리거의 전송 타이밍에서(S6005) 활성화 트리거를 전송하고(S6007), 유지 트리거의 전송 타이밍에서(S6009) 유지 트리거를 전송한다(S6011).
준비 트리거, 활성화 트리거 및 유지 트리거의 전송과 관련하여, 일 실시예에서, 준비 트리거, 활성화 트리거 및 유지 트리거는 하나의 스트림에 포함되어 전달될 수 있다.
다음은 도 55 내지 도 57을 참고하여 본 발명의 실시예에 따른 수신기(300)의 동작 방법을 설명한다.
도 55은 본 발명의 실시예에 따른 수신기의 동작 방법을 보여주는 흐름도이다.
수신기(300)는 트리거를 수신한다(S6101). 특히, 수신기(300)는 도 36 내지 도 42에 도시된 바와 같은 방법으로 트리거를 수신할 수 있다.
수신기(300)는 수신한 트리거의 종류를 확인한다(S6103). 수신기(300)는 앞서 설명한 바와 같은 방법으로 수신한 트리거의 종류를 확인할 수 있다. 예컨데, 수신기(300)는 트리거 내의 트리거 타입 필드(trigge_type)와 트리거 액션 필드(trigger_action) 중 하나 이상을 통해 트리거의 종류를 확인할 수 있다. 또한, 수신기(300)는 타겟 TDO의 활성화 여부나 트리거 타임의 경과 여부에 따라 트리거의 종류를 확인할 수 있다.
수신한 트리거가 준비 트리거이면(S6105), 수신기(300)는 수신한 준비 트리거를 처리한다(S6107). 수신기(300)의 준비 트리거의 처리에 대하여는 준비 트리거의 트리거 액션 필드와 관련하여 설명하였다. 이러한 준비 트리거의 처리를 통해 TDO의 상태가 변할 수 있다.
또 다른 실시예에서, 준비 트리거가 컨텐트 아이템의 다운로드를 트리거하는 경우, 수신기(300)는 그 준비 트리거 내의 인터넷 위치 디스크립터로부터 다운로드할 컨텐트 아이템의 위치 정보를 파악하고, 파악한 위치 정보를 통해 컨텐트 아이템을 다운로드할 수 있다.
다시 도 55를 설명한다.
수신한 트리거가 활성화 트리거이면(S6109), 수신기(300)는 수신한 활성화 트리거를 처리한다(S6111). 수신기(300)의 활성화 트리거의 처리에 대하여는 활성화 트리거의 트리거 액션 필드와 관련하여 설명하였다. 이러한 활성화 트리거의 처리를 통해 TDO의 상태가 변할 수 있다.
수신한 트리거가 유지 트리거이면(S6113), 도 47에서 보여지는 바와 같이 수신기(300)는 수신한 유지 트리거를 처리한다(S6115).
도 57은 본 발명의 실시예에 따른 수신기가 트리거를 처리하는 방법을 보여주는 TDO 상태 천이도이다.
도 57에 도시된 바와 같이, 타겟 TDO는 준비되지 않은 상태(non-ready state)와 같은 해제 상태(released state)(ST110), 준비 상태(ready state)(ST120), 활동 상태(active state)(ST130), 중단 상태(suspended state)(ST140) 중 어느 한 상태에 있다.
이하에서는 본 발명의 일 실시예에 따라 비실시간 서비스, 실시간 방송 및 인터넷 망을 연계하여 비실시간 서비스에 대한 정보를 제공하는 방법에 대하여 설명한다.
상술한 바와 같이 실제 방송 시스템에서, 하나의 방송 프로그램은 해당 프로그램과 연동하여 구동되는 적어도 하나의 어플리케이션을 포함할 수 있으며, 이와 같은 어플리케이션은 상술한 NRT 서비스 수신 방법을 통해 수신기(300)에 저장되고, 실행될 수 있다.
그러나, PSIP 테이블에는 방송 프로그램과 연계된 NRT 서비스에 대한 정보가 포함되어 있지 않으므로, 수신기(300)가 방송 프로그램과 연계된 NRT 서비스를 수신하려면, 특정 방송 프로그램이 속한 채널의 NRT-IT를 모두 파싱하여야 한다. 그리고, 수신기(300)가 먼저 NRT-IT를 수신하여 NRT 서비스의 컨텐트 아이템을 수신하더라도 이와 연계된 방송 프로그램을 식별하기 어렵다. 또한, PSIP 테이블에는 인터넷 망에 대한 정보가 포함되어 있지 않으므로, 수신기(300)는 실시간 방송 프로그램만을 수신하여 인터넷 망으로 전송되는 관련 서비스를 파악하기 어렵다. 또한, 상기와 같은 이유로 수신기(300)는 특정 실시간 방송 프로그램에 대해 인터넷 망으로 전송되는 확장된 전자 프로그램 가이드(Extended EPG)를 수신하기 어렵다. 따라서, 실시간 방송 프로그램과 NRT 서비스 및 인터넷 망 사이에 유기적인 연동이 요구된다.
본 발명의 일 실시 예에서, 송신기(200)는 NRT 또는 TDO와 같은 비실시간 서비스 정보 또는 인터넷 망과 연동하기 위한 정보를 특정 채널 또는 프로그램에 대응되는 PSIP 테이블에 포함하여 전송할 수 있다. 또한, 비실시간 서비스에 특정 실시간 방송 채널 정보 또는 프로그램 정보에 대응되는 PSIP 테이블 정보를 포함하여 전송할 수 있다.
따라서, 수신기(300)는 실시간 방송 채널 또는 프로그램을 수신하고, PSIP 테이블을 파싱하여 특정 방송 프로그램과 연계되는 비실시간 서비스를 선택적으로 수신할 수 있다. 또한, 수신기(300)는 실시간 방송 채널 또는 프로그램을 수신하고, PSIP테이블을 파싱하여 특정 방송 채널 또는 프로그램과 연계되는 비실시간 서비스를 인터넷 망을 통해 수신할 수 있다. 그리고, 수신기(300)는 비실시간 서비스를 수신하여 상기 비실시간 서비스와 연동가능한 방송 프로그램에 대한 PSIP 테이블 정보를 획득하고, 사용자에게 제공할 수 있다.
일 실시 예에서, 실시간 방송과 연결되는 정보, 예를 들어 NRT 서비스, 미리보기 정보, 확장된 EPG정보, 하이라이트 정보, 관련 인터넷 포탈 정보 중 어느 하나를 제공하기 위한 디스크립터를 PSIP 테이블 중 어느 하나에 포함하여 전송할 수 있다. 본 발명의 실시 예에서는 이와 같은 디스크립터를 링크 디스크립터(link descriptor)라고 할 수 있다.
또한, 일 실시 예에서, 비실시간 서비스와 연동 가능한 방송 프로그램에 대한 정보, 예를 들어 방송 채널 정보 또는 프로그램 정보를 SMT 또는 NRT-IT와 같은 NRT 테이블 중 어느 하나에 포함하여 전송할 수 있다. 본 발명의 실시 예에서는 이와 같은 디스크립터를 이벤트 디스크립터(Event descriptor)라고 할 수 있다.
도 58은 본 발명의 일 실시 예에 따른 링크 디스크립터(link_descritor)의 신택스를 도시한 도면이며, 도 59 내지 도 60는 링크 디스크립터에 포함될 수 있는 필드들의 내용을 도시한 도면이다.
도 58에 도시된 바와 같이, 본 발명의 일 실시예에 따른 링크 디스크립터는 디스크립터 태그 필드(descriptor_tag), 디스크립터 길이 필드(descriptor_length), 링크 개수 필드(number_of_links), 및 복수의 링크 데이터 아이템을 포함한다. 복수의 링크 데이터 아이템의 각각은 링크 타입 필드(link_type), 링크 매체 필드(link_media), MIME 타입 길이 필드(mime_type_length), MIME 타입 필드(mime_type), 디스크립션 길이 필드(description_length), 디스크립션 필드(description), 링크 길이 필드(link_length), 링크 바이트 필드(link_byte)를 포함한다.
링크 개수 필드(number_of_links)는 복수의 링크 데이터 아이템의 개수를 나타내는 8비트 부호없는 정수 일 수 있다.
링크 타입 필드(link_type)는 링크 데이터 아이템에 포함된 링크 바이트 필드에 기초하여 수신 가능한 관련 서비스의 타입을 나타낸다. 예를 들어, 도 44에 도시된 바와 같이 링크 타입 필드는 링크 데이터 아이템에 포함된 링크 바이트 필드에 기초하여 수신 가능한 특정 서비스의 타입 정보를 나타낼 수 있다.
링크 매체(link_media) 필드는, 링크 데이터 아이템에 기초하여 관련 서비스를 수신하기 위한 전송 매체를 나타내는 8비트 부호없는 정수일 수 있다. 예를 들어, 도 60에 도시된 바와 같이, 링크 매체 필드가 0x02인 경우, 링크 매체 필드는 링크 데이터 아이템에 기초하여 수신할 수 있는 관련 서비스가 NRT 서비스(NRT service)를 통해 수신 가능함을 나타낼 수 있다. 또한, 링크 매체 필드가 0X03인 경우, 링크 매체 필드는 관련 서비스를 인터넷 서비스를 통해 수신 할 수 있음을 나타낼 수 있다.
링크 바이트 필드(link_byte)는, 상술한 방송 프로그램 관련 서비스를 수신하기 위한 데이터를 나타내는 필드일 수 있다. 링크 바이트 필드는 링크 매체를 통해 수신 가능한 컨텐츠의 식별 정보를 포함할 수 있다. 예를 들어, 도 60에 도시된 바와 같이, 링크 매체가 NRT 서비스인 경우, 링크 바이트 필드는 NRT 서비스를 수신하기 위한 서비스 식별자와 컨텐트 식별자(service_id, content_linkage)를 포함할 수 있다. 또한, 링크 매체가 인터넷 서비스인 경우, 링크 바이트 필드는 인터넷 주소 정보인 통합 자원 식별자(URI, uniform resource identifier) 또는 URL 정보를 포함할 수 있다.
도 61 내지 도 62는 본 발명의 일 실시 예에 따라 도 43에 도시한 링크 디스크립터가 PSIP 테이블 중 이벤트 정보 테이블(EIT, event information table)의 디스크립터에 속한 경우 각 테이블간의 연결 관계를 나타내는 도면이다.
도 61과 같이, 링크 디스크립터는 방송 프로그램 정보를 나타내는 이벤트 정보 테이블의 디스크립터(descriptor) 루프에 포함되어 전송될 수 있다.
이벤트 정보 테이블은 가상 채널 테이블(VCT)와 함께 PSIP에 포함되어 전송된다. 가상 채널 테이블은 선택된 가상 채널 번호(channel_number)에 대응되는 source_id를 포함하므로, 수신기(300)는 가상 채널 테이블의 source_id와 동일한 source_id를 포함하는 이벤트 정보 테이블을 파싱하여 해당 가상 채널에서 제공되는 각 방송 프로그램에 대한 정보를 획득할 수 있다. 각 방송 프로그램은 event_id로 식별될 수 있다.
따라서, 수신기(300)는 파싱한 이벤트 정보 테이블로부터 이벤트 루프 내 특정 방송 프로그램의 event_id를 포함하는 루프에서 링크 디스크립터를 추출하고, 추출된 링크 디스크립터를 통해 특정 방송 프로그램과 연결된 정보를 NRT 서비스로 수신하거나, 인터넷망을 통해 수신할 수 있다.
예를 들어, 도 61에 도시된 바와 같이, 링크 디스크립터에는 특정 방송 프로그램과 연결된 NRT 서비스의 서비스 식별자(service_id)와 컨텐트 식별자(content_linkage)가 포함될 수 있다. 이 경우, 수신기(300)는 연결된 NRT 서비스의 컨텐트 아이템 위치 정보를 SMT, NRT-IT 및 FDT를 통해 파악하고, 파악한 위치 정보를 통해 컨텐트 아이템을 다운로드할 수 있다.
구체적으로, 수신기(300)는 링크 디스크립터의 링크 바이트 필드에 포함된 서비스 식별자에 해당하는 서비스 시그널링 채널 정보를 SMT로부터 얻을 수 있다. 이때 서비스 시그널링 채널 정보는 IP 주소와 포트 번호를 포함할 수 있다. 또한, 수신기(300)는 링크 디스크립터의 링크 바이트 필드에 포함된 서비스 식별자에 해당하는 서비스에 속하는 컨텐트 식별자(content linkage)의 리스트를 NRT_IT로부터 얻을 수 있다. 수신기(300)는 링크 디스크립터의 링크 바이트(link_byte) 필드에 포함된 content linkage 필드를 통해 NRT_IT내의 서비스 식별자에 해당하는 다운로드할 컨텐트 아이템의 식별자를 인식할 수 있다. 그리고, 수신기(300)는 NRT_IT 내의 컨텐트 식별자에 대응되는 컨텐트 아이템 파일들의 위치를 SMT의 IP 주소와 포트 번호를 통해 수신되는 FLUTE FDT로부터 파악할 수 있다. 따라서 수신기(300)는 FLUTE FDT를 이용하여 FLUTE세션을 통해 해당 방송프로그램과 연계된 NRT 서비스의 컨텐트 아이템을 구성하는 파일들을 수신할 수 있게 된다. 또한, 수신기(300)는 NRT_IT에 포함된 후술할 인터넷 위치 디스크립터로부터 방송 프로그램과 연계된 컨텐트 아이템들의 URL 정보, 예를 들어 파일들의 URL 목록을 추출하고, 추출한 목록에 기초하여 네트워크를 통해 방송 프로그램과 연계된 NRT 서비스의 컨텐트 아이템을 구성하는 파일들을 수신할 수도 있다.
한편, 링크 디스크립터는 방송 프로그램과 연결된 NRT 서비스 정보뿐만 아니라, 방송 프로그램과 연관된 포탈 HTML 페이지 연결 정보, 썸네일(Thumbnail) 수신 정보, 동영상 미리보기(Preview Clip) 수신 정보, 확장된 전자 프로그램 가이드(Extended EPG) 수신 정보, 하이라이트(highlight) 수신 정보, 멀티뷰(Multiview) 수신 정보 및 연동 가능한 TDO의 수신 정보 중 적어도 하나를 포함할 수 있다. 링크 디스크립터는 이와 같은 수신 정보들을 NRT 서비스 또는 인터넷망을 통해 수신하기 위한 정보를 포함할 수 있다.
구체적으로, 수신기(300)는 선택된 가상 채널에 대응되는 이벤트 정보 테이블(EIT)을 획득하고, 획득한 이벤트 정보 테이블 중 선택된 방송 프로그램에 대응되는 이벤트 루프(event_id가 속한 for 구문 내)의 디스크립터 루프로부터 링크 디스크립터를 획득하며, 획득한 링크 디스크립터로부터 인터넷 주소를 추출하고, 추출된 인터넷 주소에 따라 인터넷 망에 접속하여 선택된 방송 프로그램과 연결된 서비스를 수신할 수 있다. 따라서, 방송 서비스 제공자는 실시간 방송을 통해 특정 방송 프로그램과 연결된 서비스를 제공할 수 있게 된다. 또한, 수신기(300)는 인터넷 주소 정보를 이용하여 인터넷망에 접속하고, 해당 방송 프로그램과 연결된 서비스를 인터넷망으로부터 수신할 수 있다.
도 63은 본 발명의 일 실시 예에 따른 이벤트 디스크립터(Event_descritor)의 신택스와 이벤트 디스크립터에 포함될 수 있는 필드들의 내용을 도시한 도면이다.
도 63에 도시된 바와 같이, 본 발명의 일 실시예에 따른 이벤트 디스크립터는 디스크립터 태그 필드(descriptor_tag), 디스크립터 길이 필드(descriptor_length) 및 이벤트 식별자 필드(ETM_id)를 포함한다.
도 64는 본 발명의 일 실시예에 따라 이벤트 디스크립터를 통하여 연동 프로그램을 식별하는 것을 설명하기 위한 도면이다.
예를 들어, 도 64에 도시된 바와 같이, 수신기(300)의 서비스 매니저(350)는 SMT을 통해 Service_id를 식별하고, NRT-IT를 통해 식별된 Service_id에 대응되는 NRT 서비스의 컨텐트 아이템을 수신하여 파싱할 수 있다.
그리고, 수신기(300)의 서비스 매니저(350)는 VCT로부터 source_id가 일치하는 가상 채널을 식별할 수 있으며, 해당 가상 채널의 EIT로부터 event_id가 일치하는 방송 프로그램의 이벤트 루프를 식별할 수 있다. 수신기(300)의 서비스 매니저(350)는 식별된 이벤트 루프로부터 NRT 서비스와 연관된 방송 프로그램 정보를 수신하여 사용자에게 제공할 수 있다. 방송 프로그램 정보는, 예를 들어 EIT의 이벤트 루프에 포함된 해당 방송 프로그램의 시작 시간, 확장된 텍스트 테이블 위치, 방영 시간, 제목 정보, 디스크립션 정보 중 적어도 하나를 포함할 수 있다. 따라서, 수신기(300)의 서비스 매니저(350)는 수신된 방송 프로그램 정보에 기초하여 사용자에게 수신한 NRT 서비스와 연관된 방송 프로그램에 대한 정보를 제공할 수 있게 된다.
도 65는 본 발명의 일 실시예에 따라 수신기(300)가 링크 디스크립터를 이용하여 방송 프로그램 또는 방송 채널과 연계된 컨텐츠를 수신하는 과정을 나타내는 흐름도이다.
도 65를 참조하면, 수신기(300)의 전원이 켜지면 PSIP/PSI 핸들러 또는 서비스 매니저를 통해 PSIP 테이블을 수신하여 VCT 또는 EIT를 수신한다(S7000). 수신기의 PSIP/PSI 핸들러 또는 서비스 매니저(350)는 PSIP 테이블의 각 테이블들을 파싱하고, 파싱된 테이블들로부터 VCT 또는 EIT를 획득할 수 있다.
그리고, 수신기(300)의 서비스 매니저(350)는 수신한 VCT 또는 EIT로부터 디스크립터 루프를 탐색한다(S7010). 이후, 수신기(300)의 서비스 매니저(350)는 탐색을 통해 링크 디스크립터가 존재하는지를 판단한다(S7020).
그리고, 링크 디스크립터가 존재한다고 판단된 경우, 수신기(300)의 서비스 매니저(350)는 링크 디스크립터로부터 링크 정보를 추출하고, 추출된 링크 정보에 기초하여 링크 디스크립터가 포함된 방송 프로그램 또는 방송 채널과 연관된 컨텐트의 목록을 디스플레이한다(S7030).
다음으로, 수신기(300)의 서비스 매니저(350)는 컨텐트가 선택되고, 수신 명령이 있는지 판단한다(S7040). 컨텐트는 사용자에 의해 선택될 수 있으며, 기 설정된 프로세스에 의해 선택될 수도 있다. 선택된 컨텐트는 상술한 바와 같은 방송 채널 또는 방송 프로그램 연관 컨텐트 목록에 디스플레이된 컨텐트 중 어느 하나일 수 있다. 또한, 사용자는 선택된 컨텐트에 대해 수신 명령을 입력할 수 있을뿐만 아니라 기 설정된 프로세스에 의해 선택된 컨텐트에 대한 수신 명령이 이루어질 수 있다.
이후, 수신기(300)의 서비스 매니저(350)는 선택된 컨텐트에 대해 수신 명령이 이루어진 경우, 해당 컨텐트를 바로 수신하거나, 수신 예약을 수행한다(S7050).
그리고, 수신 예약된 컨텐트가 NRT 서비스인 경우, 수신기(300)의 서비스 매니저(350)는 해당 NRT 서비스를 식별하기 위해 SMT를 수신한다(S7060). 그리고, 수신기(300)의 서비스 매니저(350)는 상술한 바와 같은 방법을 통해 FLUTE 세션에 접속하고(S7070), NRT 서비스를 구성하는 컨텐트 아이템 파일의 패킷들 중 수신 예약된 컨텐트에 대한 패킷을 식별한다(S7080). 그리고, 수신기(300)의 서비스 매니저(350)는 식별된 수신 예약된 컨텐트에 대한 패킷들을 FLUTE 또는 인터넷망을 통해 수신한다(S7090).
도 66은 본 발명의 일 실시예에 따라 수신기(300)가 이벤트 디스크립터를 이용하여 방송 프로그램과 연동된 컨텐트를 제공하는 과정을 나타내는 흐름도이다.
도 66을 참조한 본 발명의 일 실시예에서, 송신기(200)는 NRT 서비스에 연동되는 방송 프로그램 정보를 이벤트 디스크립터에 삽입하고, 이벤트 디스크립터를 NRT-IT의 컨텐트 루프(content loop)에 삽입하여 방송 채널 또는 NRT 서비스 시그널링 채널을 통해 수신기(300)로 전송할 수 있다.
이와 같이 이벤트 디스크립터를 포함하는 NRT-IT가 전송되면, 수신기(300)의 PSIP/PSI 핸들러 또는 서비스 매니저(350)는 PSIP테이블을 파싱하여 VCT와 EIT를 획득한다(S7100). 수신기(300)는 VCT 및 EIT를 통해 선택된 방송 채널과 방송 프로그램에 대한 정보를 사용자에게 제공할 수 있다.
그리고, 수신기(300)의 서비스 매니저(350)는 NRT 서비스 시그널링 채널 또는 인터넷망을 통해 NRT 서비스가 전송되는지 판단하여, NRT 서비스가 전송되는 경우 SMT와 NRT-IT를 수신한다(S7120).
이후, 수신기(300)의 서비스 매니저(350)는 NRT-IT의 컨텐트 루프를 탐색하여 각 디스크립터의 descriptor_tag를 파싱하여 컨텐트 루프에 포함된 디스크립터들을 식별한다(S7120). 그리고, 파싱된 디스크립터 중 이벤트 디스크립터가 존재하는지 판단한다(S7130).
이벤트 디스크립터가 존재하는 경우, 수신기(300)의 서비스 매니저(350)는 이벤트 디스크립터에 포함된 방송 채널 정보 또는 방송 프로그램 정보(예를 들어, source_id에 기초한 방송 채널 번호 또는 event_id에 기초한 방송 프로그램의 EPG정보 등)를 표시하고(S7140), 수신 가능한 NRT 서비스와 연동됨을 나타낼 수 있다.
이후, 수신기(300)의 서비스 매니저(350)는 방송 프로그램과 연동된 NRT 서비스의 컨텐트가 선택되고, 수신 명령이 있는지 판단한다(S7150). .
그리고, 수신기(300)의 서비스 매니저(350)는 선택된 컨텐트에 대해 수신 명령이 이루어진 경우, 선택된 컨텐트를 바로 수신하거나, 설정에 따라 수신 예약을 수행한다(S7160). 본 발명의 일 실시 예에 따라, 선택된 컨텐트는 NRT 서비스일 수 있다. 따라서, 수신기(300)의 서비스 매니저(350)는 NRT 서비스와 같은 선택된 컨텐트를 수신하기 위해 기 수신한 SMT와 NRT-IT에 기초하여 FLUTE 세션 또는 인터넷망에 접속한다(S7170).
그리고, 수신기(300)의 서비스 매니저(350)는 도 50에서와 같이 NRT 서비스를 구성하는 컨텐트 아이템 파일의 패킷들 중 수신 예약된 컨텐트에 대한 패킷을 식별한다(S7180). 그리고, 수신기(300)의 서비스 매니저(350)는 식별된 수신 예약된 컨텐트에 대한 패킷들을 FLUTE 또는 인터넷망을 통해 수신한다(S7190).
도 67은 서비스 레벨 디스크립터인 비실시간 서비스 디스크립터(NRT_service_descriptor)의 신택스를 설명하기 위한 도면이다.
도 67에 도시된 바와 같이, 서비스 레벨 디스크립터 중 비실시간 서비스 디스크립터 전송되는 비실시간 서비스에 대한 정보를 포함할 수 있다. 비실시간 서비스에 대한 정보는 자동 업데이트(Auto update) 여부, 컨텐트의 길이, 저장 예약 정보 또는 소비 모델(consumption_model) 정보를 포함할 수 있다.
특히, 박스(box) 표시된 소비 모델(consumption_model) 필드는 전송되는 비실시간 서비스의 서비스 제공 방법에 대한 정보를 포함할 수 있다. 따라서, 수신기(300)의 서비스 매니저(350)는 소비 모델 필드에 기초하여 각 비실시간 서비스에 따라 적절한 처리 방법을 판단하고, 판단된 방법에 따라 비실시간 서비스를 제공할 수 있다.
본 발명의 일 실시 예에서, 송신기(200)는 트리거 선언적 오브젝트에 적용 가능한 비실시간 서비스 제공 방법을 미리 설정하고, 트리거 선언적 오브젝트에 대응되도록 소비 모델 필드에 특정 값을 할당할 수 있다. 따라서, 송신기(200)는 상술한 소비 모델 필드에 트리거 선언적 오브젝트에 대응되는 값을 할당하여 전송할 수 있다.
그리고, 수신기(300)의 서비스 매니저(350)는 소비 모델 필드를 수신하여 트리거 선언적 오브젝트가 전송됨을 판단하고, 기 설정된 서비스 제공 방법에 따라 트리거 선언적 오브젝트를 수신하여 트리거 선언적 오브젝트 서비스를 제공할 수 있다.
도 68은 이와 같은 본 발명의 일 실시 예에 따라 비실시간 서비스 디스크립터에 포함되는 소비 모델(consumption_model) 필드의 각 값에 따른 의미를 나타낸다.
소비 모델 필드는 상술한 바와 같이 비실시간 서비스 디스크립터(NRT_service_descriptor)에 포함되며, 비실시간 서비스 디스크립터가 나타내는 비실시간 서비스가 어떤 방법의 소비 모델을 이용하는지를 나타내는 필드이다. 비실시간 서비스는 예를 들어, 브라우즈 및 다운로드(Browse&Download) 서비스, 포탈(Potal) 서비스 및 푸쉬(Push) 중 어느 하나의 소비 모델에 따라 제공될 수 있다. 또한, 비실시간 서비스는 본 발명의 일 실시예에 따른 TDO 소비 모델에 따라 제공될 수도 있다.
구체적으로, 소비 모델 필드가 TDO 소비 모델인 경우, 수신기(300)의 서비스 매니저(350)는 해당 비실시간 서비스(TDO)를 수신하고, 상술한 바와 같은 링크 디스크립터 또는 이벤트 디스크립터 중 적어도 하나를 이용하여 비실시간 서비스와 연계된 실시간 방송 채널 또는 프로그램 정보를 획득할 수 있다. 또한, 수신기(300)의 서비스 매니저(350)는 실시간 방송에 포함된 트리거를 수신하여 특정 시점에 TDO를 동작시키거나 컨텐트 아이템을 미리 다운로드 할 수도 있다.
또한, TDO 소비 모델의 경우, 각 컨텐트 아이템은 현재 선택된 비실시간 서비스 내에 나타나는 경우 바로 다운로드 될 수 있다. 각 컨텐트 아이템의 업데이트 버전이 현재 선택된 비실시간 서비스 내에 나타난 경우 각 컨텐트 아이템은 바로 업데이트 될 수 있다. 그리고, 각 컨텐트 아이템은 트리거에 의해 실행되거나 종료될 수 있다.
도 69는 본 발명의 일 실시 예에 따른 TDO 소비 모델에 의해 TDO가 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
먼저, 수신기(300)는 SMT를 수신하고(S8000), SMT의 서비스 레벨 디스크립터를 파싱한다(S8010). 수신기(300)는 서비스 매니저(350)를 이용하여 서비스 시그널링 채널을 통해 SMT를 수신할 수 있으며, 수신한 SMT로부터 각 비실시간 서비스 루프 내의 서비스 레벨 디스크립터 루프에서 비실시간 서비스 디스크립터를 포함하는 서비스 레벨 디스크립터들을 파싱할 수 있다.
그리고, 수신기(300)는 파싱된 각 서비스 레벨 디스크립터에 비실시간 서비스 디스크립터(NRT_service_descriptor)를 확인하고, 비실시간 서비스 디스크립터의 소비 모델 필드(Consumption_ model)의 값이 0x04, 즉 TDO 소비 모델인지를 판단한다(S8030). 그 값이 0x04가 아닌 경우, 수신기(300)는 다른 비실시간 서비스 소비 모델에 따른 동작을 수행한다.
그러나, 그 값이 0x04인 경우에는 수신기(300)는 TDO 소비 모델로 지정된 비실시간 서비스가 전송됨을 판단할 수 있다. 이 경우 수신기(300)는 TDO 자동 수신 설정되어 있는지를 판단한다(S8040). 수신기(300)는 자동 수신이 아닌 경우 TDO 서비스 및 TDO 서비스 내에 포함된 컨텐트 목록을 디스플레이하며, TDO 수신 선택 화면을 디스플레이한다(S8045). 그리고, 수신기(300)는 사용자의 선택에 따라 선택된 TDO 서비스를 수신한다(S8047).
한편, 자동 수신 설정된 경우, 수신기(300)는 사용자의 선택 없이 TDO를 수신한다(S8050).
그리고, 수신기(300)는 TDO를 수신한 후, 트리거가 수신되는지 판단한다(S8060).
한편, 수신기(300)는 서비스 매니저(350)를 통해 사용자가 선택한 비실시간 서비스를 저장부에 수신하고, 관리할 수 있다. 그러나, TDO 서비스의 경우, 실시간 방송과의 연동 수행되며 트리거에 의해 동작하므로, TDO 서비스의 저장 및 관리는 실시간 방송 서비스 제공자의 의도에 따라 이루어질 필요가 있다.
따라서, 본 발명의 일 실시 예에서는 TDO 서비스가 전송되는 TDO 소비 모델 방식의 경우, 수신기(300)는 수신기(300) 저장부의 일정 영역을 TDO 저장 영역으로 할당하고, 할당된 영역에 TDO 서비스를 수신하여 저장 및 관리할 수 있다. 또한, 송신기(200)에 의해 TDO 저장 영역이 지정되어 수신기(300)로 전송될 수 있다. 이 경우, 수신기(300)는 지정된 영역에 TDO 서비스를 수신 및 저장하고, 관리할 수 있다.
도 70은 이와 같이 수신기(300)가 TDO 소비 모델에 따라 TDO 저장 영역을 할당하여 관리하는 방법을 나타내는 흐름도이다.
도 70을 참조하면, 먼저 수신기(300)는 도 54에서의 S8000~S8020단계를 수행하여 전송되는 비실시간 서비스의 소비 모델을 판단한다. 그리고, 수신기(300)는 TDO 소비 모델 방식의 비실시간 서비스, 예를 들어 TDO 서비스가 전송되는지 여부를 Consumption model 필드에 기초하여 판단한다(S8110).
소비 모델 필드가 TDO 소비 모델을 나타내는 경우, 수신기(300)는 비실시간 서비스 디스크립터(NRT_service_descriptor)의 저장 예약 필드(storage_reservation)를 추출한다(S8130). 저장 예약 필드는 해당 TDO 서비스에 필수적으로 필요한 저장공간에 대응되는 값일 수 있다. 송신기(200)는 저장 예약 필드에 TDO 저장 영역을 위한 공간 값을 지정하여 전송할 수 있다.
그리고, 수신기(300)는 저장 예약 필드 값에 기초하여 TDO 서비스 수신 및 동작을 위한 저장 영역을 저장부에 할당한다(S8140).
이후, 수신기(300)는 TDO 서비스 저장 영역으로 할당된 영역에 TDO 서비스를 수신하고(S8150), 저장 및 관리한다.
이와 같이, 수신기(300)는 비실시간 서비스의 소비 모델 필드와 저장 예약 필드에 기초하여 TDO 서비스에 대한 저장 영역을 할당하고, 관리할 수 있다. 그러나, 상술한 방법은 본 발명의 일 실시 예이며, 소비 모델 필드와 저장 예약 필드의 각 값에 따른 저장 방법으로 제한되는 것은 아니다.
한편, TDO는 트리거 선언적 오브젝트를 제공하는 비실시간 서비스를 의미할 수 있으며, TDO 서비스를 구성하는 각각의 컨텐트 아이템들을 의미할 수 있다. 또한, 각 컨텐트 아이템들은 NRT-IT를 통해 시그널링되며, 수신기(300)는 NRT-IT를 통해 시그널링되는 데이터를 수신하여 TDO에 대한 정보를 파악할 수 있다. 그러나, NRT-IT에는 일반 비실시간 서비스를 위해 제공되는 정보 이외에 TDO를 위한 정보, 예를 들어 트리거 시간, 실행 종료 시간, 실행 우선 순위 및 추가 데이터 수신 경로 등의 정보들은 포함되지 않는다. 따라서, 수신기(300)가 TDO의 속성을 자세히 파악하고 원활히 동작하는 데 어려움이 있다. 특히, 수신기(300)가 저장 공간을 관리하거나, 복수의 TDO가 제공되는 경우의 TDO 서비스들을 관리하거나, TDO 서비스의 추가 데이터를 관리하는 데 있어서, TDO에 대한 정보가 부족한 문제가 있다.
따라서, 본 발명의 일 실시 예에서는 이와 같은 TDO의 구체적인 특성 정보들을 TDO 메타데이터에 포함하여 전송하는 방법 및 이에 따른 수신기(300)의 동작을 제안한다.
도 71은 본 발명의 일 실시 예에 따른 TDO 메타데이터 디스크립터를 도시한 도면이다.
도 71을 참조하면, TDO 메타데이터는 디스크립터 태그 필드(descriptor_tag), 디스크립터 길이 필드(descriptor_length), 활성 시작 스케쥴 시간 필드(scheduled_activation_start_time), 활성 종료 스케쥴 시간 필드(scheduled_activation_end_time), 우선 순위 필드(priority), 반복 활성화 플래그 필드(activation_repeat_flag) 및 반복 간격 필드(repeat_interval)를 포함한다.
활성 시작 스케쥴 시간 필드 및 활성 종료 스케쥴 시간 필드는 수신기(300)가 TDO를 실시간 방송과 정확하게 동기화하여 동작시키기 위해 사용될 수 있다. 또한, 수신기(300)는 이와 같은 활성 시작 및 종료 스케쥴 시간 필드에 기초하여 TDO를 선택적으로 다운로드 할 수 있으며, TDO의 다운로드 순서를 결정할 수 있다. 또한, 수신기(300)는 이와 같은 활성 시작 및 종료 스케쥴 시간 필드에 기초하여 TDO의 삭제 순서를 결정할 수 있다. 특히, 수신기(300)는 활성 시작 시간 필드의 값이 현재 시간과 가장 가까운 TDO(가장 먼저 활성될 TDO)를 식별하고, 식별된 TDO를 우선적으로 다운받아 저장할 수 있다. 또한, 수신기(300)는 저장 공간 부족시 활성 시작 시간 필드가 현재 시간에 대해 가장 먼 TDO를 우선적으로 삭제할 수도 있다.
수신기(300)는 각 TDO에 할당된 우선 순위 필드에 기초하여 복수의 TDO를 순차적으로 수신하거나 저장할 수 있다. 또한, 수신기(300)는 각 TDO에 할당된 우선 순위 필드에 기초하여 복수의 TDO중 적어도 하나를 실행할 수 있다.
그리고, 수신기(300)는 이와 같은 우선 순위 필드에 기초하여 TDO를 자동적으로 실행할 수도 있다. 예를 들어, 수신기(300)는 특정 시간 범위 내에서 실행하여야 할 복수의 TDO가 존재하는 경우, 각 TDO에 대응되는 우선 순위 필드에 기초하여 우선 순위 필드가 높거나 낮은 TDO를 선택하여 자동적으로 실행할 수 있다.
반복 간격 필드는 예를 들어, 표 4와 같이 각 값에 따른 TDO의 실행 주기를 의미할 수 있다.
Figure 112014031286144-pct00004
이와 같이, 송신기(200)는 TDO 메타데이터 디스크립터를 NRT서비스 시그널링 채널 또는 인터넷망을 통해 전송할 수 있다. 또한, 송신기(200)는 TDO 메타데이터 디스크립터를 NRT-IT의 컨텐트 레벨 디스크립터(content_level_descriptor) 루프 내에 삽입하여 해당 TDO에 대한 추가 정보를 전송할 수도 있다.
한편, 수신기(300)는 TDO 메타데이터를 NRT 서비스 시그널링 채널 또는 인터넷망을 통해 수신하여 TDO에 대한 정보를 획득할 수 있다.
도 72는 이와 같은 본 발명의 일 실시 예에 따른 수신기(300)가 TDO 메타데이터를 수신하는 과정을 나타내는 흐름도이다.
도 72를 참조하면, 수신기(300)는 서비스 시그널링 채널을 통해 전송되는 SMT 및 NRT-IT를 수신한다(S8200).
일 실시 예에서, 송신기(200)는 NRT-IT의 컨텐트 레벨 디스크립터 루프 내에 TDO 메타데이터 디스크립터를 포함하여 전송할 수 있다. 따라서, 수신기(300)는 수신한 NRT-IT의 컨텐트 레벨 디스크립터 루프를 탐색하고(S8210), TDO 메타데이터 디스크립터가 존재하는지 판단한다(S8220).
그리고, TDO 메타데이터 디스크립터가 존재하는 경우, 수신기(300)는 TDO 메타데이터 디스크립터로부터 TDO 메타데이터를 추출한다(S8230).
이후, 수신기(300)는 추출한 TDO 메타데이터로부터 필요한 정보를 획득하고, 획득한 정보에 기초하여 TDO의 관리를 수행한다(S8240).
도 73은 본 발명의 일 실시 예에 따른 수신기(300)가 TDO 메타데이터에 포함된 시간 정보에 따라 TDO를 관리하는 방법을 나타내는 흐름도이다.
도 73을 참조하면, 수신기(300)는 먼저 저장부에 TDO를 위한 저장 공간이 부족한지 판단한다(S8300).
그리고, 저장 공간이 부족하다고 판단된 경우, 수신기(300)는 각 TDO에 대한 TDO 메타데이터로부터 시간 정보를 추출한다(S8310).
이후, 수신기(300)는 각 TDO에 대한 활성 시작 스케쥴 시간에 기초하여 활성 시작 스케쥴 시간 필드의 값이 가장 큰 TDO를 우선적으로 삭제한다(S8320).
그리고, 수신기(300)는 각 TDO 에 대한 활성 시작 스케쥴 시간에 기초하여 활성 시작 스케쥴 시간 필드의 값이 가장 작은 TDO를 우선적으로 수신한다(S8330).
한편, TDO 메타데이터에 포함된 시간 정보는 활성 시작 스케쥴 시간 필드 및 활성 종료 스케쥴 시간 필드일 수 있을뿐만 아니라, TDO의 활성 시간 정보를 제공하기 위한 시간 슬롯 디스크립터를 포함할 수 있다. 시간 슬롯 디스크립터는 TDO가 수행되는 시간을 하나의 슬롯으로 하여 슬롯 시작 시간, 슬롯 길이, 반복 정보를 포함할 수 있다. 따라서, 수신기(300)는 TDO가 활성화되는 시간 슬롯을 추출하여 TDO의 반복적 실행 및 종료 시간을 예측할 수 있게 된다.
도 74는 본 발명의 다른 일 실시 예에 따라 수신기(300)가 TDO 메타데이터에 포함된 시간 정보 및 우선 순위 정보에 기초하여 TDO를 관리하는 방법을 나타낸 흐름도이다.
도 74를 참조하면, 먼저 수신기(300)는 TDO 메타데이터를 수신하고, 특정 시점에 수행 가능한 TDO가 복수개 존재하는지 판단한다(S8400).
그리고, 수신기(300)는 복수개의 TDO가 존재한다고 판단되는 경우, TDO 메타데이터로부터 각 TDO에 대한 우선 순위 값들을 추출한다(S8410).
이후, 수신기(300)는 추출된 우선 순위에 기초하여 특정 시점에 수행 가능한 복수개의 TDO 목록을 사용자에게 제공한다(S8420).
이후, 사용자에 의해 TDO가 선택되면, 수신기(300)는 선택된 TDO를 수신하고, 특정 시점, 예를 들어 트리거 시간에 선택된 TDO에 대해 트리거 액션을 수행한다.
한편, 일 실시 예에서, 송신기(200)는 인터넷 위치 디스크립터(internet location descriptor)를 이용하여 방송망 및 IP 망을 통해 전송되는 컨텐트 아이템 파일들의 URL을 지정할 수도 있다. 이 인터넷 위치 디스크립터는 NRT-IT의 컨텐트 레벨 디스크립터 루프에 포함될 수 있다. 따라서, 송신기(200)는 각 파일이 위치한 인터넷상의 URL 정보를 인터넷 위치 디스크립터에 포함하여 전송할 수 있다.
이러한 인터넷 위치 디스크립터의 한 예를 도 75를 참고하여 설명한다.
도 75은 본 발명의 다른 일 실시예에 따른 인터넷 위치 디스크립터의 신택스를 보여준다.
도 75에 도시된 인터넷 위치 디스크립터를 이용하여 컨텐트 아이템을 구성하는 파일들의 URL을 전송하는 경우, 각각의 파일들에 대응되는 URL을 지정하여 인터넷 위치 디스크립터에 포함하여야 한다. 그러나, 파일의 개수가 증가하는 경우에는 지정해야 하는 URL의 개수가 증가하여 전송 효율이 감소할 수 있다. 또한, URL의 개수가 증가함에 따라 그 관리가 복잡하고 어려워질 수 있다.
따라서, 본 발명의 일 실시예에 따른 송신기(200)는 각 파일에 대응되는 URL들의 목록 정보를 예를 들어, FLUTE FDT(File description table)에 포함시키고, FDT를 FLUTE 세션이 아닌 인터넷 망을 통해 전송할 수 있다. 송신기(200)는 상술한 인터넷 위치 디스크립터를 이용하여 URL들의 목록 정보 또는 FDT를 전송할 수 있을 뿐만 아니라, 상술한 링크 디스크립터를 이용하여 URL들의 목록 정보 또는 FDT를 전송할 수도 있다.
수신기(300)는 링크 디스크립터 또는 인터넷 위치 디스크립터를 통해 FDT가 위치한 URL 정보를 수신하고, 수신한 URL 정보에 기초하여 인터넷 망을 통해 FDT를 수신할 수 있다. 그리고, 수신기(300)는 FDT에 포함된 각 파일들의 URL 정보에 기초하여 컨텐트 아이템을 구성하는 파일들을 수신할 수 있게 된다. 이와 같이 FDT의 URL을 전송함으로써, 복수개의 파일들에 대한 URL을 각각 지정하여 전송할 필요가 없게 되며, 따라서 전송 효율을 증가시킬 수 있게 된다.
도 76은 이와 같은 본 발명의 일 실시 예에 따라 FDT를 인터넷망을 통해 전송하는 경우, 수신기(300)의 동작을 나타낸 흐름도이다.
도 76을 참조하면, 먼저 수신기(300)는 서비스 매니저(350)를 통해 SMT 및 NRT-IT를 수신한다(S8500).
그리고, 수신기(300)의 서비스 매니저(350)는 수신할 NRT 서비스 또는 컨텐트 아이템을 선택한다(S8510). 수신기(300)의 서비스 매니저(350)는 기 설정된 조건에 따라 수신할 NRT 서비스를 선택할 수 있다. 또한, 수신기(300)의 서비스 매니저(350)는 사용자의 입력에 기초하여 수신할 NRT 서비스를 선택할 수도 있다.
이후, 수신기(300)의 서비스 매니저(350)는 선택된 NRT 서비스의 컨텐트 아이템을 구성하는 각 파일들을 인터넷을 통해 수신할지 여부를 판단한다(S8520). 수신기(300)의 서비스 매니저(350)는 인터넷망의 연결 상태에 기초하여 인터넷을 통한 수신 여부를 판단할 수 있다. 또한, 수신기(300)의 서비스 매니저(350)는 사용자의 설정에 따라 인터넷을 통한 수신 여부를 판단할 수 있다.
그리고, 인터넷을 통해 수신하지 않는다고 판단된 경우 수신기(300)의 서비스 매니저(350)는, NRT 서비스 시그널링 채널을 통해 FLUTE 세션에 접속하고, 선택된 NRT 서비스의 컨텐트 아이템을 구성하는 각 파일들을 수신한다(S8525). FLUTE 세션을 통해 NRT 서비스를 수신하는 과정은 상술한 바와 같다.
그러나, 인터넷을 통해 수신할 것으로 판단된 경우, 수신기(300)의 서비스 매니저(350)는 인터넷을 통해 FDT를 수신한다(S8530). 수신기(300)의 서비스 매니저(350)는 링크 디스크립터 또는 인터넷 위치 디스크립터 중 어느 하나를 통해 FDT의 URL 정보를 수신하고, 수신된 FDT의 URL 정보에 기초하여 인터넷망에 위치한 FDT를 수신할 수 있다.
여기서, FDT는 FLUTE 세션 내 컨텐트 아이템을 구성하는 각 파일들의 목록 인덱스를 포함할 수 있다. 이와 같은 FDT를 인터넷망을 통해 별도로 전송하기 위해 MIME 타입 지정이 필요할 수 있다. MIME 타입은 인터넷망을 통해 전송되는 컨텐트의 유형을 나타내기 위한 특정 형식을 의미한다. 다양한 파일 포맷이 MIME 타입으로 등록되어 있으며, HTTP, SIP와 같은 인터넷 프로토콜에서 사용되고 있다. MIME 타입 등록은 IANA에서 관리하고 있다. MIME는 트리 구조의 메시지 형식을 정의할 수 있다. 일 실시 예에서, FDT에 대응되는 MIME 타입은 application/nrt-flute-fdt+xml 과 같은 형식으로 정의될 수 있다. 또한 수신기(300)는 상술한 바와 같은 MIME 타입을 갖는 URL을 파싱하고, 이에 기초하여 FDT를 수신할 수 있다.
FDT를 수신한 경우, 수신기(300)의 서비스 매니저(350)는 FDT로부터 각 컨텐트 아이템을 구성하는 파일들의 URL 정보를 획득한다(S8540). 그리고, 획득한 URL 정보에 기초하여 인터넷을 통해 각 파일들을 수신한다(S8550). 수신기(300)의 서비스 매니저(350)는 수신한 파일들을 FDT의 content linkage 필드에 기초하여 연결함으로써, 컨텐트 아이템을 획득할 수 있다.
그리고, 수신기(300)의 서비스 매니저(350)는 수신한 컨텐트 아이템을 통해 NRT 서비스를 제공한다(S8560).
이와 같이 수신기(300)는 인터넷을 통해 FDT를 수신함으로써, 각 파일들의 URL정보를 각각 수신할 필요가 없게 되고, 인터넷 망을 통한 NRT 서비스의 효율적인 수신이 가능하게 된다. 또한, 일 실시 예에서는 파일 목록(인덱스)을 포함하는 임의의 파일을 FDT 대신 전송할 수도 있다.
도 77은 본 발명의 일 실시 예에 따라 링크 디스크립터를 통해 FDT의 URL이 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
일 실시 예에서, 송신기(200)는 상술한 링크 디스크립터를 EIT, VCT 또는 PMT 중 어느 하나에 포함하여 전송할 수 있으며, 링크 디스크립터는 FDT를 획득할 수 있는 URL 정보를 포함할 수 있다.
먼저, 수신기(300)의 전원이 켜지면, 방송 채널 또는 방송 프로그램이 선택된다(S8600).
그리고, 수신기(300)는 서비스 매니저(350) 또는 PSIP/PSI 핸들러를 통해 EIT, VCT, 또는 PMT 중 적어도 하나를 수신하고(S8610), 링크 디스크립터를 추출하며(S8620), 링크 디스크립터로부터 FDT의 URL 정보를 획득한다(S8630).
이후, 수신기(300)의 서비스 매니저(350)는 획득한 FDT의 URL 정보를 이용하여 FDT 파일을 인터넷을 통해 수신한다(S8640).
그리고, 수신기(300)의 서비스 매니저(350)는 FDT에 포함된 각 파일들의 URL 정보를 획득한다(S8650). FDT에 포함된 각 파일들의 URL 정보는 NRT 서비스의 컨텐트 아이템을 구성하는 파일들의 인터넷상의 위치 정보를 포함할 수 있다.
이후, 수신기(300)의 서비스 매니저(350)는 획득한 URL 정보에 따라 인터넷을 통해 지정된 파일들을 수신하고(S8660), 수신한 파일들을 컨텐트 아이템으로 저장한다(S8670)..
이와 같은 과정을 통해, 수신기(300)는 NRT 서비스의 컨텐트 아이템을 구성하는 파일 목록을 포함하는 FDT를 인터넷망을 통해 수신할 수 있다. 또한, FDT에 기초하여 인터넷을 통해 각 파일들을 수신할 수 있게 되므로 효율적인 전송이 가능하게 된다.
도 78은 본 발명의 다른 일 실시 예에 따라 NRT-IT를 통해 FDT의 URL이 전송되는 경우, 수신기(300)의 동작을 나타내는 흐름도이다.
일 실시 예에서, 송신기(200)는 상술한 인터넷 위치 디스크립터를 NRT-IT의 컨텐트 디스크립터 루프에 포함하여 전송할 수 있으며, 인터넷 위치 디스크립터는 FDT를 획득할 수 있는 URL 정보를 포함할 수 있다.
먼저, 수신기(300)는 서비스 매니저(350)를 통해 NRT-IT를 수신한다(S8700).
그리고, 수신기(300)는 서비스 매니저(350) 통해 NRT-IT의 컨텐트 디스크립터 루프(content_descriptor())로부터 인터넷 위치 디스크립터를 추출하고(S8610), 인터넷 위치 디스크립터로부터 FDT의 URL 정보를 획득하며(S8630), FDT의 URL 정보를 이용하여 인터넷망을 통해 FDT를 수신하고(S8740), FDT로부터 각 컨텐트 아이템을 구성한는 파일의 URL 정보를 획득한다(S8750).
여기서, 수신기(300)는 인터넷 위치 디스크립터를 통해 FDT의 URL정보를 수신할 수 있을 뿐만 아니라, SMT와 NRT-IT를 통해 FLUTE 세션에 접속하여 FDT를 수신할 수도 있다. 또한, FDT에 포함된 각 파일의 URL은 인터넷망의 주소를 나타낼 수 있으며, FLUTE 세션 내의 파일 위치를 나타낼 수도 있다. 따라서, 수신기(300)는 FDT로부터 각 파일의 URL형식을 판단하고, 각 파일들을 판단된 형식에 따라 FLUTE 세션 또는 인터넷망중 어느 하나를 통해 선택적으로 수신할 수 있다.
또한, 수신기(300)는 인터넷망을 통해 FDT를 수신하고, 수신한 FDT에 기초하여 FLUTE 세션에 접속하여 컨텐트 아이템을 구성하는 파일들을 수신할 수도 있다.
한편, 송신기(200)는 각 파일이 FLUTE 세션과 인터넷 망으로 모두 전송 가능한 경우, 전송 우선 경로를 지정할 수 있다. 전송 우선 경로는 xml 스키마를 이용하여 복합형 파일 타입(File type: complex type)의 속성으로 지정될 수 있다. 예를 들어, <xs:attribute name="Internet_preferred" type="s:boolean" use="optional" default="false"/> 와 같이 지정될 수 있다. 여기서, internet_preferred은 인터넷망을 통한 우선 전송을 의미하고, type 값이 true인 경우, 인터넷망을 통해 우선 전송됨을 의미한다. 또한 기본값(default)은 false로 정의되어 기본적으로 FLUTE 세션을 통해 우선 전송됨을 나타낼 수 있다. 따라서, 수신기(300)는 각 파일 타입의 속성을 확인하여, 각 파일들을 인터넷 망 또는 FLUTE 세션 중 어느 하나를 통해 선택적으로 수신할 수 있게 된다.
이후, 수신기(300)의 서비스 매니저(350)는 이와 같이 획득한 파일들의 URL 정보에 따라 FLUTE 세션 또는 인터넷망으로부터 지정된 파일들을 수신하고(S8760), 수신한 파일들을 컨텐트 아이템으로 저장한다(S8670).
한편, 서비스 제공자는 비실시간 서비스에 대응되는 소비 모델을 결정하고, 이에 대응되는 소비 모델 필드 값을 비실시간 서비스에 할당하여 전송할 수 있다. 상술한 소비 모델들의 경우, 수신기(300)는 하나의 컨텐트 아이템에 기초하여 비실시간 서비스를 제공할 수 있다. 그러나, 하나의 컨텐트 아이템으로는 실시간 방송에 연계되는 유저 인터페이스를 생성하거나, 복잡하고 다양해지고 있는 비실시간 서비스를 제공하기 어려운 문제점이 있다.
따라서, 본 발명의 실시 예에서, 비실시간 서비스 제공자는 송신기(300)를 통하여 복수의 컨텐트 아이템을 제공하되, 비실시간 서비스 제공자는 하나의 컨텐트 아이템이 다른 컨텐트 아이템의 동작을 제어할 수 있도록 설정할 수 있다. 수신기(300)는 이를 수신하고, 복수의 컨텐트 아이템이 제공되는 소비 모델을 식별하여 복잡하고 다양한 비실시간 서비스를 사용자에게 제공할 수 있다. 이와 같은 소비 모델을 이용하여, 비실시간 서비스 제공자는 비실시간 서비스(NDO 또는 TDO)에 대한 상호 작용이 가능한 유저 인터페이스를 생성하고, 전송할 수 있다. 수신기(300)는 비실시간 서비스에 포함된 복수의 컨텐트 아이템에 기초하여 사용자와 상호 작용 가능한 시감각적인(look and feel) 유저 인터페이스를 생성하고, 사용자에게 제공할 수 있다. 이를 위한 컨텐트 아이템을 엔트리 컨텐트 아이템이라고 할 수 있으며, 이를 위한 소비 모델로 스크립티드 소비 모델이 사용될 수 있다.
도 79는 엔트리 컨텐트 아이템을 포함하는 비실시간 서비스를 개념적으로 나타낸 도면이다.
도 79를 참조하면, 비실시간 서비스는 컨텐트 아이템 0, 컨텐트 아이템 1, 컨텐트 아이템 3과 같은 복수의 컨텐트 아이템들을 포함할 수 있다. 그리고, 서비스 제공자는 송신기(200)를 통해 엔트리 컨텐트 아이템 또는 엔트리 파일을 각각 지정할 수 있다. 도 79에서는 엔트리 컨텐트 아이템은 컨텐트 아이템 0으로 지정되어 있으며, 엔트리 파일은 파일 0과 파일 5에 지정되어 있다.
수신기(300)는 도 79와 같은 비실시간 서비스를 수신하고, 사용자가 선택한 경우, 가장 먼저 엔트리 컨텐트 아이템인 컨텐트 아이템 0을 실행할 수 있다. 수신기(300)는 컨텐트 아이템 0을 실행하는 경우, 가장 먼저 엔트리 파일인 파일 0을 실행할 수 있다. 여기서, 엔트리 컨텐트 아이템은 다른 컨텐트 아이템을 관리할 수 있는 기능을 포함할 수 있다. 따라서, 수신기(300)는 컨텐트 아이템 0의 동작에 의해 컨텐트 아이템 1 및 컨텐트 아이템 3을 표시할 수 있으며, 컨텐트 아이템 0은 사용자의 선택에 따라 컨텐트 아이템 1 또는 컨텐트 아이템 3 중 적어도 하나를 실행하거나 종료할 수 있다. 한편, 컨텐트 아이템 1이 실행되는 경우에는 엔트리 파일인 파일 5가 먼저 실행될 수 있다.
도 80 내지 도 81은 엔트리 컨텐트 아이템에 대한 정보를 전송하기 위한 비실시간 서비스 정보 테이블을 나타내는 도면이다.
도 80 내지 도 81에 도시된 비실시간 서비스 정보 테이블(NRT-IT) 또는 NCT는 서비스 시그널링 데이터에 포함되며, 송신기(200)는 이와 같은 서비스 시그널링 데이터에 엔트리 컨텐트 아이템에 대한 정보를 포함하여 전송할 수 있다.
상술한 바와 같이 비실시간 서비스 정보 테이블(NRT-IT)은 복수의 컨텐트 아이템들에 대한 개별 정보를 포함할 수 있다. 복수의 컨텐트 아이템들 각각의 정보는 for (j=0; j< num_content_items_in_section; j++) 로 시작하는 컨텐트 아이템 루프에 포함될 수 있다. 그리고, 각 컨텐트 아이템은 content linkage 필드에 의해 식별되는 각각의 컨텐트 아이템 루프에 대응될 수 있다. 따라서, 수신기(200)는 컨텐트 아이템 루프를 파싱하여 각 컨텐트 아이템에 대응되는 no_entry_flag 필드를 획득할 수 있다. 도 80 내지 도 81에서 다른 필드에 대한 설명은 도 16에서와 동일 또는 유사하므로 생략하도록 한다.
no_entry_flag 필드는, 엔트리 컨텐트 아이템인지를 나타내는 1비트의 수일 수 있다. 이 필드가 0인 경우, 이 필드가 속한 컨텐트 아이템 루프에 대응되는 컨텐트 아이템은 서비스 식별자(service_id)에 의해 식별된 서비스의 엔트리 컨텐트 아이템일 수 있다. 그리고, 이 필드가 1인 경우, 이 필드이 필드가 속한 컨텐트 아이템 루프에 대응되는 컨텐트 아이템은 상술한 서비스의 엔트리 컨텐트 아이템이 아닐 수 있다.
도 82는 본 발명의 일 실시 예에 따라 엔트리 컨텐트 아이템이 전송되는 경우의 수신기(300)의 동작 방법을 설명하기 위한 도면이다.
도 82를 참조하면, 수신기(300)는 먼저, 서비스 시그널링 데이터로부터 서비스 맵 테이블(SMT)과, 비실시간 서비스 정보 테이블(NRT-IT)를 수신하고(S8800), SMT로부터 서비스 레벨 디스크립터 루프를 파싱하고, 서비스 레벨 디스크립터 루프에서 비실시간 서비스 정보 디스크립터(NRT_service_info_descriptor)를 파싱한다(S8810).
그리고, 수신기(300)는 파싱된 비실시간 서비스 정보 디스크립터(NRT service info descriptor)에 기초하여 전송되는 비실시간 서비스에 대한 정보, 예를 들어 어플리케이션 타입, 서비스 카테고리, 서비스의 용량, 비디오 또는 오디오 코덱 정보 중 적어도 하나를 획득하여 서비스 가이드를 생성하며, 이를 디스플레이한다(S8820).
이후, 수신기(300)는 비실시간 서비스에 대한 서비스 수신이 선택되는지 판단한다(S8830).
한편, 비실시간 서비스에 대해 서비스 수신이 선택된 경우, 수신기(300)는 비실시간 서비스 정보 테이블(NRT-IT)로부터 수신할 서비스가 포함하는 컨텐트 아이템들의 수신 정보를 획득한다(S8840).
그리고 수신기(300)는 획득한 컨텐트 아이템 수신 정보에 기초하여 송신기(200)에서 전송되는 비실시간 서비스의 컨텐트 아이템들을 수신한다(S8850). 수신기(300)의 서비스 매니저(350)는 상술한 바와 같이, 획득한 service_id 필드와 content_linkage 필드에 기초하여 FLUTE 세션에 접속하여 컨텐트 아이템들을 구성하는 파일들을 수신할 수 있다.
이후, 수신기(300)는 수신한 비실시간 서비스에 대한 실행 명령이 있는지 판단한다(S8860). 수신기(300)의 서비스 매니저(350)는 비실시간 서비스의 컨텐트 아이템을 수신 완료한 경우, 사용자의 실행 명령이 있는지 판단할 수 있다. 또한, 서비스 매니저(350)는 사용자 실행 명령 없이도 자동적으로 수신한 비실시간 서비스를 실행할 수도 있다.
비실시간 서비스를 실행하는 경우, 먼저 수신기(300)는 소비 모델이 스크립티드인지를 판단한다(S8870). 스크립티드 소비 모델이 아닌 경우에는 수신기(300)는 다른 소비 모델에 따른 다른 방식으로 동작하여 서비스를 제공할 수 있다(S8890).
그러나, 소비 모델 필드가 스크립티드 소비 모델로 지정된 값과 일치하는 경우, 수신기(300)는 수신한 컨텐트 아이템들 중 엔트리 컨텐트 아이템을 검색한다(S8875).
이후, 수신기(300)는 엔트리 컨텐트 아이템이 검색되면 엔트리 컨텐트 아이템에 포함된 파일들 중 엔트리 파일을 우선적으로 실행한다(S8880). 수신기(300)는 엔트리 파일이 존재하지 않는 경우 파일 순서 또는 기 설정된 순서에 따라 파일을 실행할 수도 있다.
그리고, 수신기(300)는 실행되는 파일에 의해 동작하고, 이에 따라 비실시간 서비스를 사용자에게 제공한다(S8885). 수신기(300)는 엔트리 컨텐트 아이템에 포함된 상호 작용 가능한 인터페이스를 이용하여 비실시간 서비스를 제공할 수 있다. 또한, 수신기(300)는 엔트리 컨텐트 아이템에 포함된 상호 작용 가능한 인터페이스에 대한 사용자 입력에 따라 다른 컨텐트 아이템을 실행하거나 관리할 수 있다.
이와 같이 수신기(300)는 엔트리 컨텐트 아이템을 먼저 실행하여 사용자에게 상호 작용 가능한 인터페이스를 제공할 수 있다. 상호 작용 가능한 인터페이스는, 시감각적인 인터페이스를 포함할 수 있으며, 사용자 편의를 위한 그래픽 유저 인터페이스에 기초하여 구성될 수 있다. 또한, 상호 작용 가능한 인터페이스는 비실시간 서비스의 실행, 종료, 저장 또는 삭제 등의 관리 메뉴를 포함할 수 있다.
본 발명의 일 실시 예에서, 송신기(200)는 동일한 비실시간 서비스에 대응하여 복수의 비실시간 서비스 오브젝트를 생성하고, 생성된 비실시간 서비스 오브젝트들에 서로 다른 소비 모델 필드 값을 할당할 수 있다. 송신기(200)는 소비 모델 필드 값들의 할당 정보를 상술한 비실시간 서비스 테이블에 포함하여 전송할 수 있다.
도 83은 이와 같은 본 발명의 일 실시 예에 따라 전송되는 복수의 비실시간 서비스 오브젝트를 개념적으로 나타낸 도면이다.
도 83에 도시된 바와 같이, 하나의 가상 채널을 통해 전송되는 비실시간 서비스는 비실시간 서비스 오브젝트 A 및 비실시간 서비스 오브젝트 B를 포함할 수 있다. 그리고, A와 B는 동일한 비실시간 서비스를 제공할 수 있다. 그러나, 비실시간 서비스 오브젝트 A는 브라우즈 및 다운로드 소비 모델로 지정될 수 있으며, 비실시간 서비스 오브젝트 B는 스크립티드 소비 모델로 지정될 수 있다.
여기서, 엔트리 컨텐트 아이템은 다른 비실시간 서비스에 포함된 컨텐트 아이템들을 실행하기 위하여 비실시간 서비스 정보 테이블(NRT-IT) 또는 서비스 맵 테이블(SMT)을 참조할 수 있다. 비실시간 서비스 정보 테이블 또는 서비스 맵 테이블은 각 비실시간 서비스 사이의 관계 정보 및 이에 따른 컨텐트 아이템들에 대한 정보를 포함할 수 있다. 예를 들어, 비실시간 서비스 정보 테이블은 비실시간 서비스 A와 비실시간 서비스 B는 동일한 컨텐트 아이템을 이용하여 서비스를 제공하고 있다는 관계 정보 또는 레퍼런스 정보를 포함할 수 있다.
일 실시 예에서, 비실시간 서비스 A와 비실시간 서비스 B는 동일한 컨텐트 아이템을 이용하여 서비스를 제공할 수 있으나, 비실시간 서비스 A와 비실시간 서비스 B는 서로 다른 비실시간 서비스 오브젝트 또는 컨텐트 아이템을 포함할 수도 있음은 물론이다.
도 84는 본 발명의 일 실시 예에 따른 서비스 맵 테이블에 포함된 비실시간 서비스 디스크립터의 신택스를 도시한 도면이다.
상술한 관계 정보는 서비스 맵 테이블의 서비스 디스크립터 루프 내의 비실시간 서비스 디스크립터에 포함될 수 있다. 일 실시 예에서, 동일한 컨텐트 아이템을 이용하여 서비스를 제공하나, 소비 모델 필드 값이 다른 비실시간 서비스들을 동일 서비스 또는 동등 서비스라고 할 수 있다. 이와 같은 동등 서비스들에 대한 관계 정보는 도 69에 도시된 바와 같이, 동등 서비스 부존재(equivalent_service_not_present) 필드, 동등 서비스 개수(num_equivalent_services) 필드 및 동등 서비스 식별자(equivalent_service_id) 필드를 포함할 수 있다.
도 85 내지 도 86은 본 발명의 다른 일 실시 예에 따른 다른 비실시간 정보 테이블(NRT_Information_table, NRT-IT)의 신택스를 설명하기 위한 도면이다. 도 85 내지 도 86의 NRT-IT 테이블의 다른 필드에 대한 설명은 앞서 설명한 바와 같으므로 생략하기로 한다.
도 80 내지 도 86에 도시된 바와 같이, 본 발명의 다른 일 실시 예에 따른 비실시간 정보 테이블은 현재 서비스에서 사용 가능(available_on_current_service) 필드를 더 포함할 수 있다. 이 필드는 동등 서비스가 전송되는 경우, 다른 비실시간 서비스에서 전송되는 컨텐트 아이템이 존재하는 지를 나타낼 수 있다. 또한, 이 필드는, 동등 서비스가 존재하지 않는 경우에도, 수신기(300)가 엔트리 컨텐트 아이템을 통해 다른 비실시간 서비스의 컨텐트 아이템을 수신하거나 실행하기 위하여 다른 비실시간 서비스로 현재 실행된 비실시간 서비스와 연관된 컨텐트 아이템이 전송되고 있는지를 나타낼 수 있다.
이와 같은 현재 서비스에서 사용 가능(available_on_current_service) 필드는, 상술한 수신기(300)가 현재 전송되는 비실시간 서비스에 연관된 다른 비실시간 서비스에서 전송되는 컨텐트 아이템이 있는지를 판단하는 데 사용될 수 있다.
도 87은 본 발명의 다른 일 실시 예에 따른 다른 비실시간 위치 디스크립터(Other_NRT_location_descriptor)의 신택스를 설명하기 위한 도면이다.
도 87을 참조하면, 다른 비실시간 위치 디스크립터는 디스크립터 태그(descriptor_tag) 필드, 디스크립터 길이(descriptor_length) 필드, 다른 비실시간 서비스 위치 개수(num_other_NRT_locations) 필드 및 복수의 다른 비실시간 서비스 식별자(other_service_id) 필드를 포함한다.
수신기(300)는 NRT-IT에 기초하여 다른 비실시간 서비스를 통해 컨텐트 아이템이 전송되는지를 판단하고, 이와 같은 비실시간 서비스 위치 디스크립터에 기초하여 컨텐트 아이템이 전송되는 다른 비실시간 서비스의 식별자를 획득할 수 있다.
도 88은 본 발명의 일 실시 예에 따른 방송 서비스 수신 방법을 설명하기 위한 흐름도이다.
도 88을 참조하면, 본 발명의 일 실시 예에 따른 수신기(300)는 상술한 바와 같이 서비스 시그널링 데이터로부터 서비스 맵 테이블(SMT)과, 비실시간 서비스 정보 테이블(NRT-IT)를 수신하고(S8900), SMT로부터 서비스 레벨 디스크립터 루프를 파싱하고, 서비스 레벨 디스크립터 루프에서 비실시간 서비스 정보 디스크립터(NRT_service_info_descriptor)를 파싱하며(S8910), 파싱된 비실시간 서비스 정보 디스크립터(NRT service info descriptor)에 기초하여 서비스 가이드를 생성하며, 이를 디스플레이하고(S8920), 비실시간 서비스에 대한 서비스 수신이 선택되는지 판단한다(S8930). 상술한 단계들은 수신기(300)의 서비스 매니저(350)에 의해 이루어 질 수 있다.
비실시간 서비스에 대해 서비스 수신이 선택된 경우, 수신기(300)는 비실시간 서비스 정보 테이블(NRT-IT)로부터 수신할 서비스가 포함하는 컨텐트 아이템들의 수신 정보를 획득한다(S8940). 컨텐트 아이템들의 수신 정보는 컨텐트 아이템의 식별자(content_linkage)와 각 컨텐트 아이템이 속한 비실시간 서비스의 서비스 식별자(service_id)를 포함할 수 있다.
그리고, 수신기(300)는 수신 정보를 이용하여 다른 비실시간 서비스를 통해 컨텐트 아이템이 제공되는지를 먼저 판단한다(S8950). 여기서, 컨텐트 아이템의 수신 정보는 현재 선택된 서비스를 통해 컨텐트 아이템이 전송되고 있는지 또는 다른 비실시간 서비스를 통해 컨텐트 아이템이 전송되고 있는지를 나타내는 관계 정보를 포함할 수 있다. 예를 들어, 상술한 바와 같은 available_on_current_service 필드를 포함할 수 있다. 또한, 컨텐트 아이템의 수신 정보는 다른 비실시간 서비스를 통해 컨텐트 아이템이 전송되는 경우, 이를 수신하기 위한 다른 비실시간 서비스의 식별자와 컨텐트 아이템 식별자를 포함할 수 있다. 따라서, 수신기(300)는 관계 정보에 기초하여 다른 비실시간 서비스에서 컨텐트 아이템이 제공되고 있는지를 판단할 수 있다.
또한, 관계 정보는 예를 들어, 상술한 바와 같은 other_NRT_location_descriptor를 포함할 수 있으며, 수신기(300)의 서비스 매니저(350)는 이와 같은 관계 정보를 이용하여 현재 사용자가 수신 선택한 비실시간 서비스의 컨텐트 아이템이 선택된 서비스를 통해 전송되는지 또는 다른 비실시간 서비스를 통해 전송되는지를 판단하고, 다른 비실시간 서비스에 대응되는 오브젝트를 식별하여 이에 포함된 컨텐트 아이템을 수신할 수도 있다.
다른 비실시간 서비스를 통해 컨텐트 아이템이 전송되지 않는다고 판단한 경우, 수신기(300)의 서비스 매니저(350)는 획득한 컨텐트 아이템 수신 정보에 따라 FLUTE 세션에 접속하여 상술한 방법과 마찬가지로 각 컨텐트 아이템을 구성하는 파일들을 수신한다.
한편, 다른 비실시간 서비스를 통해 컨텐트 아이템이 전송된다고 판단되는 경우, 수신기(300)의 서비스 매니저(350)는 상술한 수신 정보로부터 다른 비실시간 서비스에 대한 서비스 식별자를 획득하고(S8960), 이에 대응되는 SMT와 NRT-IT를 수신하여 다른 비실시간 서비스에 포함된 컨텐트 아이템 수신 정보를 획득한다(S8970). 그리고, 서비스 매니저(350)는 컨텐트 아이템 수신 정보에 기초하여 FLUTE 세션에 접속하여 컨텐트 아이템을 구성하는 파일들을 수신할 수 있다.
이하에서는 본 발명의 또 다른 실시예에 따른 부가 서비스 수신 방법을 설명한다.
부가 서비스는 서비스 정보(service information), 메타데이터(metadata), 부가 데이터, 컴파일된 실행 파일, 웹 애플리케이션, HTML(Hypertext Markup Language) 문서, XML 문서, CSS(cascading style sheet) 문서, 오디오 파일, 비디오 파일, URL(Uniform Resource Locator)과 같은 주소일 수 있다. 또한, 부가 서비스는 앞서 설명한 바와 같은 시그널링 데이터, 실시간 데이터, 트리거, SMT, NRT-IT, EIT, VCT, PMT일 수 있다.
디지털 방송이 활성화됨에 따라, 방송국은 메인 시청각 컨텐트를 송출하면서, 이 메인 시청각 컨텐트와 연계하여 이용할 수 있거나 이 메인 시청각 컨텐트와는 독립적인 부가 서비스 데이터(enhanced service data)를 함께 송출한다.
그러나 현재의 방송 환경에서는 각 가정의 영상 표시 장치가 방송 신호를 공중파를 통해 직접 수신하는 경우가 적다. 오히려, 각 가정의 영상 표시 장치는 셋톱박스와 같은 방송 수신 장치에 연결되어 있어서, 이 방송 수신 장치가 제공하는 비압축 시청각 컨텐트를 재생하는 경우가 많다.
한편, 방송 수신 장치는 멀티채널 비디오 분배자(multichannel video programming distributor, MVPD)라고 불리는 서버로부터 컨텐츠를 제공받는다. 이 멀티채널 비디오 분배자는 방송국으로부터 방송 신호를 수신하고 수신한 방송 신호로부터 컨텐츠를 추출한 후, 자신이 송출하기에 적합한 형태의 신호로 변환하여 변환된 신호를 방송 수신 장치에 제공한다. 이 과정에서, 멀티채널 비디오 분배자는 추출한 부가 서비스 데이터를 제외할 수도 있고, 또 다른 부가 서비스 데이터를 추가할 수도 있기 때문에, 방송국은 시청각 컨텐츠를 제공하는 역할만 수행할 뿐 방송국 주도의 부가 서비스를 제공할 수 없다.
방송 수신 장치 또한 멀티채널 비디오 분배자로부터 수신한 신호로부터 메인 시청각 데이터를 추출하여 비압축 시청각 데이터만을 영상 표시 장치에게 제공하므로, 방송 수신 장치 통제하의 부가 서비스만이 이용가능할 뿐, 영상 표시 장치 통제하의 부가 서비스는 이루어 질 수 없다. 이는 더더욱 방송국이 자기 주도의 부가 서비스를 제공할 수 없게 한다.
뿐만 아니라, 방송국이 무선 채널을 통해 부가 서비스를 제공하더라도, 대역폭의 한계로 충분한 부가 서비스를 제공할 수 없다.
이에, 이하에서는 방송국 주도의 부가 서비스를 가능하게 하는 영상 표시 장치와와 그 제어 방법을 제공하기 위한 것이다.
다음은 도 89 내지 도 97을 참고하여 본 발명의 일 실시예에 따른 네트워크 토폴로지를 설명한다.
도 89은 본 발명의 일 실시예에 따른 네트워크 토폴로지를 보여주는 블록도이다.
도 89에 도시된 바와 같이, 본 발명의 일 실시예에 따른 네트워크 토폴로지는 컨텐츠 제공 서버(10), 컨텐츠 인식 서비스 제공 서버(20), 멀티채널 비디오 분배 서버(30), 부가 서비스 정보 제공 서버(40), 복수의 부가 서비스 제공 서버(50), 셋톱박스(60), 네트워크(70), 수신기(300)를 포함한다.
컨텐츠 제공 서버(10)는 방송국 등에 해당할 수 있으며, 메인 시청각 컨텐트(main audio-visual content)를 포함하는 방송 신호를 방송한다. 방송 신호는 부가 서비스를 더 포함할 수 있다. 부가 서비스는 메인 시청각 컨텐트와 관련이 있을 수도 있고, 관련이 없을 수도 있다. 하나 이상의 컨텐츠 제공 서버가 존재할 수 있다.
컨텐츠 인식 서비스 제공 서버(20)는 수신기(300)가 메인 시청각 컨텐트에 기초하여 컨텐트를 인식할 수 있게 하는 컨텐트 인식 서비스를 제공한다. 컨텐츠 인식 서비스 제공 서버(20)는 메인 시청각 컨텐트에 수정을 가할 수도 있고 수정을 가하지 않을 수도 있다. 하나 이상의 컨텐츠 인식 서비스 제공 서버가 존재할 수 있다.
컨텐츠 인식 서비스 제공 서버(20)는 메인 시청각 컨텐트에 변형을 가하여 메인 시청각 컨텐트에 로고와 같은 보이는 워터마크(visible watermark)를 삽입하는 워터마크 서버일 수 있다. 이 워터마크 서버는 메인 시청각 컨텐트의 각 프레임의 왼쪽 상단 또는 오른쪽 상단에 컨텐츠 제공자의 로고를 워터마크할 수 있다.
또, 컨텐츠 인식 서비스 제공 서버(20)는 메인 시청각 컨텐트에 변형을 가하여 메인 시청각 컨텐트에 컨텐츠 정보를 보이지 않는 워터마크(invisible watermark)로서 삽입하는 워터마크 서버일 수 있다.
또한, 컨텐츠 인식 서비스 제공 서버(20)는 메인 시청각 컨텐트의 일부의 프레임 또는 일부의 오디오 샘플로부터 특징 정보를 추출하여 저장하는 핑거프린트 서버일 수 있다. 이 특징 정보는 시그너처라고도 불린다.
멀티채널 비디오 분배 서버(30)는 복수의 방송국으로부터 방송 신호를 수신하고 다중화하여 다중화된 신호를 셋톱박스(60)에 제공한다. 특히, 멀티채널 비디오 분배 서버(30)는 수신한 방송 신호에 대해 복조와 채널 복호화를 수행하여 메인 시청각 컨텐트와 부가 서비스를 추출한 후, 추출된 메인 시청각 컨텐트와 추출한 부가 서비스에 대해 채널 부호화를 수행하여 분배를 위한 다중화 신호를 생성할 수 있다. 이때, 멀티채널 비디오 분배 서버(30)는 추출한 부가 서비스를 제외할 수도 있고, 또 다른 부가 서비스를 추가할 수도 있기 때문에, 방송국은 방송국 주도의 서비스를 제공할 수 없다. 하나 이상의 멀티채널 비디오 분배 서버가 존재할 수 있다.
셋톱박스(60)는 사용자가 선택한 채널을 튜닝하고, 튜닝한 채널의 신호를 수신하고, 수신한 신호에 대해 복조와 채널 복호를 수행하여 메인 시청각 컨텐트를 추출한다. 그리고 셋톱박스(60)는 추출한 메인 시청각 컨텐트를 H.264/MPEG-4 AVC(Moving Picture Experts Group-4 advanced video coding), Dolby AC-3, MPEG-2 AAC (Moving Picture Experts Group-2 Advanced Audio Coding) 알고리즘 등을 이용하여 복호하여 비압축 메인 시청각 컨텐트(uncompressed main AV content)를 생성한다. 셋톱박스(60)는 생성한 비압축 메인 시청각 컨텐트를 수신기(300)의 외부 입력 포트 등을 통해 수신기(300)에 제공한다.
부가 서비스 정보 제공 서버(40)는 수신기(300)의 요청에 응답하여 메인 시청각 컨텐트와 관련된 하나 이상의 이용가능한 부가 서비스를 위한 부가 서비스 정보를 제공한다. 부가 서비스 정보 제공 서버(40)와 수신기(300)는 네트워크(70)를 통해 통신할 수 있다. 하나 이상의 부가 서비스 주소 제공 서버가 존재할 수 있다. 부가 서비스 정보 제공 서버(40)는 복수의 이용가능한 부가 서비스 중에서 가장 우선순위가 높은 부가 서비스를 위한 부가 서비스 정보를 제공할 수도 있다.
부가 서비스 제공 서버(50)는 수신기(300)의 요청에 응답하여 메인 시청각 컨텐트와 관련하여 이용할 수 있는 하나 이상의 부가 서비스를 제공한다. 하나 이상의 부가 서비스 제공 서버가 존재할 수 있다. 부가 서비스 제공 서버(50)와 수신기(300)는 네트워크(70)를 통해 통신할 수 있다.
네트워크(70)는 IP 기반 네트워크 또는 ATSC M/H(Advanced Television Systems Committee - Mobile/Handheld) 채널일 수 있다.
수신기(300)는 텔레비전, 노트북, 핸드폰, 스마트폰 등과 같이 디스플레이부를 가지는 장치일 수 있다. 수신기(300)는 셋톱박스(60)로부터 비압축 메인 시청각 컨텐트를 외부 입력 포트를 통해 수신할 수도 있고, 컨텐츠 제공 서버(10) 또는 멀티채널 비디오 분배 서버(30)로부터 부호화된 메인 시청각 컨텐트를 포함하는 방송 신호를 방송 네트워크를 통해 수신할 수 도 있다. 수신기(300)는 네트워크(70)를 통해 컨텐츠 인식 서비스 제공 서버(20)로부터 컨텐츠 인식 서비스를 제공받을 수 있고, 네트워크(70)를 통해 부가 서비스 정보 제공 서버(40)로부터 메인 시청각 컨텐트와 관련하여 이용할 수 있는 하나 이상의 부가 서비스의 주소를 받을 수 있으며, 네트워크(70)를 통해 부가 서비스 제공 서버(50)로부터 메인 시청각 컨텐트와 관련하여 이용할 수 있는 하나 이상의 부가 서비스를 제공받을 수 있다.
컨텐츠 제공 서버(10), 컨텐츠 인식 서비스 제공 서버(20), 멀티채널 비디오 분배 서버(30), 부가 서비스 정보 제공 서버(40), 복수의 부가 서비스 제공 서버(50) 중 2 이상은 하나의 서버의 형태로 결합될 수도 있고, 한 사업자에 의해 운영될 수도 있다.
도 90는 본 발명의 일 실시예에 따른 워터마크 기반의 네트워크 토폴로지를 보여주는 블록도이다.
도 90에 도시된 바와 같이, 본 발명의 일 실시예에 따른 네트워크 토폴로지는 워터마크 서버(21)를 더 포함한다.
도 90에 도시된 바와 같은 워터마크 서버(21)는 메인 시청각 컨텐트에 변형을 가하여 메인 시청각 컨텐트에 컨텐츠 정보를 삽입한다. 멀티채널 비디오 분배 서버(30)는 변형된 메인 시청각 컨텐트를 포함하는 방송 신호를 수신하여 분배한다. 특히, 워터마크 서버는 이하에서 설명하는 바와 같은 디지털 워터마킹 기술을 이용할 수 있다.
디지털 워터마크는 삭제하기 어려운 방법으로 디지털 신호에 정보를 삽입하는 프로세스이다. 예를 들면, 디지털 신호는 오디오, 사진, 또는 비디오일 수 있다. 이 디지털 신호가 복사되면, 삽입된 정보 또한 복사본에 담아진다. 한 디지털 신호가 동시에 다른 여러 개의 워터마크를 운반할 수 있다.
보이는 워터마킹(visible watermarking)에서, 삽입되는 정보는 사진 또는 비디오에서 눈으로 식별가능하다. 전형적으로, 삽입된 정보는 미디어의 소유자를 식별하는 텍스트 또는 로고이다. 텔레비전 방송국이 자신의 로고를 전송되는 비디오의 코너에 추가하면, 이것이 눈으로 식별가능한 워터마크이다.
눈으로 식별 불가능한 워터마킹(invisible watermarking)에서, 정보는 디지털 데이터로서 오디오, 사진, 또는 비디오에 추가되지만, 일정 량의 정보가 숨겨져 있다는 사실은 감지할 수 있다하더라도 그러한 정보는 인지할 수는 없다. 이러한 눈으로 식별불가능한 워터마킹을 통해 비밀 메시지가 전달될 수도 있다.
워터마킹의 한 응용은 디지털 미디어의 불법 복제를 막기 위한 저작권 보호 시스템에 있다. 예컨데, 복제 장치는 디지털 미디어의 복제 전에 디지털 미디어로부터 워터마크를 얻고, 워터마크의 내용에 기초하여 복제를 할지 말지를 결정할 수 있다.
워터마킹의 또 다른 응용은 디지털 미디어의 출처 추적에 있다. 배포 경로 상의 각 지점에서 워터마크가 디지털 미디어에 임베딩된다. 나중에 이와 같은 디지털 미디어가 발견된다면, 이 디지털 미디어로부터 워터마크가 추출될 수 있고, 워터마크의 내용으로부터 배포의 출처를 파악할 수 있다.
디지털 미디어에 대한 설명이 눈으로 식별불가능한 워터마킹의 또 다른 응용이다.
디지털 미디어를 위한 파일 포멧이 메타데이터라고 불리는 추가적인 정보를 포함할 수 있는데, 디지털 워터마크는 디지털 미디어의 시청각 신호 자체로 전달된다는 점에서 메타데이터와는 구별된다.
워터마킹 방법으로 스프레드 스펙트럼, 양자화, 앰플리튜드 변조가 있다.
마킹되는 신호가 추가적인 수정에 의해 얻어진다면, 워터마킹 방법은 스프레드 스펙트럼에 해당한다. 스프레드 스펙트럼 워터마크는 꽤 강인하다고 알려져 있지만, 워터마크가 임베딩되는 호스트 신호에 간섭을 주기 때문에 많은 정보가 실리지는 않는다.
마킹되는 신호가 양자화에 의해 얻어진다면, 워터마킹 방법은 양자화 타입에 해당한다. 양자화 워터마크는 강인성은 낮지만, 꽤 많은 정보를 실을 수 있다.
마킹되는 신호가 공간 도메인에서 스프레드 스펙트럼과 유사한 추가 수정 방법으로 얻어진다면, 워터마킹 방법은 앰플리튜드 변조에 해당한다.
도 91는 본 발명의 일 실시예에 따른 워터마크 기반의 네트워크 토폴로지 내의 데이터 흐름을 보여주는 래더 다이어그램이다.
먼저, 컨텐츠 제공 서버(10)는 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 전송한다(S101A).
워터마크 서버(21)는 컨텐츠 제공 서버(10)가 제공하는 방송 신호를 수신하고, 메인 시청각 컨텐트에 변형을 가하여 메인 시청각 컨텐트에 로고와 같은 보이는 워터마크(visible watermark)를 삽입하거나, 메인 시청각 컨텐트에 워터마크 정보를 보이지 않는 워터마크(invisible watermark)로서 삽입하고, 워터마킹된 메인 시청각 컨텐트와 부가 서비스를 MVPD(30)에 제공한다(S103A).
보이지 않는 워터마크를 통해 삽입되는 워터마크 정보는 워터마크 용도, 컨텐츠 정보, 부가 서비스 정보, 이용가능한 부가 서비스 중 하나 이상을 포함할 수 있다. 워터마크 용도는 무단 복제 방지, 시청률 조사, 부가 서비스 획득 중 하나를 나타낼 수 있다.
컨텐츠 정보는 메인 시청각 컨텐트를 제공하는 컨텐츠 제공자의 식별 정보, 메인 시청각 컨텐트 식별 정보, 메인 시청각 컨텐트 등급 정보, 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시간 정보, 메인 시청각 컨텐트가 방송되는 채널의 이름, 메인 시청각 컨텐트가 방송되는 채널의 로고, 메인 시청각 컨텐트가 방송되는 채널의 설명, 이용 정보 보고 주소, 이용 정보 보고 주기, 이용 정보 획득을 위한 최소 이용 시간 중 하나 이상을 포함할 수 있다.
수신기(300)가 컨텐츠 정보의 획득을 위하여 워터마크를 이용하였다면, 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시간 정보는 이용된 워터마크가 내삽(embedding)된 컨텐트 구간의 시간 정보일 수 있다. 수신기(300)가 컨텐츠 정보의 획득을 위하여 핑거프린트를 이용하였다면, 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시간 정보는 특징 정보가 추출된 컨텐트 구간의 시간 정보일 수 있다. 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시간 정보는 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시작 시간, 컨텐츠 정보 획득에 사용된 컨텐트 구간의 지속 시간(duration), 컨텐츠 정보 획득에 사용된 컨텐트 구간의 종료 시간 중 하나 이상을 포함할 수 있다.
이용 정보 보고 주소는 메인 시청각 컨텐트 시청 정보 보고 주소, 부가 서비스 이용 정보 보고 주소 중 하나 이상을 포함할 수 있다. 이용 정보 보고 주기는 메인 시청각 컨텐트 시청 정보 보고 주기, 부가 서비스 이용 정보 보고 주기 중 하나 이상을 포함할 수 있다. 이용 정보 획득을 위한 최소 이용 시간은 메인 시청각 컨텐트 시청 정보 획득을 위한 최소 시청 시간, 부가 서비스 이용 정보 추출을 위한 최소 사용 시간 중 하나 이상을 포함할 수 있다.
메인 시청각 컨텐트가 최소 시청 시간 이상 시청된 경우에 기초하여 수신기(300)는 메인 시청각 컨텐트의 시청 정보를 획득하고, 메인 시청각 컨텐트 시청 정보 보고 주기에서 메인 시청각 컨텐트 시청 정보 보고 주소로 추출한 시청 정보를 보고할 수 있다.
부가 서비스가 최소 사용 시간 이상 사용된 경우에 기초하여 수신기(300)는 부가 서비스 이용 정보를 획득하고, 부가 서비스 이용 정보 보고 주기에서 부가 서비스 이용 정보 보고 주소로 추출한 이용 정보를 보고할 수 있다.
부가 서비스 정보는 부가 서비스가 존재하는지에 대한 정보, 부가 서비스 주소 제공 서버 주소, 각각의 이용가능한 부가 서비스의 획득 경로, 각각의 이용가능한 부가 서비스를 위한 주소, 각각의 이용가능한 부가 서비스의 시작 시간, 각각의 이용가능한 부가 서비스의 종료 시간, 각각의 이용가능한 부가 서비스의 수명 주기(lifetime), 각각의 이용가능한 부가 서비스의 획득 모드, 각각의 이용가능한 부가 서비스 위한 요청 주기, 각각의 이용가능한 부가 서비스의 우선 순위 정보, 각각의 이용가능한 부가 서비스의 설명, 각각의 이용가능한 부가 서비스의 항목(category), 이용 정보 보고 주소, 이용 정보 보고 주기, 이용 정보 획득을 위한 최소 이용 시간 중 하나 이상을 포함할 수 있다.
이용가능한 부가 서비스의 획득 경로는 IP 기반 네트워크 또는 ATSC M/H(Advanced Television Systems Committee - Mobile/Handheld) 채널을 나타낼 수 있다. 이용가능한 부가 서비스의 획득 경로가 ATSC M/H인 경우에, 부가 서비스 정보는 주파수 정보, 채널 정보를 더 포함할 수 있다. 각각의 이용가능한 부가 서비스의 획득 모드는 Push 또는 Pull을 나타낼 수 있다.
한편, 워터마크 서버(21)는 메인 시청각 컨텐트의 로고에 워터마크 정보를 보이지 않는 워터마크(invisible watermark)로서 삽입할 수 있다.
예컨데, 워터마크 서버(21)는 로고의 일정 위치에 바코드를 삽입할 수 있다. 이때 로고의 일정 위치는 로고가 디스플레이되는 구역의 하단 1 라인에 해당할 수 있다. 수신기(300)는 이와 같이 바코드가 삽입된 로고를 포함하는 메인 시청각 컨텐트를 수신하는 경우에, 바코드를 디스플레이하지 않을 수 있다.
또한, 워터마크 서버(21)는 로고의 메타데이터 형태로 워터마크 정보를 삽입할 수 있다. 이때 로고의 형상은 유지될 수 있다.
또한, 워터마크 서버(21)는 M개의 프레임의 로고의 각각에 N 비트의 워터마크 정보를 삽입할 수 있다. 즉, 워터마크 서버(21)는 M개의 프레임을 통해 M*N개의 워터마크 정보를 삽입할 수 있다.
MVPD(30)는 워터마킹된 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 수신하고, 다중화 신호를 생성하여 셋톱박스(60)에 제공한다(S105A). 이때 다중화 신호는 수신한 부가 서비스를 배제하거나 새로운 부가 서비스를 포함할 수 있다.
셋톱박스(60)는 사용자가 선택한 채널을 튜닝하고 튜닝한 채널의 신호를 수신하고, 수신된 방송 신호를 복조하고 채널 복호화(channel decoding)하고 시청각 복호(AV decoding)를 수행하여 비압축 메인 시청각 컨텐트를 생성한 후, 생성된 비압축 메인 시청각 컨텐트를 수신기(300)에 제공한다(S106A).
한편, 컨텐츠 제공 서버(10) 또한 메인 시청각 컨텐트를 포함하는 방송 신호를 무선 채널 등을 통해 방송한다(S107A).
또한, MVPD(30)는 셋톱박스(60)를 통하지 않고 직접 수신기(300)에 메인 시청각 컨텐트를 포함하는 방송 신호를 전송할 수도 있다(S108A).
수신기(300)는 셋톱박스(60)를 통해 비압축 메인 시청각 컨텐트를 수신할 수 있다. 또는, 수신기(300)는 무선 채널을 통해 방송 신호를 수신하고 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 얻을 수 있다. 또는, 수신기(300)는 MVPD(30)로부터 방송 신호를 수신하고, 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 수신할 수도 있다. 수신기(300)는 획득한 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 워터마크 정보를 추출한다. 워터마크 정보가 로고에 해당하면, 수신기(300)는 복수의 로고와 복수의 워터마크 서버 주소의 대응관계로부터 추출한 로고에 해당하는 워터마크 서버 주소를 확인한다. 워터마크 정보가 로고에 해당하는 경우에, 수신기(300)는 로고만을 가지고서는 메인 시청각 컨텐츠를 식별할 수 없다. 또한, 워터마크 정보가 컨텐트 정보를 포함하고 있지 않은 경우에도 수신기(300)는 메인 시청각 컨텐츠를 식별할 수 없으나, 워터마크 정보가 컨텐츠 제공자 식별 정보나 워터마크 서버 주소를 포함할 수 있다. 워터마크 정보가 컨텐츠 제공자 식별 정보를 포함하는 경우에, 수신기(300)는 복수의 컨텐츠 제공자 식별 정보와 복수의 워터마크 서버 주소의 대응관계로부터 추출한 컨텐츠 제공자 식별 정보에 해당하는 워터마크 서버 주소를 확인할 수 있다. 이와 같이, 수신기(300)는 워터마크 정보만으로 메인 시청각 컨텐트를 식별할 수 없는 경우에, 획득한 워터마크 서버 주소에 해당하는 워터마크 서버(21)에 접속하여 제1 질의를 전송한다(S109A).
워터마크 서버(21)는 제1 질의에 대한 제1 응답을 제공한다(S111A). 이 제1 응답은 컨텐츠 정보, 부가 서비스 정보, 이용가능한 부가 서비스 중 하나 이상을 포함할 수 있다.
워터마크 정보와 제1 응답이 부가 서비스 주소를 포함하고 있지 않다면, 수신기(300)는 부가 서비스을 획득할 수 없다. 그러나 워터마크 정보와 제1 응답이 부가 서비스 주소 제공 서버 주소를 포함할 수 있다. 이와 같이, 수신기(300)는 워터마크 정보와 제1 응답을 통해 부가 서비스 주소나 부가 서비스를 획득하지 못하였고 부가 서비스 주소 제공 서버 주소를 획득하였다면, 수신기(300)는 획득한 부가 서비스 주소 제공 서버 주소에 해당하는 부가 서비스 정보 제공 서버(40)에 접속하여 컨텐츠 정보를 포함하는 제2 질의를 전송한다(S119A).
부가 서비스 정보 제공 서버(40)는 제2 질의의 컨텐츠 정보와 관련된 하나 이상의 이용가능한 부가 서비스를 검색한다. 이후, 부가 서비스 정보 제공 서버(40)는 제2 질의에 대한 제2 응답으로 하나 이상의 이용가능한 부가 서비스를 위한 부가 서비스 정보를 수신기(300)에 제공한다(S121A).
수신기(300)는 워터마크 정보, 제1 응답 또는 제2 응답을 통해 하나 이상의 이용가능한 부가 서비스 주소를 획득하였다면, 이 하나 이상의 이용가능한 부가 서비스 주소에 접속하여 부가 서비스를 요청하고(S123A), 부가 서비스를 획득한다(S125A).
도 92은 본 발명의 일 실시예에 따른 워터마크 기반의 컨텐츠 인식 타이밍을 보여준다.
도 92에 도시된 바와 같이, 셋톱박스(60)가 턴온되고 채널을 튜닝하고, 수신기(300)가 외부 입력 포트(311)를 통해 셋톱박스(60)로부터 튜닝된 채널의 메인 시청각 컨텐트를 수신하면, 수신기(300)는 메인 시청각 컨텐트의 워터마크로부터 컨텐츠 제공자 식별자(또는 방송국 식별자)를 감지할 수 있다. 이후, 수신기(300)는 감지한 컨텐츠 제공자 식별자에 기초하여 메인 시청각 컨텐트의 워터마크로부터 컨텐츠 정보를 감지할 수 있다.
이때, 도 92에 도시된 바와 같이, 컨텐츠 제공자 식별자의 감지가능 주기와 컨텐츠 정보의 감지가능 주기는 다를 수 있다. 특히, 컨텐츠 제공자 식별자의 감지가능 주기는 컨텐츠 정보의 감지가능 주기보다 짧을 수 있다. 이를 통해, 수신기(300)는 필요한 정보만을 감지하기 위한 효율적인 구성을 가질 수 있다.
도 93은 본 발명의 일 실시예에 따른 핑거프린트 기반의 네트워크 토폴로지를 보여주는 블록도이다.
도 93에 도시된 바와 같이, 본 발명의 일 실시예에 따른 네트워크 토폴로지는 핑거프린트 서버(22)를 더 포함한다.
도 93에 도시된 바와 같은 핑거프린트 서버(22)는 메인 시청각 컨텐트에 변형을 가하지는 않으며 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 특징 정보를 추출하여 저장한다. 이후에 핑거프린트 서버(22)는 수신기(300)로부터의 특징 정보를 수신하면, 수신한 특징 정보에 해당하는 시청각 컨텐트의 식별자와 시간 정보를 제공한다.
도 94은 본 발명의 일 실시예에 따른 핑거프린트 기반의 네트워크 토폴로지 내의 데이터 흐름을 보여주는 래더 다이어그램이다.
먼저, 컨텐츠 제공 서버(10)는 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 전송한다(S201A).
핑거프린트 서버(22)는 컨텐츠 제공 서버(10)가 제공하는 방송 신호를 수신하고, 메인 시청각 컨텐트의 복수의 프레임 구간 또는 복수의 오디오 구간으로부터 복수의 특징 정보를 추출하며, 복수의 특징 정보에 각각 대응하는 복수의 질의 결과를 위한 데이터베이스를 구축한다(S203A). 질의 결과는 컨텐츠 정보, 부가 서비스 정보, 이용가능한 부가 서비스 중 하나 이상을 포함할 수 있다.
MVPD(30)는 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 수신하고, 다중화 신호를 생성하여 셋톱박스(60)에 제공한다(S205A). 이때 다중화 신호는 수신한 부가 서비스를 배제하거나 새로운 부가 서비스를 포함할 수 있다.
셋톱박스(60)는 사용자가 선택한 채널을 튜닝하고 튜닝한 채널의 신호를 수신하고, 수신된 방송 신호를 복조하고 채널 복호화(channel decoding)하고 시청각 복호(AV decoding)를 수행하여 비압축 메인 시청각 컨텐트를 생성한 후, 생성된 비압축 메인 시청각 컨텐트를 수신기(300)에 제공한다(S206A).
한편, 컨텐츠 제공 서버(10) 또한 메인 시청각 컨텐트를 포함하는 방송 신호를 무선 채널 등을 통해 방송한다(S207A).
또한, MVPD(30)는 셋톱박스(60)를 통하지 않고 직접 수신기(300)에 메인 시청각 컨텐트를 포함하는 신호를 전송할 수도 있다(S208A).
수신기(300)는 셋톱 박스(60)를 통해 비압축 메인 시청각 컨텐트를 수신할 수 있다. 또는, 수신기(300)는 무선 채널을 통해 방송 신호를 수신하고 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 얻을 수 있다. 또는, 수신기(300)는 MVPD(30)로부터 방송 신호를 수신하고, 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 수신할 수도 있다. 수신기(300)는 획득한 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 특징 정보를 추출한다(S213A).
수신기(300)는 미리 설정된 핑거프린트 서버 주소에 해당하는 핑거프린트 서버(22)에 접속하여 추출한 특징 정보를 포함하는 제1 질의를 전송한다(S215A).
핑거프린트 서버(22)는 제1 질의에 대한 제1 응답으로서 질의 결과를 제공한다(S217A). 만약 제1 응답이 실패에 해당한다면, 수신기(300)는 또 다른 핑거프린트 서버 주소에 해당하는 핑거프린트 서버(22)에 접속하여 추출한 특징 정보를 포함하는 제1 질의를 전송할 수 있다.
핑거프린트 서버(22)는 질의 결과로서 XML (Extensible Markup Language) 문서를 제공할 수 있다. 질의 결과를 담는 XML 문서의 예를 도 7과 표 1을 참고하여 설명한다.
도 95는 본 발명의 일 실시예에 따른 질의 결과를 담는 ACR-Resulttype의 XML 스키마 다이어그램(schema diagram)을 보여준다.
도 95에 도시된 바와 같이, 질의 결과를 담는 ACR-Resulttype은 ResultCode 속성과 ContentID, NTPTimestamp, SignalingChannelInformation, ServiceInformation 엘리먼트를 갖는다.
표 5는 이와 같은 질의 결과를 담는 ACR-ResultType의 XML Schema를 보여준다.
Figure 112014031286144-pct00005
ContentID 엘리먼트로서, 아래의 표 6에서 보여주는 바와 같은 ATSC 컨텐트 식별자(ATSC content identifier)가 이용될 수 있다.
Figure 112014031286144-pct00006
표 6에서 보여지는 바와 같이, ATSC content identifier는 TSID와 하우스 번호로 구성된 구조를 가진다.
ContentID 엘리먼트로서, ATSC-M/H service를 위한 글로벌 서비스 식별자(Global Service Identifier)가 이용될 수 있다.
한편, ContentID 엘리먼트로서, ATSC 컨텐트 식별자가 이용될 수 있다.
이하에서는 다시 도 94을 설명한다.
질의 결과가 부가 서비스 주소나 부가 서비스를 포함하고 있지 않고 부가 서비스 주소 제공 서버 주소를 포함한다면, 수신기(300)는 획득한 부가 서비스 주소 제공 서버 주소에 해당하는 부가 서비스 정보 제공 서버(40)에 접속하여 컨텐츠 정보를 포함하는 제2 질의를 전송한다(S219A).
부가 서비스 정보 제공 서버(40)는 제2 질의의 컨텐츠 정보와 관련된 하나 이상의 이용가능한 부가 서비스를 검색한다. 이후, 부가 서비스 정보 제공 서버(40)는 제2 질의에 대한 제2 응답으로 하나 이상의 이용가능한 부가 서비스를 위한 부가 서비스 정보를 수신기(300)에 제공한다(S221A).
수신기(300)는 제1 응답 또는 제2 응답을 통해 하나 이상의 이용가능한 부가 서비스 주소를 획득하였다면, 이 하나 이상의 이용가능한 부가 서비스 주소에 접속하여 부가 서비스를 요청하고(S223A), 부가 서비스를 획득한다(S225A).
UpdateMode 속성이 Pull 값을 가지는 경우, 수신기(300)는 SignalingChannelURL을 통해 HTTP request를 부가서비스 제공 서버(50)에 전송하여 이에 대한 응답으로 PSIP 바이너리 스트림을 포함하는 HTTP response를 부가서비스 제공 서버(50)로부터 수신한다. 이 경우 수신기(300)는 PollingCycle 속성으로 지정되는 Polling 주기에 따라 HTTP request를 전송할 수 있다. 또한, SignalingChannelURL 엘리먼트는 업데이트 시간 속성을 가질 수도 있다. 이 경우, 수신기(300)는 업데이트 시간 속성으로 지정되는 업데이트 시간에서 HTTP request를 전송할 수 있다.
UpdateMode 속성이 Push 값을 가지는 경우, 수신기(300)는 XMLHTTPRequest API 를 활용하여 비동기적으로 서버로부터 업데이트를 수신할 수 있다. 수신기(300)가 서버로 XMLHTTPRequest object를 통해 비동기적인 request를 한 후에 서버가 시그널링 정보에 변경이 있을 경우에 이 채널을 통해 response로 시그널링 정보를 제공하는 방안이다. 세션의 대기 시간에 제한이 있을 경우에는 session timeout respond를 발생시키고, 바로 수신기는 이를 인지하여 재요청하여서 수신기와 서버간의 시그널링 채널을 항시 유지할 수 있다.
도 96은 본 발명의 일 실시예에 따른 워터마크와 핑거프린트 기반의 네트워크 토폴로지를 보여주는 블록도이다.
도 96에 도시된 바와 같이, 본 발명의 일 실시예에 따른 네트워크 토폴로지는 워터마크 서버(21)와 핑거프린트 서버(22)를 더 포함한다.
도 96에 도시된 바와 같은 워터마크 서버(21)는 메인 시청각 컨텐트에 컨텐츠 제공자 식별 정보를 삽입한다. 워터마크 서버(21)는 로고와 같이 보이는 워터마크로서 컨텐츠 제공자 식별 정보를 메인 시청각 컨텐트에 삽입할 수도 있고, 보이지 않는 워터마크로서 컨텐츠 제공자 식별 정보를 메인 시청각 컨텐트에 삽입할 수도 있다.
핑거프린트 서버(22)는 메인 시청각 컨텐트에 변형을 가하지는 않으며 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 특징 정보를 추출하여 저장한다. 이후에 핑거프린트 서버(22)는 수신기(300)로부터의 특징 정보를 수신하면, 수신한 특징 정보에 해당하는 시청각 컨텐트의 식별자와 시간 정보를 제공한다.
도 97은 본 발명의 일 실시예에 따른 워터마크와 핑거프린트 기반의 네트워크 토폴로지 내의 데이터 흐름을 보여주는 래더 다이어그램이다.
먼저, 컨텐츠 제공 서버(10)는 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 전송한다(S301A).
워터마크 서버(21)는 컨텐츠 제공 서버(10)가 제공하는 방송 신호를 수신하고, 메인 시청각 컨텐트에 변형을 가하여 메인 시청각 컨텐트에 로고와 같은 보이는 워터마크(visible watermark)를 삽입하거나, 메인 시청각 컨텐트에 워터마크 정보를 보이지 않는 워터마크(invisible watermark)로서 삽입하고, 워터마킹된 메인 시청각 컨텐트와 부가 서비스를 MVPD(30)에 제공한다(S303A). 보이지 않는 워터마크를 통해 삽입되는 워터마크 정보는 컨텐츠 정보, 부가 서비스 정보, 이용가능한 부가 서비스 중 하나 이상을 포함할 수 있다. 컨텐츠 정보와 부가 서비스 정보는 앞서 설명한 바와 같다.
MVPD(30)는 워터마킹된 메인 시청각 컨텐트와 부가 서비스를 포함하는 방송 신호를 수신하고, 다중화 신호를 생성하여 셋톱박스(60)에 제공한다(S305A). 이때 다중화 신호는 수신한 부가 서비스를 배제하거나 새로운 부가 서비스를 포함할 수 있다.
셋톱박스(60)는 사용자가 선택한 채널을 튜닝하고 튜닝한 채널의 신호를 수신하고, 수신된 방송 신호를 복조하고 채널 복호화(channel decoding)하고 시청각 복호(AV decoding)를 수행하여 비압축 메인 시청각 컨텐트를 생성한 후, 생성된 비압축 메인 시청각 컨텐트를 수신기(300)에 제공한다(S306A).
한편, 컨텐츠 제공 서버(10) 또한 메인 시청각 컨텐트를 포함하는 방송 신호를 무선 채널 등을 통해 방송한다(S307A).
또한, MVPD(30)는 셋톱박스(60)를 통하지 않고 직접 수신기(300)에 메인 시청각 컨텐트를 포함하는 신호를 전송할 수도 있다(S308A).
수신기(300)는 셋톱 박스(60)를 통해 비압축 메인 시청각 컨텐트를 수신할 수 있다. 또는, 수신기(300)는 무선 채널을 통해 방송 신호를 수신하고 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 얻을 수 있다. 또는, 수신기(300)는 MVPD(30)로부터 방송 신호를 수신하고, 수신한 방송 신호를 복조하고 복호하여 메인 시청각 컨텐트를 수신할 수도 있다. 수신기(300)는 획득한 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 워터마크 정보를 추출한다. 워터마크 정보가 로고에 해당하면, 수신기(300)는 복수의 로고와 복수의 워터마크 서버 주소의 대응관계로부터 추출한 로고에 해당하는 워터마크 서버 주소를 확인한다. 워터마크 정보가 로고에 해당하는 경우에, 수신기(300)는 로고만을 가지고서는 메인 시청각 컨텐츠를 식별할 수 없다. 또한, 워터마크 정보가 컨텐트 정보를 포함하고 있지 않은 경우에도 수신기(300)는 메인 시청각 컨텐츠를 식별할 수 없으나, 워터마크 정보가 컨텐츠 제공자 식별 정보나 워터마크 서버 주소를 포함할 수 있다. 워터마크 정보가 컨텐츠 제공자 식별 정보를 포함하는 경우에, 수신기(300)는 복수의 컨텐츠 제공자 식별 정보와 복수의 워터마크 서버 주소의 대응관계로부터 추출한 컨텐츠 제공자 식별 정보에 해당하는 워터마크 서버 주소를 확인할 수 있다. 이와 같이, 수신기(300)는 워터마크 정보만으로 메인 시청각 컨텐트를 식별할 수 없는 경우에, 획득한 워터마크 서버 주소에 해당하는 워터마크 서버(21)에 접속하여 제1 질의를 전송한다(S309A).
워터마크 서버(21)는 제1 질의에 대한 제1 응답을 제공한다(S311A). 이 제1 응답은 핑거프린트 서버 주소, 컨텐츠 정보, 부가 서비스 정보, 이용가능한 부가 서비스 중 하나 이상을 포함할 수 있다. 컨텐츠 정보와 부가 서비스 정보는 앞서 설명한 바와 같다.
워터마크 정보와 제1 응답이 핑거프린트 서버 주소를 포함하고 있다면, 수신기(300)는 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플로부터 특징 정보를 추출한다(S313A).
수신기(300)는 제1 응답 내의 핑거프린트 서버 주소에 해당하는 핑거프린트 서버(22)에 접속하여 추출한 특징 정보를 포함하는 제2 질의를 전송한다(S315A).
핑거프린트 서버(22)는 제2 질의에 대한 제2 응답으로서 질의 결과를 제공한다(S317A).
질의 결과가 부가 서비스 주소나 부가 서비스를 포함하고 있지 않고 부가 서비스 주소 제공 서버 주소를 포함한다면, 수신기(300)는 획득한 부가 서비스 주소 제공 서버 주소에 해당하는 부가 서비스 정보 제공 서버(40)에 접속하여 컨텐츠 정보를 포함하는 제3 질의를 전송한다(S319A).
부가 서비스 정보 제공 서버(40)는 제3 질의의 컨텐츠 정보와 관련된 하나 이상의 이용가능한 부가 서비스를 검색한다. 이후, 부가 서비스 정보 제공 서버(40)는 제3 질의에 대한 제3 응답으로 하나 이상의 이용가능한 부가 서비스를 위한 부가 서비스 정보를 수신기(300)에 제공한다(S321A).
수신기(300)는 제1 응답, 제2 응답, 또는 제3 응답을 통해 하나 이상의 이용가능한 부가 서비스 주소를 획득하였다면, 이 하나 이상의 이용가능한 부가 서비스 주소에 접속하여 부가 서비스를 요청하고(S323A), 부가 서비스를 획득한다(S325A).
다음은 도 98를 참고하여, 본 발명의 실시예에 따른 수신기(300)를 설명한다.
도 98에 도시된 바와 같이, 본 발명의 실시예에 따른 수신기(300)는 방송 신호 수신부(301), 복조부(310), 채널 복호부(305), 역다중화부(320), 시청각 복호부(309), 외부 입력 포트(311), 재생 제어부(313), 재생 장치(320), 서비스 매니저(350), 데이터 송수신부(341), 메모리(350)를 포함한다.
방송 신호 수신부(301)는 컨텐츠 제공 서버(10) 또는 MVPD(30)로부터 방송 신호를 수신한다.
복조부(310)는 수신한 방송 신호를 복조하여 복조된 신호를 생성한다.
채널 복호부(305)는 복조된 신호를 채널 복호하여 채널 복호된 데이터를 생성한다.
역다중화부(320)는 채널 복호된 데이터로부터 메인 시청각 컨텐트와 부가 서비스를 분리한다. 분리된 부가 서비스는 부가 서비스 저장부(352)에 저장된다.
시청각 복호부(309)는 분리된 메인 시청각 컨텐트를 시청각 복호(AV decoding)하여 비압축 메인 시청각 컨텐트를 생성한다.
한편, 외부 입력 포트(311)는 셋톱박스(60), 디브이디(digital versatile disk, DVD) 플레이어, 블루레이 디스크 (Blu-ray disc) 플레이어 등으로부터 비압축 메인 시청각 컨텐트를 수신한다. 외부 입력 포트(311)는 DSUB 포트, HDMI (High Definition Multimedia Interface) 포트, DVI (Digital Visual Interface) 포트, 컴포지트(composite) 포트, 컴포넌트(component) 포트, S-Video 포트 중 하나 이상을 포함할 수 있다.
재생 제어부(313)는 시청각 복호부(309)가 생성하는 비압축 메인 시청각 컨텐트 또는 외부 입력 포트(311)로부터 수신한 비압축 메인 시청각 컨텐트 중 적어도 하나를 사용자 선택에 의해 재생 장치(320)에 재생한다.
재생 장치(320)는 디스플레이부(321)와 스피커(323)를 포함한다. 디스플레이부(321)는 액정 디스플레이(liquid crystal display, LCD), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display, TFT LCD), 유기 발광 다이오드(organic light-emitting diode, OLED), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다.
서비스 매니저(350)는 메인 시청각 컨텐트의 컨텐츠 정보를 획득하고, 획득된 컨텐츠 정보에 기초하여 이용가능한 부가 서비스를 획득한다. 특히, 앞서 설명한 바와 같이 서비스 매니저(350)는 비압축 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플에 기초하여 메인 시청각 컨텐트의 식별 정보를 획득할 수 있는데, 본 명세서에서는 이를 자동 컨텐츠 인식(automatic contents recognition, ACR)이라 칭하기도 한다.
서비스 매니저(350)는 도 34의 서비스 매니저(350)에 대응할 수 있다.
데이터 송수신부(341)는 ATSC-M/H (Advanced Television Systems Committee - Mobile/Handheld) 채널 송수신부(341a)와 IP 송수신부(341b)를 포함할 수 있다.
ATSC-M/H 채널 송수신부(341a)는 ATSC-M/H 채널을 통해 다른 장치 또는 서버와 통신한다.
IP 송수신부(341b)는 IP 기반 네트워크를 통해 다른 장치 또는 서버와 통신한다.
메모리(350)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 수신기(300)는 인터넷(internet)상에서 상기 메모리(350)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다.
메모리(350)는 컨텐츠 정보 저장부(351), 부가 서비스 저장부(352), 로고 저장부(353), 설정 정보 저장부(354), 북마크 저장부(355), 사용자 정보 저장부(356), 이용 정보 저장부(357)를 포함할 수 있다.
컨텐츠 정보 저장부(351)는 복수의 특징 정보에 대응하는 복수의 컨텐츠 정보를 저장한다.
부가 서비스 저장부(352)는 복수의 특징 정보에 대응하는 복수의 부가 서비스를 저장할 수도 있고, 복수의 컨텐츠 정보에 대응하는 복수의 부가 서비스를 저장할 수도 있다.
로고 저장부(353)는 복수의 로고를 저장한다. 또, 로고 저장부는 이 복수의 로고에 대응하는 컨텐츠 제공자 식별자 또는 복수의 로고에 대응하는 워터마크 서버 주소를 더 저장할 수도 있다.
설정 정보 저장부(354)는 ACR을 위한 설정 정보를 저장한다.
북마크 저장부(355)는 북마크를 저장한다.
사용자 정보 저장부(356)는 사용자 정보를 저장한다. 사용자 정보는 하나 이상의 서비스를 위한 하나 이상의 계정 정보, 지역 정보, 가족 구성원 정보, 선호 장르 정보, 영상 표시 장치 정보, 이용 정보 제공 범위 중 하나 이상을 포함할 수 있다. 하나 이상의 계정 정보는 이용 정보 측정 서버를 위한 계정 정보, 트위터(twitter), 페이스북(facebook)과 같은 소셜 네트워크 서비스(social network service)의 계정 정보를 포함할 수 있다. 지역 정보는 주소 정보, 우편 번호를 포함할 수 있다. 가족 구성원 정보는 가족 구성원의 수, 각 구성원의 나이, 각 구성원의 성별, 각 구성원의 종교, 각 구성원의 직업 등을 포함할 수 있다. 선호 장르 정보는 스포츠, 영화, 드라마, 교육, 뉴스, 오락, 기타 장르 중에서 하나 이상으로 설정될 수 있다. 영상 표시 장치 정보는 영상 표시 장치의 종류, 제조사, 펌웨어 버전, 해상도, 모델명, OS, 브라우저, 저장 장치 유무, 저장 장치의 용량, 네트워크 속도에 대한 정보를 포함할 수 있다. 이용 정보 제공 범위가 설정되면, 수신기(300)는 설정된 범위 내에서 메인 시청각 컨텐트 시청 정보와 부가 서비스 이용 정보를 수집하고 보고할 수 있다. 이용 정보 제공 범위는 가상 채널 각각에 대해 설정될 수 있다. 또한, 이용 정보 측정 허용 범위는 물리 채널 전체에 대해 설정될 수도 있다.
이용 정보 저장부(357)는 수신기(300)에 의해 수집되는 메인 시청각 컨텐트 시청 정보와 부가 서비스 사용 정보를 저장한다. 또한, 수신기(300)는 수집한 메인 시청각 컨텐트 시청 정보와 수집한 부가 서비스 사용 정보에 기초하여 서비스 이용 패턴을 분석하고, 분석된 서비스 이용 패턴을 이용 정보 저장부(357)에 저장할 수 있다.
서비스 매니저(350)는 핑거프린트 서버(22) 또는 컨텐츠 정보 저장부(351)로부터 메인 시청각 컨텐트의 컨텐츠 정보를 획득할 수 있다. 컨텐츠 정보 저장부(351)에 추출한 특징 정보에 해당하는 컨텐츠 정보가 없거나 충분한 컨텐츠 정보가 없는 경우, 서비스 매니저(350)는 데이터 송수신부(341)를 통해 추가 컨텐츠 정보를 수신할 수 있다. 또한, 서비스 매니저(350)는 지속적으로 컨텐츠 정보를 업데이트할 수 있다.
서비스 매니저(350)는 부가 서비스 제공 서버(50) 또는 부가 서비스 저장부(353)로부터 이용가능한 부가 서비스를 획득할 수 있다. 부가 서비스 저장부(353)에 부가 서비스가 없거나 충분한 부가 서비스가 없는 경우, 서비스 매니저(350)는 데이터 송수신부(341)를 통해 부가 서비스를 업데이트할 수 있다. 또한, 서비스 매니저(350)는 지속적으로 부가 서비스를 업데이트할 수 있다.
서비스 매니저(350)는 메인 시청각 컨텐트로부터 로고를 추출하고, 로고 저장부(355)에 질의하여 추출한 로고에 대응하는 컨텐츠 제공자 식별자 또는 워터마크 서버 주소를 획득할 수 있다. 로고 저장부(355)에 추출한 로고와 일치하는 로고가 없거나 충분한 로고가 없는 경우, 서비스 매니저(350)는 데이터 송수신부(341)를 통해 추가 로고를 수신할 수 있다. 또한, 서비스 매니저(350)는 지속적으로 로고를 업데이트할 수 있다.
서비스 매니저(350)는 메인 시청각 컨텐트로부터 추출한 로고와 로고 저장부(355) 내의 복수의 로고와의 비교를 수행하는데 연산의 부담을 줄이기 위한 다양한 방법을 수행할 수 있다.
예컨데, 서비스 매니저(350)는 색깔 특성에 기초하여 비교를 수행할 수 있다. 즉, 서비스 매니저(350)는 추출한 로고의 색깔 특성과 로고 저장부(355) 내의 로고의 색깔 특성을 비교하여 일치 여부를 판단할 수 있다.
또, 서비스 매니저(350)는 문자 인식에 기초하여 비교를 수행할 수 있다. 즉, 서비스 매니저(350)는 추출한 로고로부터 인식되는 문자와 로고 저장부(355) 내의 로고로부터 인식되는 문자를 비교하여 일치 여부를 판단할 수 있다.
뿐만 아니라, 서비스 매니저(350)는 로고의 윤곽에 대한 형상에 기초하여 비교를 수행할 수 있다. 즉, 서비스 매니저(350)는 추출한 로고의 윤곽 형상과 로고 저장부(355) 내의 로고의 윤곽 형상을 비교하여 일치 여부를 판단할 수 있다.
서비스 매니저(350)는 비압축 메인 시청각 컨텐트의 일부 프레임 또는 일부 구간의 오디오 샘플에 기초하여 메인 시청각 컨텐트의 컨텐츠 정보를 획득하고, 획득한 컨텐츠 정보에 기초하여 부가 서비스를 위한 시그널링 데이터를 획득한 후, 이 시그널링 데이터에 기초하여 부가 서비스를 획득할 수 있다.
한편, 이하에서는 앞서 설명한 트리거 서비스를 제공함에 있어서, IP(internet protocol)기반 네트워크를 통해 트리거를 전송하는 방법을 설명하도록 한다.
IP기반 네트워크를 통해 트리거가 전송되는 경우, 송신기(200)는 앞서 설명한 TDO 트리거 테이블(Trigger Table) 에 트리거를 포함하여 전송할 수 있다. 이에 따라 수신기(300)는 TDO 트리거 테이블에 기초하여 트리거를 획득할 수 있다.
TDO 트리거 테이블을 이용하는 경우, 송신기(200)는 TDO 트리거 테이블을 IP기반 네트워크를 통해 전송하기 위해, 먼저 TDO 트리거 테이블을 IP기반 네트워크상의 특정 위치에 저장하고, 그 TDO 트리거 테이블이 위치한 네트워크상의 위치 정보를 수신기(300)로 전송할 수 있다. 예를 들어, 수신기(300)는 TDO 트리거 테이블의 URL정보를 송신기(200)로부터 수신하고, TDO 트리거 테이블의 URL정보에 기초하여 네트워크상의 TDO 트리거 테이블의 위치로 접근하며, TDO 트리거 테이블을 IP기반 네트워크를 통해 수신할 수 있다. 이 경우, TDO 트리거 테이블은 방송망으로 전송되는 테이블과 동일한 프라이빗 섹션(Private Section) 구조의 신택스 형태를 가질 수 있으며, 이에 따라 수신기(300)는 트리거의 획득 및 트리거 정보 처리를 위한 추가적인 기술구현 없이, 기존의 모듈을 이용하여 트리거를 수신하고, 처리할 수 있게 된다.
한편, IP기반 네트워크를 통해 트리거가 전송되는 경우, 송신기(200)는 앞서 설명한 트리거를 XML 포맷으로 생성하여 수신기(300)로 전송할 수 있다.
도 99는 본 발명의 일 실시 예에 따른 트리거의 XML 포맷을 나타내며, 도 100 내지 도 101은 본 발명의 다른 일 실시 예에 따른 트리거의 XML 포맷을 나타낸다.
컨텐트 아이템들(content-itmes)엘리먼트는 트리거 대상 오브젝트인 컨텐트 아이템 또는 이와 구분되는 다른 컨텐트 아이템들을 나타낼 수 있다.
위와 같은 컨텐트 아이템들 엘리먼트는 TDO에 대응되는 컨텐트 아이템이 비실시간 서비스를 통해 전송되는 경우에 사용될 수 있다.
또한, 컨텐트 아이템이 IP 네트워크를 통해 전송되는 경우에도 컨텐트 아이템들 엘리먼트가 사용될 수 있다. 앞서 설명한 바와 같이, 수신기(300)는 서비스 식별 참조 속성(Service-ID Ref attribute) 값 및 컨텐트 아이템 식별자 속성(content linkage attribute) 값의 조합에 기초하여 IP 네트워크를 통해 전송되는 TDO에 대응되는 컨텐트 아이템들을 식별할 수 있다.
그리고, 상술한 컨텐트 URL 엘리먼트는 컨텐트 아이템을 구성하는 파일이 IP 네트워크를 통해 전송되는 경우에 사용될 수 있다.
그리고, 컨텐트 URL 엘리먼트는 상대 경로 URL(Relataive URL) 또는 절대 경로 태그 URI(absolute tag URI)를 포함할 수 있다. 송신기(200)는 컨텐트 URL 엘리먼트가 상대 경로 URL 또는 절대 경로 태그 URI로 지정한 경우, 그 지정된 URL 또는 지정된 URI는 비실시간 서비스에서 사용되는 FLUTE 세션을 통해서만 전송됨을 나타낼 수 있다. 예를 들어, 수신기(300)는 컨텐트 URL 엘리먼트가 상대 경로 URL 또는 절대 경로 태그 URI를 포함하는 경우, 그 URL 또는 URI를 이용하여 FLUTE를 통해 연결되는 방송 네트워크로부터 컨텐트 아이템을 수신할 수 있다. 또한, 수신기(300)는 컨텐트 URL 엘리먼트가 상대 경로 URL 또는 절대 경로 태그 URI를 포함하지 않는 경우에는 컨텐트 URL 엘리먼트에 기초하여 IP 네트워크 또는 방송 네트워크 중 적어도 하나로부터 컨텐트 아이템을 수신할 수 있다.
이와 같이, XML포맷으로 정의되는 트리거 구조에 따라, 트리거는 TDO 서비스 제공을 위한 필수적이면서도 다양한 정보들을 포함할 수 있으며, IP 네트워크를 통한 효과적인 전송이 가능하게 된다.
한편, 이와 같은 트리거를 IP 네트워크를 통해 전송하는 경우, 송신기(200)는 수신기(300)가 트리거를 획득하기 위한 시그널링 정보(트리거 시그널링 정보)를 전송할 수 있다. 트리거 시그널링 정보는 트리거가 전송되는 IP 네트워크 상의 위치 정보, 예를 들어 트리거 URL 정보 등을 포함할 수 있다. 또한, 트리거 시그널링 정보는 전송 네트워크에 따라 서로 다른 다양한 포맷으로 전송될 수 있다.
수신기(300)는 경우에 따라 IP 네트워크에만 직접 연결되거나, 방송 네트워크 및 IP 네트워크에 모두 직접 연결될 수 있다. 따라서, 송신기(200)는 트리거 획득을 위한 시그널링 정보를 방송 네트워크 또는 IP 네트워크 중 적어도 하나를 통해 전송할 수 있다. 이를 위해, 하나 이상의 전송 및 수신방법들이 사용될 수 있다.
먼저, 수신기(300)가 방송 네트워크를 통해 방송 신호를 직접 수신할 수 있는 경우, 트리거 시그널링 정보는 방송 네트워크를 통해 전송될 수 있다. 이 경우, 트리거 시그널링 정보는 트리거 URL 디스크립터 또는 TDO 트리거 테이블에 포함되어 방송 네트워크를 통해 전송될 수 있다.
도 102는 본 발명의 실시 예에 따른 트리거 URL 디스크립터의 신택스를 나타낸다.
이와 같은 트리거 디스크립터는 PSIP 테이블, SMT, NRT-IT 중 적어도 하나에 포함되어 IP 네트워크 또는 방송 네트워크를 통해 전송될 수 있다. 예를 들어, 수신기(300)는 PSIP 테이블, SMT 또는 NRT-IT 중 어느 하나로부터 상술한 트리거 디스크립터를 추출하고, 이에 기초하여 트리거의 IP 네트워크상 위치 정보를 획득하여, IP 네트워크를 통해 전송되는 트리거를 수신할 수 있다.
도 103은 본 발명의 실시 예에 따른 TDO 트리거 테이블의 신택스를 나타낸다.
따라서, 수신기(300)는 TDO 트리거 테이블을 수신하면, 각 필드를 파싱하되, 파싱된 트리거 URL 정보에 기초하여 트리거의 IP 네트워크상 위치 정보를 획득하여, IP 네트워크를 통해 전송되는 트리거를 수신할 수 있다.
한편, 수신기(300)는 방송 네트워크에는 직접 연결되지 않으나, IP 네트워크에는 연결될 수 있다. 이 경우, 수신기(300)는 앞서 설명한 부가 서비스 수신 방법을 이용하여 부가 서비스에 포함된 트리거 또는 트리거 시그널링 정보를 획득할 수 있다.
수신기(300)는 방송 네트워크에 직접 연결되지 않고 셋톱박스와 같은 방송 수신 장치에 연결되어 있더라도, 송신기(200)인 방송국으로부터 전송되는 메인 시청각 컨텐트와 연계하여 이용할 수 있거나 이 메인 시청각 컨텐트와는 독립적인 부가 서비스 데이터(enhanced service data)를 수신할 수 있다. 그리고 수신기(300)는 그 부가 서비스 데이터에 포함된 트리거를 획득하거나, 그 부가 서비스 데이터를 이용하여 트리거를 IP 네트워크를 통해 수신할 수 있다.
도 104는 본 발명의 실시 예에 따른 수신기(300)의 동작 방법을 나타낸다.
도 104를 참조하면, 수신기(300)는 컨텐트를 재생한다(S9001). 도 104에서 수신기(300)는 방송 네트워크에 직접 연결되지 않고, 방송 수신 장치에서 제공되는 비압축 시청각 컨텐트를 수신하여 재생할 수 있다. 이 경우, 수신기(300)는 시청각 컨텐츠를 재생할 수 있을 뿐 송신기(200)에서 전송되는 트리거 정보를 방송 네트워크를 통해 직접 수신하기 어려울 수 있다. 따라서, 수신기(300)는 앞서 설명한 부가 서비스 수신 방법을 이용할 수 있다.
수신기(300)는 재생되는 컨텐트에 대한 부가 서비스가 존재하는지 확인한다(S9003). 수신기(300)의 서비스 매니저(350)는 도 91에서 설명한 바와 같이 워터 마크를 이용한 방법 또는 도 94에서 설명한 바와 같이 핑거 프린트 서버(22)를 이용한 방법을 통해 재생 중인 컨텐트의 일부를 이용하여 그 컨텐트를 식별하고, 그 컨텐트에 대한 부가 서비스 존재를 확인할 수 있다. 그리고, 수신기(300)의 서비스 매니저(350)는 확인된 부가 서비스에 트리거가 포함되는지 판단할 수 있다.
예를 들어, 수신기(300)는 핑거프린트 서버(22)로부터 수신되는 시청각 컨텐트에 대한 질의 결과로부터 트리거의 존재 여부를 판단할 수 있다. 또한, 수신기(300)는 도 91에서 설명한 워터마크를 이용한 방법을 통해서도 트리거의 존재 여부를 판단할 수 있다.
예를 들어, 수신기(300)는 핑거프린트 서버(22)로부터 수신되는 질의 결과를 담는 ACR-Resulttype의 데이터로부터 트리거 URL 정보를 획득할 수 있다. 트리거 URL 정보는 트리거를 수신할 수 있는 URL 정보를 포함할 수 있다. 예를 들어, 트리거 URL 정보는 IP 네트워크상에 위치한 트리거 서버 내 특정 위치 정보를 포함할 수 있다.
도 105는 본 발명의 다른 일 실시 예에 질의 결과를 담는 ACR-Resulttype의 XML 스키마 다이어그램(schema diagram)을 보여준다.
TriggerURL 엘리먼트는 질의 결과에 의해 식별되는 컨텐트와 연관된 트리거를 수신할 수 있는 URL 정보를 포함할 수 있다. 수신기(300)는 Trigger URL 엘리먼트 및 NTPTimestamp에 기초하여 식별된 컨텐트의 특정 시점 이후의 트리거들을 트리거 서버에 요청할 수 있으며, 구체적인 동작은 후술한다.
부가 서비스에 트리거가 포함되는 경우, 수신기는 그 부가 서비스에 포함된 적어도 하나의 트리거를 서버에 요청한다(S9005). 요청 대상 서버는 트리거 서버라고 할 수 있으며, IP 네트워크를 통해 트리거를 수신기(300)로 전송할 수 있다. 또한, 트리거 서버는 앞서 설명한 바와 같은 부가 서비스 제공 서버(50), 부가 서비스 정보 제공 서버(40), 컨텐츠 제공 서버(10), 핑거프린트 서버(22) 또는 워터마크 서버(21) 중 IP 네트워크를 통해 직접 접속 가능한 서버를 포함할 수도 있다.
수신기(300)의 서비스 매니저(350)는 트리거를 트리거 서버에 요청함에 있어서, 시간 범위를 지정할 수 있다.
시간 범위는 특정 시간 구간을 포함할 수 있다. 특정 시간 구간 또는 시간 범위는 컨텐츠 정보 획득에 사용된 컨텐트 구간의 시간 정보에 의해 지정될 수 있다. 컨텐트 구간의 시간 정보는 워터마크가 내삽(embedding)된 컨텐트 구간의 시간 정보이거나, 특징 정보가 추출된 컨텐트 구간의 시간 정보일 수 있다. 또한, 트리거 요청시 지정되는 특정 시간 구간 또는 시간 범위는 워터 마크 또는 핑거 프린트 이용 과정에서 획득되는 질의 결과 정보에 기초하여 지정될 수 있다. 예를 들어, 수신기(300)는 상술한 ACR-Resulttype에 포함되는 NTP Timestamp에 기초하여 요청할 트리거의 시간 구간을 지정할 수 있다.
그리고, 수신기(300)는 요청에 대응되는 트리거 요청 결과 정보를 수신한다(S9007).
앞서 설명한 바와 같이, 수신기(300)는 트리거 서버로 전송한 트리거 요청에 대응하여, 트리거 서버로부터 트리거 요청 결과 정보를 수신할 수 있다. 트리거 요청 결과 정보는 하나 이상의 트리거를 포함할 수 있다. 따라서, 수신기(300)는 트리거 서버로부터 수신한 트리거 요청 결과 정보로부터 트리거를 획득할 수 있다.
그리고, 수신기(300)는 트리거 시간에 트리거 대상 오브젝트에 대해 트리거 액션을 수행한다(S9009). 수신기(300)는 앞서 획득한 트리거에 포함된 트리거 시간, 트리거 액션 및 트리거 대상 오브젝트 정보에 기초하여 트리거 시간에 트리거 대상 오브젝트에 대해 트리거 액션을 수행할 수 있다.
도 106은 본 발명의 실시 예에 따른 수신기(300)의 트리거 요청 및 수신 방법을 설명하기 위한 흐름도이다.
도 106을 참조하면, 본 발명의 실시 예에 따른 수신기(300)는 트리거 URL을 획득하고(S9011), 획득한 URL에 기초하여 컨텐트와 연관된 특정 시간 구간 내 트리거를 서버로 요청하고(S9013), 서버로부터 트리거 요청에 대응되는 트리거 요청 결과를 수신한다(S9015).
앞서 설명한 바와 같이, 수신기(300)는 재생 중인 컨텐트의 일부 구간에 기초하여 그 컨텐트와 연관된 트리거의 URL을 획득할 수 있다. 또한, 수신기(300)는 재생 중인 컨텐트의 일부 구간에 기초하여 그 일부 구간에 대한 시간 정보, 예를 들어 타임스탬프를 획득할 수 있다. 그리고, 수신기(300)는 획득한 트리거의 URL 및 타임스탬프에 기초하여 컨텐트와 연관된 특정 시간 구간 내 트리거를 트리거 서버로 요청할 수 있다.
수신기(300)는 트리거 URL에 기초하여 트리거를 요청하는 경우, HTTP(hyper Text Transfer Protocol)을 이용하여 요청 메시지를 생성하고, 생성된 요청 메시지를 트리거 서버로 IP 네트워크를 통해 전송할 수 있다. 트리거 서버는 HTTP 기반 요청 메시지를 수신하고, 이에 대한 응답으로 HTTP Response 포맷의 트리거 요청 결과를 생성하여 수신기(300)로 전송할 수 있다.
예를 들어, 수신기(300)는 상술한 핑거프린트 서버(22)로부터 수신한 질의 결과에 시간 정보 또는 타임스탬프가 포함되어 있지 않거나, 트리거의 시간 구간을 특정할 필요가 없다고 판단되는 경우, HTTP에서 사용되는 GET 명령 포맷을 이용하여 트리거 URL을 포함하는 트리거 요청 메시지를 생성하고, 트리거 서버로 전송할 수 있다. 이 경우 트리거 서버는 HTTP response에 현재 전송 가능한 모든 트리거 또는 모든 트리거 목록을 포함하여 수신기(300)로 전송할 수 있다.
또한, 수신기(300)는 시간 구간을 특정할 필요가 있는 경우, HTTP GET 명령 포맷 또는 HTTP POST 명령 포맷을 이용하여, 특정 시간 구간 내 트리거를 요청할 수 있다. 트리거 URL 및 특정 시간 구간은 예를 들어, ACR Resulttype에 포함된 Trigger URL 및 타임스탬프에 기초하여 결정될 수 있다.
ACR Resulttype에 포함된 Trigger URL 및 Timestamp는 예를 들어, Trigger URL이 http://www.atsc2.com/content1/trigger와 같은 형태로 획득될 수 있으며, Timestamp는 2011/06/28T18:00:00과 같은 시간 포맷으로 획득될 수 있다. 이와 같은 트리거 URL 및 Timestamp는 앞서 설명한 핑거 프린트 또는 워터마크를 통한 컨텐츠 정보 획득에 사용된 컨텐트 구간(예를 들어 재생 중인 컨텐트의 일부 구간)에 대응될 수 있다.
여기서, 수신기(300)는 HTTP GET 명령 포맷을 이용하여 트리거 요청 메시지를 생성할 수 있다.
도 107은 본 발명의 실시 예에 따른 HTTP GET 명령 포맷 기반 트리거 요청 메시지를 나타낸다.
HTTP에서 사용되는 GET 명령 포맷은 그 메시지 헤더에 URL 구간을 포함할 수 있다. 트리거 요청 메시지는 이와 같은 URL 구간에 상술한 트리거 URL를 포함할 수 있다.
또한, HTTP에서 사용되는 GET 명령 포맷은 URL 구간 뒤에 timestamp 필드 및 duration 필드가 연속적으로 위치할 수 있다. HTTP GET 명령 포맷에서, Timestamp 필드는 특정 구간의 시작 시점을 나타낼 수 있으며, duration 필드는 그 특정 구간의 시간 길이 정보를 포함할 수 있다. 시간 길이는 초 단위로 표현될 수 있다. 예를 들어, 수신기(300)는 앞서 획득한 ACR Resulttype에 포함된 Trigger URL 및 Timestamp에 기초하여 timepstamp 이후 30분(600초) 이내인 시간 구간 내의 트리거를 요청하는 메시지를 생성하고, 트리거 서버로 전송할 수 있다. 이와 같은 요청 메시지에 포함되는 트리거 URL 및 시간 구간은 도 107에 도시된 바와 같이, http://www.atsc2com/content1/trigger?timestamp=2011%2F06%2F28T18%3A00%3A00&duration=600로 표현될 수 있다. 따라서, 본 발명의 실시 예에 따른 HTTP GET 포맷의 트리거 요청 메시지에서, 시간 구간은 name=value의 형식에 따라, timestamp=2011/06/28T18:00:00으로 지정될 수 있다.
도 108은 본 발명의 실시 예에 따른 HTTP POST 명령 포맷 기반 트리거 요청 메시지를 나타낸다.
HTTP에서 사용되는 POST 명령 포맷은 HTTP GET 명령 포맷과 같이, 그 메시지 헤더에 URL 구간을 포함할 수 있으며, 트리거 요청 메시지는 이와 같은 URL 구간에 상술한 트리거 URL를 포함할 수 있고, 별도의 timestamp 필드를 메시지 바디에 포함할 수 있다. 본 발명의 실시 예에 따른 HTTP POST 명령 포맷에서, HTTP GET과 같이, Timestamp 필드는 특정 구간의 시작 시점을 나타낼 수 있으며, duration 필드는 그 특정 구간의 시간 길이 정보를 포함할 수 있다. 시간 길이는 초 단위로 표현될 수 있다.
예를 들어, 수신기(300)는 앞서 획득한 ACR Resulttype에 포함된 Trigger URL 및 Timestamp에 기초하여 timepstamp 이후 30분(600초) 이내인 시간 구간 내의 트리거를 요청하는 메시지를 생성하고, 트리거 서버로 전송할 수 있다. 이와 같은 요청 메시지에 포함되는 트리거 URL 및 시간 구간은 도 108에 도시된 바와 같이 표현될 수 있다. HTTP POST의 경우에도 시간 구간은 name=value의 형식에 따라, timestamp=2011/06/28T18:00:00와 같이 지정될 수 있다.
이와 같이, 수신기(300)는 트리거 URL 및 시간 구간 정보를 포함하는 트리거 요청 메시지를 HTTP GET 또는 POST 명령 포맷에 따라 생성하고, 트리거 서버로 전송할 수 있다. HTTP 명령 포맷은 IP 네트워크에서 사용될 수 있는 효율적인 정보 요청 방식일 수 있다. 따라서, 수신기(300)는 트리거 요청 메시지를 위와 같은 HTTP GET 또는 POST명령 포맷을 이용하여 IP 네트워크를 통해 전송할 수 있다.
한편, 트리거 서버는 수신기(300)로부터 수신한 트리거 요청 메시지에 따라 트리거 요청 결과 메시지를 생성하고, 수신기(300)로 전송할 수 있다.
여기서, 트리거 요청 결과 메시지는 트리거를 포함할 수 있으며, 트리거 서버가 제공 가능한 트리거들의 목록 정보를 포함할 수도 있다.
또한, 트리거는 복수일 수 있으며, 그 개수가 일정 값 이상인 경우에는 트리거 서버는 시간 구간을 분할하여 복수의 트리거를 분할 전송할 수 있다. 이에 따라, 트리거 요청 결과 메시지는 트리거 서버에서 현재 전송된 트리거들의 트리거 시간 구간 정보를 포함할 수도 있다. 그리고, 트리거 서버에서 제공 가능한 트리거들의 시간 구간과 수신기(300)에서 요청한 시간 구간은 차이가 발생할 수 있다. 따라서, 트리거 요청 결과 메시지에 포함된 트리거 시간 구간 정보는 트리거 요청 메시지에 포함된 시간 구간과 같을 수도 있으며, 상이할 수도 있다.
도 109 내지 도 110은 본 발명의 일 실시 예에 따른 트리거 요청 결과 메시지의 XML 스키마 다이어그램을 나타낸다.
도 109 내지 도 110에 도시된 바와 같이, 트리거 요청 결과 메시지는 XML 형식을 가질 수 있으며, 앞서 설명한 XML 형태의 트리거를 포함할 수 있다.
일 실시 예에서, 트리거 요청 결과 메시지에 포함되는 TDO-Triggers 엘리먼트는 from 속성, to 속성 및 TimeOffset 속성 중 적어도 하나를 포함할 수 있으며, TDO-Trigger 엘리먼트는 from 속성, to 속성 중 적어도 하나를 포함할 수 있다.
TDO-Triggers 엘리먼트에 포함된 from 속성, to 속성 필드는 트리거 요청 결과에 포함된 트리거들의 시간 구간을 나타낼 수 있다. 예를 들어, 트리거 요청 결과에 포함된 트리거들의 트리거 시간이 A 부터 B 사이의 구간인 경우, from 속성 값은 A일 수 있으며, to 속성 값은 B일 수 있다.
그리고, TDO-Trigger 엘리먼트에 포함된 from 속성, to 속성 필드는 트리거 요청 결과에 포함된 트리거들 중 특정 서비스에 대응되는 트리거들의 트리거 시간에 따른 특정 시간 구간을 나타낼 수 있다. 특정 서비스에 대응되는 트리거들의 트리거 시간이 A 부터 B 사이의 구간인 경우, from 속성 값은 A일 수 있으며, to 속성 값은 B일 수 있다. 여기서, TDO-Triggers 엘리먼트가 다른 from 속성 값과 to 속성 값을 나타내는 경우에도, TDO-Trigger 엘리먼트의 from 속성 및 to 속성 값이 TDO-Triggers 엘리먼트의 from 속성 및 to 속성 값보다 우선할 수 있다.
한편, 도 109에 도시된 바와 같이, TDO-Triggers 엘리먼트는 TimeOffset 속성 필드를 포함할 수 있다. TimeOffset 속성 필드는 다음 트리거 요청까지 기다려야 하는 대기 시간을 나타낼 수 있다. 트리거 서버는 복수의 수신기(300)로부터 트리거 요청 메시지를 수신할 수 있으며, 트리거 요청 메시지의 증가로 인한 과부하가 나타날 수 있다. 따라서, 트리거 서버는 TimeOffset 속성 필드를 이용하여, 각 수신기(300)의 트리거 요청 메시지 전송 시간을 제한함으로써 일정 시간 간격으로 분산시킬 수 있다. 예를 들어, 수신기(300)는 트리거 요청 결과 메시지로부터 from 속성 및 to 속성 필드를 추출하여 현재 수신한 트리거들의 시간 범위를 획득할 수 있으며, TimeOffset 속성 필드를 추출하여 대기 시간 정보를 획득하고, 다음 트리거 요청 메시지 전송시까지 일정 시간을 대기할 수 있다. 이와 같은 대기 시간은 트리거 서버에 의해 지정될 수 있다. 트리거 서버는 각 수신기(300)마다 별도의 TimeOffset 값을 지정할 수 있다. 또한, 트리거 서버는 트리거 요청 결과 메시지를 이용하여 TimeOffset 시간 구간 이내에 랜덤한 시간을 대기할 것을 수신기(300)지시할 수 있다. 트리거 요청 결과 메시지에 랜덤 시간 대기가 지시된 경우, 수신기(300)는 0 내지 TimeOffset의 시간 구간에서 무작위 시간을 결정하고, 결정된 시간만큼 다음 트리거 요청 메시지 전송을 대기할 수 있게 된다.
한편, 도 109 내지 도 110을 참조하여 도 106의 흐름도를 이어서 설명한다.
이후, 수신기(300)는 수신한 트리거 요청 결과로부터 시간 구간 정보 및 대기 시간 정보를 획득한다(S9017).
앞서 설명한 바와 같이, 수신기(300)는 트리거 서버로부터 트리거 요청 결과 메시지를 HTTP Response 포맷으로 수신할 수 있다. 이와 같은 트리거 요청 결과 메시지는 도 109 내지 도 110에서 나타나는 XML포맷을 가질 수 있으며, XML포맷의 트리거들을 포함할 수 있다.
그리고, 트리거 요청 결과 메시지는 앞서 설명한 바와 같이, 트리거들이 실행될 시간 구간 정보를 포함할 수 있으며, 다음 트리거 요청 메시지 전송에 대한 대기 시간 정보를 포함할 수 있다.
그리고, 수신기(300)는 대기 시간 정보에 기초하여 일정 시간 이후에 다음 트리거 요청 메시지를 트리거 서버로 전송한다(S9019).
앞서 설명한 바와 같이, 트리거 요청 결과 메시지는 대기 시간 정보를 포함할 수 있다.
따라서, 수신기(300)는 트리거 요청 결과 메시지에서 지시하는 대기 시간에 기초하여 일정 시간을 대기하고, 일정 시간 이후에 다음 트리거 요청 메시지를 생성하여 트리거 서버로 전송할 수 있다. 이에 따라, 수신기(300)가 복수인 경우에도 트리거 요청 메시지의 전송이 분산됨으로써 네트워크의 트래픽을 감소시킬 수 있게 된다.
또한, 수신기(300)는 트리거 요청 결과 메시지에 포함된 from속성, to 속성에 기초하여, 현재 수신되지 않은 시간 구간에 대한 다음 트리거 요청 메시지를 생성하고, 트리거 서버로 전송할 수 있다.
이와 같이, 수신기(300)는 트리거 서버와의 통신을 통해 시간 구간이 지정된 트리거를 지속적으로 수신할 수 있게 되므로, 보다 효율적인 트리거의 송수신이 이루어질 수 있으며, 이에 따른 방송 서비스에 대한 부가 서비스의 효과적인 제공이 가능하게 된다.
한편, 컨텐트 아이템이 NDO 또는 TDO와 같은 DO(declararive object)인 경우, 그 DO를 수신기(300)가 제어하기 위한 각종 파라미터를 포함하는 DO에 대한 정보는 NRT-IT의 컨텐트 디스크립터(content_descriptor)를 이용하여 나타낼 수 있다. 특히, 컨텐트 디스크립터는 이와 같은 DO를 위한 추가 메타데이터를 포함할 수 있으며, DO를 위한 메타데이터를 포함하는 컨텐트 디스크립터를 DO 디스크립터(DO descirptor)라고 할 수 있다.
도 111은 본 발명의 일 실시 예에 따른 DO 디스크립터를 나타낸다.
도 111에 도시된 바와 같이, DO 디스크립터는 디스크립터 태그, 디스크립터 길이, DO 식별자, DO 버전, test DO, visible UI, handles configuration changed, handles externally controlled viceo 및 persistent storage 필드를 포함할 수 있다.
이와 같은 DO descriptor의 각 필드를 통해 수신기(300)는 NRT-IT를 통해 시그널링 되는 DO를 위한 추가 메타데이터를 획득할 수 있으며, 수신기(300)는 이에 기초하여 DO를 관리 및 제어할 수 있다.
수신기(300)는 DO_identifier를 이용하여, 각 DO를 유일하게 식별할 수 있다. 그리고, 수신기(300)는 DO_identifier를 이용하여 특정 채널에 대해 미리 저장된 DO를 다른 채널에서 로드할 수 있게 된다. 방송국은 복수개의 물리적 채널 혹은 virtual channel을 소유할 경우 특히 유용하게 DO 식별자를 사용할 수 있다. 또한, 한 채널 내에서만 DO가 이용되는 경우라 할지라도 오랜 기간 동안 사용될 DO의 경우 전송 세션에 구애받지 않고 식별이 가능하게 되는 장점이 있다.
test_do는 해당 DO가 test 목적으로 이용되는지를 나타내는 flag일 수 있다.
visible_UI는 DO가 visible한 UI를 가지고 있는 여부를 나타내는 1비트 부호없는 정수일 수 있다.
persistent_storage는 DO에 필요한 저장 공간을 나타낼 수 있다. 수신기(300)는 공간이 부족할 경우 해당 DO의 실행을 하지 않도록 제어하거나, 실행을 하되 일부 기능에 제약이 있는 상태로 실행할 수 있으며, 공간 부족에 대하여 사용자에게 알려줄 수도 있다.
한편, 송신기(200)는 NRT 서비스를 구성하는 컨텐트 아이템 또는 파일에 대응하는 획득 타입의 타임 슬롯 디스크립터를 수신기(300)로 전송할 수 있다.
이하에서는, 도 112를 참조하여 본 발명의 일 실시 예에 따라 구성한 타임 슬롯 디스크립터를 설명한다.
도 112는 본 발명의 일 실시 예에 따라 구성한 타임 슬롯 디스크립터의 비트 스트림 신택스를 도시한 것이고, 도 113은 타임 슬롯 디스크립터의 서브 필드들의 내용을 도시한 도면이다.
도 112 및 113을 참조하면, 송신기(200)는 획득 타입 타임 슬롯 디스크립터를 생성하여 NRT-IT의 컨텐트 레벨 디스크립터 루프에 삽입할 수 있다. 이때, 하나 이상의 획득 타입 타임 슬롯 디스크립터들이 컨텐트 레벨 디스크립터 루프에 존재할 수 있다. 획득 타입 타임 슬롯 디스크립터에 의하여 부호화된 각각의 시간 구간은 해당 컨텐트 아이템을 획득할 수 있는 시간을 나타낸다.
도 113을 참조하면, 획득 타입 타임 슬롯 디스크립터의 타임 슬롯 파라미터 필드(time_slot_params)는 획득 시간 파라미터(acquisition_time)를 포함할 수 있다. 획득 시간 파라미터는 해당 시간 구간 동안 적어도 하나의 완전한 컨텐트 아이템 인스턴스가 전송됨을 보장하는데 필요한 최소한의 시간 구간 길이를 나타낸다.
다른 실시 예에서, 송신기(200)는 실행 타입 타임 슬롯 디스크립터를 생성하여 NRT-IT의 컨텐트 레벨 디스크립터 루프에 삽입할 수 있다. 이때, 하나 이상의 실행 타입 타임 슬롯 디스크립터들이 컨텐트 레벨 디스크립터 루프에 존재할 수 있다. 실행 타입 타임 슬롯 디스크립터는 해당 타임 슬롯이 해당 컨텐트 아이템을 실행할 수 있는 시간 구간을 나타냄을 시그널링할 수 있다.
이하, 도 113을 참조하여 본 발명의 또 다른 실시 예에 따라 구성한 TDO 인에이블 타입의 타임 슬롯 디스크립터를 설명한다.
또 다른 실시 예에서, 송신기(200)는 TDO 인에이블 타입 타임 슬롯 디스크립터를 생성하여 NRT-IT의 컨텐트 레벨 디스크립터 루프에 삽입할 수 있다.
이와 같이, 수신기(300)는 타임 슬롯 파라미터 정보에 기초하여 해당 컨텐트 아이템의 획득 슬롯이 존재하는 시간에 FLUTE 세션을 통해 해당 컨텐트 아이템의 파일을 획득할 수 있다. 수신기(300)는 획득 슬롯을 통해 해당 컨텐트 아이템의 획득 구간을 인식함으로써, 언제 해당 컨텐트 아이템의 파일을 획득할 수 있는지 알 수 있다. 예컨대, 수신기(300)는 해당 컨텐트 아이템의 획득 구간 내의 임의의 시점부터 획득 시간 파라미터의 정보에 기초하는 시간 동안 해당 컨텐트 아이템이 파일을 획득할 수 있다. 이때, 수신기(300)는 앞서 도 24를 참조하여 설명한 바와 같이, 해당 FLUTE 세션 내의 FDT를 읽어 해당 파일에 대한 Content-ID attribute 필드가 해당 컨텐트 아이템 식별자(content_id)와 일치하면 해당 파일 또는 오브젝트를 수신할 수 있다.
한편, 모든 TDO와 NDO는 적어도 하나의 어플리케이션 도메인(application domain)에 속할 수 있다. 어플리케이션 도메인은 하나 또는 그 이상의 전체 도메인 이름(FQDN, fully qualified domain name)으로 나타낼 수 있다. 전체 도메인 이름은 TDO 또는 NDO를 구성하는 모든 파일 또는 페이지의 전치(prefix) 형태로 구성될 수 있다.
예를 들어, TDO 또는 NDO가 속한 기본 어플리케이션 도메인은 그 TDO 또는 NDO를 구성하는 NRT 컨텐트 아이템의 엔트리 파일에 대한 전체 도메인 이름(FQDN)으로 지정될 수 있다. 그 엔트리 파일이 전체 도메인 이름을 가지지 않는 경우(예를 들어 엔트리 파일에 대응되는 FLUTE FDT 내 content-location이 절대 URI가 아닌 상대 URI값을 갖는 경우), 수신기(300)는 그 엔트리 파일에 대응되는 NRT 컨텐트 아이템에 대한 NRT-IT의 디스크립터 루프로부터 어플리케이션 바운더리 디스크립터(application_boundary_descriptor)를 획득할 수 있다.
어플리케이션 바운더리 디스크립터는 NRT-IT에 포함될 수 있으며, DVB 표준 TS 102 809에서 정의된 바와 같은 형태를 가질 수 있다. 예를 들어, 어플리케이션 바운더리 디스크립터는 TDO 또는 NDO에 대한 어플리케이션 도메인의 전체 도메인 이름(fully qualified domain name)을 포함하는 적어도 하나의 URI 집합을 포함할 수 있다.
따라서, 수신기(300)는 TDO 또는 NDO에 대해 지정된 어플리케이션 도메인 밖 (outside)으로부터 로드된 어떤 문서도 신뢰성 없는 것으로 판단할 수 있다. 예를 들어, 수신기(300)는 어플리케이션 바운더리 디스크립터에 기초하여 어플리케이션 도메인 밖으로부터 수신되는 어떤 HTML 또는 ECMA 스크립트 파일들도 로드되지 않도록 방지할 수 있다.
도 114는 본 발명의 실시 예에 따른 어플리케이션 바운더리 디스크립터를 나타낸다.
도 114를 참조하면, 본 발명의 실시 예에 따른 어플리케이션 바운더리 디스크립터는 디스크립터 태그, 바운더리 익스텐션 개수, 바운더리 익스텐션 길이, 바운더리 익스텐션 바이트를 포함할 수 있다.
바운더리 익스텐션 바이트(boundary_extension_byte)는 URL 프리픽스(prefix) 형태의 적어도 하나의 URL을 포함할 수 있다. 수신기(300)는 이 프리픽스와 매칭되는 모든 URL을 본 어플리케이션 바운더리 디스크립터가 나타내는 어플리케이션 바운더리 내에 포함된 것으로 판단할 수 있다. 예를 들어, URI 프리픽스는 스트릭트(strict) 프리픽스를 포함할 수 있다. 따라서, URI 프리픽스는 'www.example.com' 대신에 'http://www.example.com'을 포함할 수 있으며, 'http://www.example.com/epg/'와 같은 컴포넌트의 경로를 포함할 수 있다. 수신기(300)는 이 프리픽스에 의해 주어지는 최소 레벨의 입도(Granularity)에 기초하여 플랫폼 사양(specification)을 획득할 수 있다.
이와 같이, 송신기(200)는 하나 이상의 어플리케이션 도메인을 본 발명의 실시 예와 같은 어플리케이션 바운더리 디스크립터를 통해 시그널링할 수 있다. 이 경우 수신기(300)는 가장 처음 획득되는 어플리케이션 도메인을 기본 어플리케이션 도메인으로 설정할 수 있다.
한편, 송신기(200)는 이와 같은 어플리케이션 바운더리 디스크립터 외에도, 앞서 본 발명의 실시 예에서 제안한 DO 디스크립터를 이용하여 어플리케이션 도메인을 수신기(300)에 시그널링할 수도 있다.
도 115는 본 발명의 다른 일 실시 예에 따라 확장된 DO Descriptor를 나타낸다.
도 115를 참보하면 본 발명의 다른 일 실시 예에 따라 확장된 DO Descriptor는 앞서 설명한 필드 외에, 어플리케이션 도메인 개수, 어플리케이션 도메인 길이 및 어플리케이션 도메인 바이트 필드들을 더 포함할 수 있다.
어플리케이션 도메인 바이트(application_domain_byte)는 어플리케이션 도메인을 나타내는 URL 프리픽스(prefix) 형태의 적어도 하나의 URL을 포함하는 필드일 수 있다. 수신기(300)는 이 프리픽스와 매칭되는 모든 URL을 본 DO 디스크립터가 나타내는 어플리케이션 바운더리 내에 포함된 것으로 판단할 수 있다. 예를 들어, URI 프리픽스는 스트릭트(strict) 프리픽스를 포함할 수 있다. 따라서, URI 프리픽스는 'www.example.com' 대신에 'http://www.example.com'을 포함할 수 있으며, 'http://www.example.com/epg/'와 같은 컴포넌트의 경로를 포함할 수 있다. 수신기(300)는 이 프리픽스에 의해 주어지는 최소 레벨의 입도(Granularity)에 기초하여 플랫폼 사양(specification)을 획득할 수 있다.
이와 같이, 송신기(200)는 하나 이상의 어플리케이션 도메인을 본 발명의 다른 일 실시 예와 같은 DO 디스크립터를 통해 시그널링할 수 있다. 이 경우 수신기(300)는 가장 처음 획득되는 어플리케이션 도메인을 기본 어플리케이션 도메인으로 설정할 수 있다.
이와 같은 DO 디스크립터에 기초하여, 수신기(300)는 어플리케이션 도메인 정보를 획득할 수 있다. 수신기(300)는 어플리케이션 도메인 정보에 따라 DO 실행에 대한 권한 관리를 수행할 수 있다. 따라서 수신기(300)는 어플리케이션 도메인 정보에 따라, DO가 접근하고자 하는 리소스가 어플리케이션 도메인 정보에 의해 지정된 어플리케이션 도메인의 범위 밖에 위치할 경우, 접근을 거부할 수 있다. 또한, 수신기(300)는 DO가 접근하고자 하는 리소스가 지정된 어플리케이션 도메인의 범위 밖에 위치할 경우 접근을 허용하면서 미신뢰(Untrusted) 도메인에 진입한 것으로 처리하여 어플리케이션 도메인 내 리소스에 대한 접근을 차단할 수 있다.
한편, 앞서 설명한 바와 같이, 수신기(300)는 자동 컨텐츠 인식(automatic contents recognition, ACR)을 이용하여 현재 시청 중에 채널에 대한 부가 서비스를 IP를 통해 수신할 수 있다. 부가 서비스는 예를 들어, 향후 서비스될 ATSC 2.0 컨텐트를 포함할 수 있다.
따라서, 부가 서비스는 ATSC 컨텐트와 트리거 등을 획득할 수 있는 시작 포인트와 같은 컨텐트 서버의 URL을 포함할 수 있으며, 그 컨텐트 서버가 인식할 수 있는 가상 채널 식별자를 포함할 수 있으며, 최근 시청한 채널의 적어도 하나의 방송 프레임에 대한 타임 스탬프를 포함할 수 있다.
그리고, 부가 서비스는 시그널링 테이블을 포함할 수 있다. 시그널링 테이블은 SMT, NRT-IT, TFT(Text fragment table), 구매 가능한 컨텐트 아이템을 나타내는 PIT(Purchase Item table) 및 구매 및 채널 약관을 타나내는 PTCT(Purchase Terms and Channels table)을 포함할 수 있으며, 후술할 인터넷 위치 테이블(ILT, internet locations table) 를 포함할 수 있다.
이와 같은 시그널링 테이블들은 각 가상 채널의 서비스 시그널링 채널에 대응될 수 있다. 예를 들어, NRT-IT 와 TFT를 제외한 다른 테이블들은 하나의 서비스 시그널링 채널에 하나씩 대응될 수 있다. 또한, 각 가상 채널에 포함된 NRT 서비스 각각에 대응하여 각각 하나의 NRT-IT가 존재할 수 있다. NRT-IT는 다양한 길이의 연속적인 NRT-IT 인스턴스들로 구성될 수 있으며, 현재 시간 간격으로부터 시작되는 복수의 시간 간격들을 커버할 수 있다. 또한, 각 NRT 서비스에 대응하여 TFT가 선택적으로 나타날 수 있다. TFT는 그 서비스에 대한 NRT-IT 인스턴스에 일대일 대응되도록 TFT 연속적인 인스턴스들로 구성될 수 있다.
그리고, 수신기(300)는 앞서 설명한 URL 및 채널 식별자를 획득한 후, 다음과 같은 방식으로 부가 서비스를 IP를 통해 수신할 수 있다.
먼저, 수신기(300)는 획득한 URL에 기초하여 컨텐트 서버로부터 시그널링 테이블을 수신할 수 있다. 예를 들어, 수신기(300)는 현재 시간 구간을 커버하는 NRT-IT 인스턴스와 TFT 인스턴스를 수신할 수 있다. 또한, 수신기(300)는 다음 시간 구간을 커버하는 NRT-IT 인스턴스와 TFT 인스턴스를 수신할 수 있다. 수신기(300)는 이와 같이 수신한 인스턴스들을 이용하여 현재 재생중인 프로그램과 관련된 TDO에 접근할 수 있다.
그리고, 수신기(300)는 수신한 NRT-IT에 포함된 URL들에 기초하여, 필요한 컨텐트 아이템을 수신할 수 있다.
또한, 수신기(300)는 인터넷 위치 테이블(ILT)에 포함된 URL들에 기초하여 트리거 스트림을 수신할 수 있다.
도 116은 본 발명의 실시 예에 따른 인터넷 위치 테이블을 나타낸다.
도 116을 참조하면, 인터넷 위치 테이블은 컨텐트 서버로부터 전송될 수 있으며, 위치 정의(locations defined) 필드, URL 기능 코드(function code) 필드 및 URL 필드를 포함할 수 있다.
URL 기능 코드 필드는 URL의 기능을 나타낼 수 있다. 예를 들어, URL 기능 코드가 000인 경우, URL의 기능은 데이터 수집일 수 있으며, 다른 웹 사이트 에서 사용되거나, TDO의 활성화를 위해 전달되는 변수를 나타낼 수 있다. 또한, URL 기능 코드가 001인 경우, 트리거 스트림을 제공하는 URL을 나타낼 수 있다.
따라서 수신기(300)는 이와 같은 위치 정의 필드의 URL에 기초하여 시청률 보고(audience reporting) 또는 트리거 스트림 수신 등을 수행할 수 있다. 이와 같은 ILT는 서비스 시그널링 채널을 통해 전송될 수 있을 뿐만 아니라, IP를 통해서도 전송될 수 있다. URL을 ILT와 같은 새로 정의된 테이블을 통해 전송함으로써, SMT의 디스크립터에 포함하여 전송하는 것보다 상대적으로 적은 사이클 빈도로 전송할 수 있으며, 매우 낮은 레벨에서 사용되는 대역폭 낭비를 줄일 수 있다.
그리고, URL에 의해 지정된 서버는 시청률 조사를 위한 사용량 보고(Usage Reporting) 서버일 수 있다. 이와 같은 사용량 보고 서버는 시청중인 채널에 대응하는 서비스 시그널링 채널에 포함되어 있는 가상 채널내에 포함된 Linear TV 서비스 / NRT 서비스 / NRT Content item (TDO 포함) 등에 대한 usage reporting을 수행할 수 있는 서버 주소를 나타낼 수 있다. 이 경우, ILT는 동일한 URL_Function_code 만을 갖도록 지정된 용도의 URL만을 묶어서 테이블로 구성될 수도 있으며, 복수의 URL_Function_code 값을 가질 수 있도록 모든 URL들이 제공되는 테이블을 구성될 수도 있다. 예를 들어, 수신기(300)는 트리거 스트림 URL들을 포함하는 ILT 테이블을 ILT-Trig (Internet Location Table Triggers)로, Usage reporting 서버의 URL을 포함한 테이블을 ILT-Usage (Internet Location Table Usage reporting) 로 구분할 수 있다.
한편, 이와 같은 부가 서비스를 인터넷을 통해 전송하기 위해, HTTP를 이용한 전송 방식이 사용될 수 있다. IETF 표준 RFC 6062이에서 정의된 바와 같이, HTTP 전송 방식에는 HTTP Short Polling, HTTP Long Polling 및 HTTP Streaming이 포함될 수 있다.
이 중에서, 부가 서비스 중 특히 트리거를 인터넷을 통해 전송하기 위해서는 바람직하게는 HTTP Short Polling 또는 HTTP Streaming이 사용될 수 있다.
HTTP Short Polling의 경우, 수신기(300)는 일정 간격 동안 HTTP 요청을 서버로 전송할 수 있다. 서버는 HTTP 연결 종료 전 마지막 요청까지의 각 요청들에 대응하여, 업데이트를 리턴한다. 시간 간격이 길어지는 경우, 수신기가 업데이트를 획득하는 지연 시간은 매우 길어질 수 있다. 시간 간격이 짧다면 HTTP/TCP 연결의 시작과 종료시 클라이언트와 서버간 전송되는 메시지의 불필요한 오버헤드가 많아질 수 있다.
이와 같은 HTTP Short Polling 은 미리 녹화된 방송과 같이, 미리 트리거 활성화 시간을 알 수 있는 경우에 유용하게 사용될 수 있다.
한편, HTTP Streaming의 경우, 수신기(300)가 최초(initial) 요청을 서버에 전송하면, 서버는 각 업데이트마다 지속되는(persistent) HTTP/TCP 연결을 오픈하고, 데이터 스트림으로 구성된 응답을 전송한다. 이 경우, 업데이트를 획득하는 지연 시간은 짧아질 수 있으며, 오베헤드도 줄일 수 있으나, HTTP/TCP 연결이 항상 오픈되어야 한다.
그리고, HTTP Streaming은 생방송과 같이, 미리 트리거 활성화 시간을 알 수 없는 경우에 유용하게 사용될 수 있다.
따라서, 트리거를 HTTP Short Polling 또는 HTTP Streaming으로 전송하는 경우, 전송 서버의 URL은 앞서 설명한 부가 서비스에 포함될 수 있고, 트리거에 포함될 수도 있으며, 앞서 설명한 ILT에 URL의 형태로 포함될 수도 있다. 수신기(300)는 어떤 방식으로든 서버의 URL을 획득하면, 이에 기초하여 재생중인 영상에 대응되는 시그널링 테이블들을 HTTP Short Polling 또는 HTTP Streaming으로 인터넷을 통해 수신할 수 있다.
본 발명의 실시 예에서, 수신기(300)는 HTTP polling method에 기반하여 지속적으로 서버에 시그널링 테이블 요청을 전송할 수 있으며, 서버로부터 업데이트된 시그널링 테이블을 획득할 수 있다.
도 117은 본 발명의 실시 예에 따른 시그널링 테이블의 질의 테이블을(Query terms for Signaling Table Requests)을 나타낸다.
도 117에 도시된 바와 같이, 수신기(300)는 SMT, 현재 또는 다음 NRT-IT 와 TFT 인스턴스들, ILT/Usage, ILT/Trig, PIT, 및 PTCT 중 적어도 하나의 시그널링 테이블을 서버에 요청할 수 있다.
도 117을 참조하여 질의 방식을 설명하면, 먼저 질의는 ?<chan_id>로 시작될 수 있다. 여기서, chan_id 는 가상 채널의 채널 번호를 나타낼 수 있다. chan_id는 특정 가상 채널에 대한 메이저 채널 번호의 10진 표기 형태를 포함할 수 있으며, 그 표기 뒤에는 마침표가 따라올 수 있다. 마침표 뒤에는 그 가상 채널에 대한 마이너 채널 번호의 10진 표기 형태가 뒤따를 수 있다.
그리고, 질의에는 <svc_id>가 포함될 수 있다. Svc_id는 특정 NRT 서비스의 서비스 식별자를 나타낼 수 있다. 서비스 식별자는 고위 바이트(high order byte)의 10진 표기, 마침표 및 하위 바이트(low order byte)의 10진 표기 순으로 나타낼 수 있다.
한편, 반복되는 시그널링 테이블 요청에 따른 오버헤드를 줄이기 위해, 테이블 요청에는 테이블 셋(SET)이 포함될 수 있다. 이와 같은 테이블 셋은, 예를 들어 도 117에 도시된 바와 같이 BASIC SET과 같이 표현될 수 있다.
예를 들어, 수신기(300)는 시그널링 테이블 요청 메시지에 Basic set을 요청할 수 있다. 이 요청을 수신한 경우, 서버는 현재 최신 버전의 모든 기본 테이블들을 전송할 수 있다. 예를 들어 기본 테이블은 SMT, current NRT-IT, current TFT, ILT/Usage, ILT/Trig, PIT, PTCT 중 적어도 하나를 포함할 수 있으며, 서비스 제공자 편의에 따라 다양한 셋을 할당할 수 있을 것이다.
한편, 수신기(300)는 이와 같은 시그널링 테이블을 전송하는 서버의 주소를 다양한 방식으로 획득할 수 있으며, 본 발명의 일 실시 에에 따른 ACR 방식이 사용될 수도 있으나 이에 한정되는 것은 아니다.
그리고, 수신기(300)는 이와 같은 질의 테이블에 기초하여 수신하고자 하는 가상 채널 또는 NRT 서비스에 대한 시그널링 테이블을 요청할 수 있다.
서버는 질의 테이블에 따른 시그널링 테이블 요청을 수신기(300)로부터 수신한 경우, 해당 테이블 또는 테이블 인스턴스를 응답으로 리턴할 수 있다. 여기서, 리턴되는 테이블 또는 테이블 인스턴스는 방송 스트림으로 전송되는 경우와 정확히 동일한 테이블 또는 테이블 인스턴스일 수 있다.
그리고, 테이블 또는 테이블 인스턴스가 복수의 섹션을 포함하는 경우에는, 서버에서 하나의 응답으로 리턴하는 테이블 또는 테이블 인스턴스는 그 복수의 섹션이 모두 연결된 형태를 가질 수도 있다.
그리고, 수신기(300)는 요청한 테이블이 수신되면 그 테이블로부터, 방송 스트림을 안테나로부터 수신한것과 동일하게, 모든 데이터 연관된 시그널링 정보를 획득할 수 있다. 따라서, 수신기(300)는 방송과 연관된 모든 NRT 서비스, 컨텐트 아이템들 및 트리거들에 대한 메타데이터를 획득할 수 있다. 또한, 수신기(300)는 획득한 메타데이터에 기초하여 모든 컨텐트 아이템을 구성하는 파일들의 위치 정보를 획득할 수 있으며, 그 파일들을 인터넷 연결을 통해 수신할 수 있다. 그리고, 수신기는 획득한 메타데이터에 기초하여 트리거 스트림이 전송되는 위치 정보를 획득할 수 있으며, 획득된 트리거 스트림 위치 정보에 기초하여 트리거 스트림을 인터넷 연결을 통해 수신할 수 있다.
한편, 이와 같은 HTTP Polling 방식만을 이용하는 경우, 수많은 HTTP request를 발생시켜 서버에 많은 부하를 줄 수 있다. 이를 위하여 본 발명의 실시 예에서는 HTTP streaming을 이용한 개선 방안을 제안할 수 있다.
첫 째로, 수신기(300)는 HTTP Polling으로 현재 최신 버전의 시그널링 테이블을 수신하면서, 업데이트 여부 또는 업데이트된 시그널링 테이블은 HTTP streaming으로 수신할 수 있다.
예를 들어, 수신기(300)는 HTTP polling 방식으로 시그널링 테이블을 수신하면서, HTTP streaming 방식으로 업데이트 여부를 알려주는 URL에 별도로 접속하여 업데이트 여부를 판단할 수 있다. 이와 같은 서비스 시그널링 채널 업데이트 스트리밍 URL(Service Signaling Channel Update streaming URL)은, 서버로부터 별도로 전송될 수 있으며, 예를 들어 Internet Location Table 등을 통해 제공될 수 있다. 이 경우 URL_Function_Code는 002와 같이 할당될 수 있다.
또한, 예를 들어 수신기(300)는 첫 접속의 경우에만 HTTP Polling 방식을 이용하고, 이후에는 HTTP streaming 을 통해 업데이트된 테이블을 수신할 수 있다. 업데이트된 테이블을 수신하기 위한 URL은 별도 전송될 수 있으며, ILT를 통해 전송 될 수도 있다.
둘 째로, 수신기(300)는 HTTP streaming을 통해 기본적으로 세션을 계속 열어두고 업데이트된 테이블이 존재할 때 마다 event를 수신할 수 있다. 수신기(300)가 처음 접속했을 때, 서버는 현재 최신 버전의 시그널링 테이블들을 모두 전송할 수 있으며, 그 이후로는 업데이트된 것만을 전송할 수 있다.
그리고, HTTP Streaming을 통해 시그널링 테이블 혹은 테이블의 갱신 여부를 전달하기 위해 서버는 다음과 같은 이벤트 형식의 메시지를 전송할 수 있다.
Updated_table_info 이벤트는 갱신된 테이블들의 리스트를 나타낼 수 있다. 이 이벤트의 data는 다음과 같은 형식을 가질 수 있다.
<table_name>[;<table_version>][, ...] : table_name은 업데이트된 테이블의 이름을 나타낼 수 있다. 테이블 이름은 HTTP Polling을 위해 도 117에서 도시한 query term과 동일한 테이블 이름일 수 있다. 또한 세미콜론을 통해 업데이트된 테이블의 버전을 선택적으로 나타낼 수 있으며, 복수의 테이블들을 쉼표로 구분하여 여러 개의 업데이트된 테이블들을 한 번에 나타낼 수도 있다.
updated_table 이벤트는 업데이트된 테이블 자체를 나타낼 수 있으며, 본 이벤트와 함께 업데이트된 테이블이 바로 수신기(300)로 전달될 수 있다. 이 경우 이벤트의 data는 바이너리 형태의 업데이트된 테이블들을 그대로 포함할 수 있고, 복수 개의 테이블의 경우 이어붙여서 수신기(300)로 전달될 수 있다. 한편, 본 이벤트를 HTTP response 내에 포함하기 위하여, 테이블들은 서버에서 URL encoding 형태로 인코딩되어 전송될 수 있다.
table_name 이벤트는 테이블 단위로 업데이트된 테이블의 이름을 나타낼 수 있다. 이 경우 수신기(300)는 수신된 이벤트 data는 이벤트 이름과 동일한 테이블에 대한 업데이트된 테이블임을 판단할 수 있다. 이 이벤트의 data 또한 URL encoding 형태로 서버에서 인코딩 되어 전송될 수 있다.
또한, 앞서 설명한 바와 같이, 수신기(300)는 HTTP polling 방식으로 테이블뿐만 아니라, 트리거를 요청할 수 있으며, HTTP GET 또는 HTTP POST를 이용하여 요청할 수 있다. 이에 대한 구체적인 설명은 도 106 내지 도 110에서 설명한 바와 같으므로 생략하도록 한다.
한편, 인터넷으로 전송되는 트리거의 활성화 타임스탬프는 서버측 시간에 상대적으로 결정될 수 있다.
예를 들어, 수신기(300)가 AV 세그먼트의 캡쳐를 시작한 시간이 수신기(300)시스템 시간 기준 특정 시점으로부터 상대적으로 tn 밀리초일 수 있다. 그리고, 서버로부터 수신된 AV 세그먼트의 방송 시각을 기준으로 한 특정 시점으로부터의 시작 시간이 상대적으로 tb 밀리초인 경우, 수신기(300) 시각과 방송 시각은 tn - tb 만큼 차이날 수 있다. 그리고, 인터넷으로부터 수신된 트리거의 활성화 타임스탬프가 tx(방송 시각 기준으로 측정된)인 경우, 수신기(300)에서 판단하는 트리거 활성화 시간은 tx + (tn -tb) 또는 tn + (tx-tb)일 수 있다.
따라서, 수신기(300)는 인터넷을 통한 트리거 요청에 있어서, 서버측 시각과 연관된 타임스탬프를 주기적으로 요청하는 것이 필요할 수 있다. 이에 따라, 본 발명의 실시 예에 따른 수신기(300)는 로컬 시간을 서버측 시각과 동기화시킬 수 있으며, 적절한 시간에 트리거를 활성화시킬 수 있게 된다.
이와 같은 본 발명의 일 실시 예에 따른 수신기(300)와 서버간 인터넷을 통한 트리거 또는 시그널링 테이블의 요청/응답 관계는 다음과 같다.
먼저, HTTP 요청에 있어서, 서버(예를 들어, 컨텐트 서버)는 가상 채널을 통해 베이스 URL을 포함하는 HTTP GET 요청을 수신하면, 이에 대응하여 트리거를 수신기(300)로 인터넷을 통해 전송할 수 있다.
이와 같은 HTTP GET 요청은 가상 채널 식별 정보, 시작 시간 정보 및 지속 시간 정보를 포함할 수 있으며, 다음과 같은 포맷을 가질 수 있다.
?chan=<chan_id>&start=<start_time>[&duration=<duration>]
chan_id는 가상 채널의 채널 번호를 나타낼 수 있으며, 마침표로 구분되는 메이저 채널 번호와 마이너 채널 번호의 10진법 표기를 포함할 수 있다.
start_time은 10진법의 밀리초(milliseconds) 시간을 나타낼 수 있다. Start time은 서버측 시각에 상대적일 수 있으며, 요청된 시간 구간의 시작 시간을 나타낼 수 있다.
Duration은 10진법의 초(seconds) 시간 구간을 나타낼 수 있다. Duration은 컨텐트 서버가 요청된 채널에 대한 전송 방식으로 Short Polling 방식을 사용하는 경우, 수신기(300)로부터 요청된 시간 구간의 길이를 나타낼 수 있다.
예를 들어, 수신기(300)는 요청 메시지 전송시 start_time에 현재 시간을 지정할 수 있다. Short polling 모드인 컨텐트 서버가 그 요청 메시지를 수신하여 수신기(300)로 응답한 경우, 수신기(300)는 그 응답에 의해 커버되는 시간 구간 종료 이전에 다음 요청을 서버로 전송함으로써 그 시간 구간 종료 이전에 다음 응답을 수신할 수 있다. 이 때, 수신기(300)는 다음 요청 메시지의 start_time에 이전 응답의 시간 구간 종료 시간을 지정하여 전송할 수 있다. 이에 따라 끊어지는 구간 없이 요청 및 응답 전송이 이루어 질 수 있다.
또한, 서버는 HTTP Short Polling 뿐만 아니라, HTTP Streaming을 통해 수신기(300)에 응답 메시지를 전송할 수도 있다. 서버는 두 가지 모드로 동작할 수 있으며, 두 가지 모드에 따라 전송되는 응답에는 8비트 부호없는 정수로 나타내는 트리거 길이 데이터와 32비트 부호없는 정수로 나타내는 트리거 활성화 시간 데이터가 포함될 수 있다. 트리거 활성화 시간은 앞서 설명한 바와 같이, 서버측 시간 기준으로 지정될 수 있다. 하나의 응답 메시지에 복수의 트리거가 중복될 수는 없다. 또한, 동기화되지 않은(asynchronous) 트리거가 응답 메시지에 포함된 경우, 수신기(300)는 요청 메시지의 start_time 이후 수신되는 방송 스트림에서 트리거가 최초 나타나는 시간을 활성화 시간으로 판단할 수 있다.
한편, 일 실시 예에서, 수신기(300)는 HTTP request의 헤더 중 Accept 헤더에는 text/stream-event 을 추가하여, HTTP streaming 형태의 이벤트를 수신할 수 있음을 서버에 알려줄 수 있다.
또한, 수신기(300)는 MIME type을 이용하여 서버에 트리거 또는 테이블 요청을 수행할 수도 있다. 예를 들어, 수신기(300)는 MIME type을 HTTP request의 Accept 헤더에 삽입하여 트리거 또는 테이블요청 정보를 명시할 수 있다. 서버는 HTTP response의 content-type 헤더를 이용하여, 서버로 전송하고자 하는 테이블 또는 트리거에 대한 정보를 나타낼 수도 있다. 예를 들어, 헤더에는 다음과 같은 메시지가 포함될 수 있다.
application/atsc2.0-ssc: 시그널링 채널의 정보(예를 들어 시그널링 테이블)를 나타냄.
application/atsc2.0-trigger: 트리거 정보를 나타냄
한편, 도 118은 인터넷을 통한 트리거 전송에 있어서, Short Polling 사용시 요청 및 응답간 타임라인을 나타낸다.
도 118을 참조하면, 컨텐트 서버가 HTTP Short Polling 모드로 동작하는 경우, 수신기(300)는 주기적으로 트리거 또는 테이블 요청을 수행할 수 있으며, 수신기는 주기적으로 응답 메시지를 전송할 수 있다.
컨텐트 서버가 HTTP Short Polling 모드로 동작하는 경우, 수신기(300)의 트리거 또는 테이블 요청에 대한 응답 메시지는 Polling: Duration=<duration>으로 시작할 수 있다. 여기서, <duration>은 응답 메시지에 의해 커버되는 지속 시간을 나타내는 10진수 초(in seconds)일 수 있으며, 하나의 개행 문자가 뒤따를 수 있다(followed by a line feed character). Duration은 수신기(300)로부터 요청된 duration과 동일할 수 있으며, 만약 수신기(300)의 요청에 duration이 없는 경우에는 컨텐트 서버에 의해 기본(default) duration이 설정되어 응답으로 전송될 수 있다.
그리고, 응답 메시지에는 <chan_id>에 의해 식별되는 트리거 또는 테이블들이 포함될 수 있다. 이 트리거 또는 테이블들은 방송 스트림을 통해 <start_time>으로부터 <duration> 시간 구간 동안 전송되도록 스케쥴된 트리거 또는 테이블들일 수 있다. 그리고, 인터넷으로 전송되는 트리거들은 방송 스트림을 통해 전송되는 순서대로 정렬될 수 있다.
그리고, 응답 메시지를 전송한 이후, 서버는 HTTP 연결을 종료할 수 있다.
한편, 수신기(300)는 HTTP response내의 이벤트가 Polling: Duration=<duration>으로 시작할 경우 HTTP 연결이 서버에 의해 종료되더라도 즉시 재접속을 시도하지 않고 Duration으로 지정된 시간에 대응하여 일정 시간 이후 접속을 다시 시도할 수 있다.
도 119는 인터넷을 통한 트리거 전송에 있어서, HTTP Streaming 사용시 요청 및 응답간 타임라인을 나타낸다.
도 119를 참조하면, 수신기(300)가 최초 트리거 스트림을 요청하면, 서버는 그 시점으로부터 이미 방송망을 통해 전송되었고, 수신기(300)가 처리해야한다고 판단되는 트리거를 먼저 HTTP streaming 세션을 통해 전송할 수 있다. 이 후 서버는 새로 발생하는 트리거들을 HTTP streaming 세션을 통해 방송망과 동일한 시점에 전달 할 수 있다.
컨텐트 서버가 HTTP streaming 모드로 동작하는 경우, 수신기(300)의 트리거 또는 테이블 요청에 대한 응답 메시지는 Streaming으로 시작할 수 있으며, 하나의 개행 문자가 뒤따를 수 있다(followed by a line feed character).
만약 컨텐트 서버에 요청된 <start_time>이 컨텐트 서버의 현재 시간(컨텐트 서버가 요청을 수신한 시간)보다 앞서는 경우, 최초 응답 메시지는 연속되는 트리거 셋을 포함할 수 있다. 이 연속되는 트리거 셋은 <chan_id>에 의해 식별되는 가상 채널에 대한 트리거들 중 <start_time>으로부터 컨텐트 서버의 현재 시간까지의 시간 구간동안 방송 스트림을 통해 전송된 트리거들을 모두 포함할 수 있다. 또한, 응답 메시지는 수신기(300)의 동일한 요청에 따라 방송 스트림을 통해 전송되는 트리거들을 더 포함할 수 있다.
그리고, 컨텐트 서버는 Streaming 모드로 동작하는 경우, 새로운 트리거가 전송되는 동안, HTTP 연결을 오픈으로 유지시킬 수 있다. 수신기(300)는 채널이 선택 해제될 때 연결이 종료됨을 판단할 수 있다.
한편, 컨텐트 서버에 요청된 <start_time>이 컨텐트 서버의 현재 시간(컨텐트 서버가 요청을 수신한 시간)보다 같거나 뒤인 경우, 최초 응답 메시지는 수신기(300) 요청에 따라 방송 스트림을 통해 전송되는 트리거들을 포함할 수 있다. 그리고, 컨텐트 서버는 Streaming 모드로 동작하는 경우, 새로운 트리거가 전송되는 동안, HTTP 연결을 오픈으로 유지시킬 수 있다. 수신기(300)는 채널이 선택 해제될 때 연결이 종료됨을 판단할 수 있다.
한편, 서버는 HTTP streaming으로 전송하는 경우, 다음과 같은 이벤트 형식으로 트리거를 전달 할 수 있다.
trigger event: 이 이벤트는 방송 채널을 통해 전송되는 트리거와 동일한 트리거를 나타낼 수 있다. 이 이벤트의 데이터 필드는 이하와 같은 구조를 가질 수 있다.
데이터 필드는 방송 채널로 전송되는 트리거에 대응되는 패킷의 페이로드와 동일한 값을 가질 수 있으며, URL 방식으로 인코딩 될 수 있다.
데이터 필드는 키:값의 쌍으로 구성되며, 쉼표로 구분되는 미정렬된 조합으로 구성될 수 있다. 키는 Timestamp에 대응될 수 있으며, 트리거 시간을 나타낼 수 있고, 값은 Trigger_data에 대응될 수 있으며, 방송 스트림으로 전송되는 트리거와 동일한 형식의 트리거 파라미터를 포함할 수 있다. 데이터 필드는 키 지정없이 그 값들이 쉼표로 구분만 되어서 순서대로 전송될 수도 있다.
pre-recorded-trigger event: 이 이벤트는 하나의 파일로 미리 기록된 컨텐트를 위한 복수의 트리거를 포함할 수 있다. 수신기(300)는 이 미리 기록된 컨텐트가 종료되기 전까지는 다른 트리거 이벤트를 무시하거나, 확인하지 않을 수 있다. 데이터 필드 구조는 앞서 설명한 이벤트와 같은 키:값의 쌍으로 구성되며, 쉼표로 구분되는 미정렬된 조합으로 구성될 수 있다. 키는 미리 기록된 컨텐트가 위치하는 Triggrer_file_URL에 대응될 수 있고, 값은 수신기(300)가 새로운 트리거를 수신하기 위한 Reconnect-time에 대응될 수 있다.
한편, 컨텐트 서버는 HTTP streaming과 HTTP short polling간 언제든지 전환을 수행할 수 있다. 이에 따른 수신기(300)에 대한 시그널링를 위해 다음과 같은 방식이 사용될 수 있다.
컨텐트 서버가 Short Polling 에서 Streaming으로 전환하는 경우, 컨텐트 서버는 수신기(300)의 지속적인 요청에 대응하여 Streaming 응답 메시지를 전송함으로써, 모드를 전환할 수 있다.
그리고, 컨텐트 서버가 Streaming 에서 Short Polling 으로 전환하는 경우, 컨텐트 서버는 수신기(300)와의 HTTP 연결을 종료하고, 이후, 수신기(300)0로부터 개시되는 요청에 대응하여 Short Polling 응답 메시지를 전송함으로써, 모드를 전환할 수 있다.
한편, 도 120은 본 발명의 다른 일 실시 예에 따른 트리거의 구조를 나타낸다.
도 120을 참조하면, 트리거는 버전, 트리거 식별자, 트리거 프로토콜 버전, 트리거 대상, 트리거 액션, 트리거 데이터 및 트리거 액션 시간을 포함할 수 있다. 또한, 트리거는 안전 영역 플래그 및 복수의 좌표 정보를 포함할 수 있다.
한편, 도 120에 도시된 바와 같이, 트리거는 안전 영역 플래그 및 복수의 좌표 정보를 포함할 수 있다.
안전 영역은 다른 영역에 비해 우선(override)되는 영역으로서, 수신기(300)는 안전 영역이 설정된 트리거에 의해 실행되는 TDO는 최우선으로 디스플레이함으로써, 다른 디스플레이 영역에 의해 가려지지 않도록 제어할 수 있다.
안전 영역 플래그(safe_area_flag)는 이 트리거에 의해 최우선적인(override) 안전 영역이 지정되는지 여부를 나타내는 1비트 필드일 수 있다.
왼쪽 x 좌표(left_x_coord)는 최우선 안전 영역(override safe area)의 왼쪽 하단 코너의 수평 좌표를 나타내는 8비트 필드일 수 있으며, 스크린의 왼쪽을 기준으로 오른쪽 수평 방향 백분율 값(0에서 100 사이의 정수)을 가질 수 있다.
오른쪽 x 좌표(right_x_coord)는 최우선 안전 영역(override safe area)의 오른쪽 상단 코너의 수평 좌표를 나타내는 8비트 필드일 수 있으며, 스크린의 왼쪽을 기준으로 오른쪽 수평 방향 백분율 값(0에서 100 사이의 정수)을 가질 수 있다.
왼쪽 y 좌표(left_y_coord)는 최우선 안전 영역(override safe area)의 왼쪽 하단 코너의 수직 좌표를 나타내는 8비트 필드일 수 있으며, 스크린의 하단을 기준으로 상단 수직 방향 백분율 값(0에서 100 사이의 정수)을 가질 수 있다.
오른쪽 y 좌표(right_y_coord)는 최우선 안전 영역(override safe area)의 오른쪽 상단 코너의 수직 좌표를 나타내는 8비트 필드일 수 있으며, 스크린의 하단을 기준으로 상단 수직 방향 백분율 값(0에서 100 사이의 정수)을 가질 수 있다.
한편, 도 121은 본 발명의 일 실시 예에 따른 트리거 스트림 디스크립터를 나타낸다.
송신기(200) 또는 서버는 트리거 스트림을 수신기(300)로 전송할 수 있으며, 트리거 스트림은 프로그램 엘리먼트의 ES(elementary stream) 레벨 디스크립터 루프(loop)로부터 획득될 수 있으며, 인터넷을 통해 전송될 수도 있다. 송신기(200) 또는 서버는 이와 같은 트리거 스트림에 대한 정보를 나타내는 디스크립터를 수신기(300)로 전송함으로써, 수신기(300)가 용이하게 트리거 스트림을 수신할 수 있도록 정보를 시그널링 채널을 통해 제공할 수 있다.
도 121에 도시된 바와 같이, 트리거 스트림 디스크립터는 디스크립터 태그, 디스크립터 길이, 트리거 스트림 식별자, 트리거 스트림 프로파일, 대상 서비스 개수 및 대상 서비스 식별자를 포함할 수 있다.
트리거 스트림 식별자는 트리거 스트림을 식별하기 위한 식별 정보를 포함할 수 있다. 예를 들어, 수신기(300)는 트리거 스트림 식별자에 기초하여, 이 디스크립터에 대응되는 PMT 섹션의 가상 채널로부터 트리거 스트림을 유일하게 식별할 수 있다.
대상 서비스 개수는 해당 가상 채널에 대응하여, 트리거 스트림에 전송되는 트리거들의 대상 컨텐트 아이템들을 포함하는 NRT 서비스의 개수를 나타내는 8비트 부호없는 정수일 수 있다.
대상 서비스 식별자는 트리거 스트림에 전송되는 트리거들의 대상 컨텐트 아이템들을 포함하는 NRT 서비스를 식별하기 위한 8비트 부호없는 정수일 수 있다.
한편, 수신기(300)의 서비스 매니저(350)는 Trigger를 수신하여 TDO로 전달할 수 있다.
앞서 설명한 바와 같이, TDO는 트리거에 의해 상태(state)가 천이될수 있으며, 트리거에 의해 방송사가 원하는 시간에 동기화된 서비스를 제공할 수 있게 된다. TDO가 이와 같은 서비스를 제공하기 위해서는 TDO가 트리거를 전달 받을 수 있어야 한다. 앞서 설명한 바와 같이, 수신기(300)의 서비스 매니저(350)는 수신한 트리거에 따라 대상 TDO에게 트리거 정보를 전달할 수 있다. 트리거 정보는 미리 정의된 API(application programming interface)를 통해서 TDO로 전달될 수 있다.
이하에서는 이와 같은 트리거 정보를 TDO에 전달할 수 있는 API에 대해 설명한다.
예를 들어, 수신기(300)의 서비스 매니저(350)는 TDO에 의해 지정된 API를 통해 TDO로 트리거를 전달할 수 있다. 따라서, TDO는 트리거를 수신하기 위한 트리거 오브젝트를 미리 선언할 수 있으며, 선언된 오브젝트를 통해 트리거를 수신할 수 있다.
본 발명의 실시 예에서, 트리거 오브젝트의 MIME 타입은 application/atsc-trigger일 수 있으며, 이 경우 TDO는 TDO가 실행되는 특정 페이지 내에서 트리거 오브젝트를 선언해야 트리거를 외부로부터 정상적으로 수신할 수 있게 된다.
한편, 일 실시 예에 따르면, TDO에 의해 선언된 트리거 오브젝트는 다음과 같은 이벤트를 등록할 수 있는 펑션 인터페이스를 포함할 수 있다.
Event: function onTriggerReceived(Trigger trigger)
그리고, 위 이벤트에서 나타나는 trigger 클래스는 TDO에 전달될 트리거 정보를 포함할 수 있다. 트리거 정보는 하기와 같은 특성(property)들을 포함할 있다.
특성(Property)은 readonly TriggerProtocolVersion protocol_version, readonly Number trigger_id, readonly Number trigger_version, readonly TriggerTarget trigger_target, readonly Number trigger_action, readonly Number trigger_version, readonly Object data 중 적어도 하나를 포함할 수 있다.
한편, 트리거 클래스 내에 선언된 TriggerProtocolVersion class과 TriggerTarget class는 각각 다음과 같은 특성을 포함할 수 있다.
TriggerProtocolVersion 클래스는 그 특성으로 readonly Number major_version, readonly Number minor_version을 포함할 수 있으며, TriggerTarget 클래스는 readonly Number service_id, readonly Number content_linkage를 그 특성으로 포함할 수 있다.
이와 같은 트리거 class에 정의된 Property는 방송망 또는 인터넷망을 통해 전달되는 trigger 데이터와 동일한 정보를 포함할 수 있다.
도 122는 본 발명의 실시 예에 따른 트리거 및 TDO API의 사용 예를 나타낸다.
도 122에 도시된 바와 같이, TDO에서 사용되는 트리거 API는 HTML 언어를 이용한 자바 스크립트로 구현될 수 있다.
앞서 설명한 바와 같이, TDO는 트리거의 수신을 위해 트리거를 오브젝트(triggerObject)로 선언할 수 있으며, 트리거가 수신되는 경우, onTriggerRecv라는 펑션을 수행함으로써, 트리거 오브젝트의 상술한 각 특성들을 설정하고, 갱신할 수 있다.
도 123은 본 발명의 다른 일 실시 예에 따른 트리거 스트림 연관 디스크립터(Trigger stream association descriptor)를 나타낸다.
앞서 설명한 바와 같이, 본 발명의 실시 예에 따르면, 수신기(300)는 트리거 스트림 디스크립터를 수신하여 트리거 스트림을 식별할 수 있으며, 트리거 스트림 디스크립터로부터 트리거 스트림에 대한 메타데이터를 획득할 수 있다. 또한, 트리거 스트림 디스크립터는 트리거 스트림에 연관된 NRT 서비스의 식별 정보를 선택적으로 포함할 수 있다.
그리고, 트리거 스트림에 연관된 NRT 서비스는 그 트리거 스트림에 포함된 트리거들의 트리거 대상 TDO에 대응되는 NRT 서비스들을 의미할 수 있다. 수신기(300)가 트리거 스트림과 NRT 서비스간의 연관 관계를 용이하게 파악하기 위해, 송신기(200)는 이와 같은 트리거 스트림과 NRT 서비스와의 연관 관계를 수신기(300)로 전송할 필요성이 있다.
따라서, 도 123에 도시된 바와 같이, 송신기(200)는 연관 관계를 나타내는 트리거 스트림 연관 디스크립터를 수신기(300)로 전송할 수 있다.
예를 들어, 송신기(200)는 트리거 스트림 연관 디스크립터를 SMT의 디스크립터 루프에 포함하여 전송할 수 있다. 수신기(300)는 트리거 스트림 연관 디스크립터가 위치한 디스크립터 루프에 대응되는 NRT 서비스와, 트리거 스트림 연관 디스크립터에 포함된 트리거 스트림 식별 정보에 기초하여, 트리거 스트림과 NRT 서비스가 연관되어 있음을 판단할 수 있다.
트리거 스트림 연관 디스크립터는, 도 123에 도시된 바와 같이, 디스크립터 태그, 디스크립터 길이, 트리거 스트림 개수 및 트리거 스트림 식별 필드들을 포함할 수 있다.
트리거 스트림 개수 필드는 이 디스크립터를 포함하는 SMT의 특정 NRT 서비스에 포함되는 TDO들을 트리거 대상으로 하고 있는 트리거 스트림의 개수를 나타내는 8비트 부호없는 정수일 수 있다.
트리거 스트림 식별 필드는 이 디스크립터를 포함하는 SMT의 특정 NRT 서비스에 포함되는 TDO들을 트리거 대상으로 하고 있는 트리거 스트림의 식별 정보를 나타내는 8비트 부호없는 정수일 수 있다.
따라서, 수신기(300)는 트리거 스트림 식별자에 기초하여, 트리거 스트림을 수신할 수 있으며, 트리거 스트림으로부터 트리거들을 수신할 수 있다. 그리고, 수신기(300)는 수신되는 트리거들을 앞서 말한 API를 이용하여 처리함으로써, TDO를 동작 시킬 수 있다.
이외에도 수신기(300)는 다양한 방법으로 트리거 스트림을 식별할 수 있다. 예를 들어 수신기(300)는 IP 망을 통해 트리거를 수신할 수 있다. 수신기(300)는 앞서 설명한 ILT (Internet Location Table)로부터 트리거 URL을 획득함으로써, 트리거를 수신할 수 있는 스트림을 식별할 수 있다. 그리고, 수신기(300)는 컨텐트 서버로부터 직접 전송되는 트리거를 IP망을 통해 수신할 수도 있다.
도 124는 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)을 나타내며, 도 125는 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)에서 사용되는 URL 기능 코드 값 테이블을 나타낸다.
본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)은 수신기(300)가 트리거 스트림을 인터넷을 통해 수신할 수 있는 주소 정보를 포함할 수 있다.
예를 들어, 도 124에 도시된 바와 같이, 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)은 도 116에 도시된 ILT에 부가하여, 트리거 스트림 식별자(trigger_stream_id) 필드를 더 포함할 수 있다. 그리고, 트리거 스트림 식별자에 대응되는 URL_fuction_code가 추가로 더 할당될 수 있다.
도 124를 참조하여 앞서 설명한 필드와 중복되는 필드는 생락하고, 부가되는 필드에 대해 설명하면 다음과 같다.
URL 기능 코드(URL_function_code) 필드는 본 ILT에서 제공되는 URL의 기능 또는 목적을 나타낼 수 있으며, 구체적인 의미는 도 125를 참조하여 설명하면 다음과 같다.
URL 기능 코드 값이 0인 경우, 사용 보고(Usage reporting)을 위한 URL임을 나타낼 수 있으며, 시청률 조사를 위해 사용될 수 있음은 앞서 설명한 바와 같다.
URL 기능 코드 값이 1인 경우, 본 발명의 다른 일 실시 예에 따라 인터넷을 통해 전송되는 트리거 스트림의 URL임을 나타낼 수 있다.
트리거 스트림 식별(trigger_stream_id) 필드는 이 필드가 포함된 인터넷 위치 루프에 대응되는 URL을 통해 전송되는 트리거 스트림을 식별하기 위한 8비트 필드일 수 있다.
이와 같이, 수신기(300)는 도 124에 도시된 본 발명의 다른 일 실시 예에 따른 인터넷 위치 테이블(ILT)을 수신할 수 있으며, 수신한 인터넷 위치 테이블로부터 트리거 스트림 식별 정보 및 이에 대응되는 주소 정보(URL 정보)를 획득할 수 있다. 그리고, 수신기(300)는 획득한 트리거 스트림 식별 정보와 주소 정보에 기초하여 트리거 스트림을 전송하는 서버에 접속할 수 있으며, 수신되는 트리거 스트림으로부터 트리거들을 획득할 수 있다.
한편, 본 발명의 또 다른 실시 예에 따르면, 수신기(300)는 트리거 뿐만 아니라, 방송 스트림의 부가 서비스에 대한 시그널링 테이블들을 인터넷망(IP망)을 통해 수신할 수 있다.
방송 스트림의 부가 서비스에 대한 시그널링 테이블은 앞서 설명한 바와 같이, 예를 들어 NRT-IT, SMT, TFT, ILT, PIT 및 PTCT 중 적어도 하나를 포함할 수 있다. 수신기(300)는 인테넛을 통해 이와 같은 시그널링 테이블들을 수신할 필요성이 있을 수 있다. 예를 들어, 수신기(300) 는 방송망을 통해 방송 스트림을 수신할 수 없는 경우, 현재 시청 중인 영상에 대한 부가 서비스를 위한 시그널링 테이블들을 인터넷을 통해 수신할 필요성이 있다. 따라서, 수신기(300)는 앞서 설명한 다양한 방식들을 이용하여, 현재 시청 중인 영상의 방송 정보를 획득하고, 이에 기초하여 부가 서비스의 시그널링 테이블들을 서버에 요청하여 수신할 수 있다.
이와 같은 본 발명의 일 실시 예에 따른 수신기(300)와 서버간 인터넷을 통한 시그널링 테이블의 요청/응답 관계는 다음과 같다.
부가 서비스를 시그널링하는 서버는, HTTP를 통해 특정 가상 채널에 대한 시그널링 테이블들을 전송할 수 있다. 따라서, 수신기(300)는 기본 URL을 포함하는 전체 URL 포맷으로 시그널링 테이블 요청 메시지를 서버에 전송할 수 있다. 특히, 시그널링 테이블 요청 메시지는 서버의 기본 URL 및 확장된 쿼리(query) 정보를 포함할 수 있다.
따라서, 수신기(300)는 서버의 기본 URL 및 확장된 쿼리(query) 정보를 이용하여, 특정 가상 채널에 대한 부가 서비스의 시그널링 테이블 요청 메시지를 전송할 수 있다. 예를 들어, 수신기(300)가 전송하는 요청 메시지는 가상 채널 식별 정보, 시작 시간 정보, 지속 시간 정보, 업데이트 정보 및 시그널링 테이블 정보를 포함할 수 있으며, 이를 나타내기 위한 쿼리(query)는 다음과 같은 포맷을 가질 수 있다. 또한, 쿼리는 수신기(300)에서 서버로 전송되는 요청 메시지의 전체 URL 포맷 끝 부분에 위치할 수 있다.
다시 말하면, 수신기(300)는 인터넷망을 통해 전체(full) URL 포맷의 시그널링 테이블 요청 메시지를 서버로 전송할 수 있다. 이 시그널링 테이블 요청 메시지는 적어도 하나의 쿼리 정보를 포함할 수 있으며, 쿼리 정보는 전체 URL 포맷 메시지의 끝 부분에 위치할 수 있다. 쿼리 정보는 제1 쿼리 정보 및 제2 쿼리 정보를 포함할 수 있다. 제1 쿼리 정보의 예는 다음과 같다.
?chan=<chan_id>&start=<start_time>[&duration=<duration>][&update]
chan_id는 가상 채널의 채널 번호를 나타낼 수 있으며, 마침표로 구분되는 메이저 채널 번호와 마이너 채널 번호의 10진법 표기를 포함할 수 있다.
start_time은 시작 시간을 나타낼 수 있다. start time은 서버측 시각 기준 상대적 시간일 수 있으며, 수신기(300)에서 요청한 시간 구간의 시작 시간을 나타낼 수 있다. 예를 들어, start_time은 밀리초(millisecond) 단위 시간일 수 있으나 이에 한정되는 것은 아니다.
duration은 시간 구간을 나타낼 수 있다. duration은 수신기(300)로부터 요청된 시간 구간의 길이를 나타낼 수 있다.
update는 수신기(300)의 요청이 업데이트를 위한 것인지를 나타내는 boolean 플래그일 수 있다. 만약 수신기(300)가 전송한 요청에 update 정보가 없는 경우, 그 요청은 수신기(300)에서 전송되는 최초(initial) 요청임을 나타낼 수 있다. 수신기(300)가 전송한 요청에 update 정보가 존재하는 경우에는 그 요청은 시그널링 테이블의 업데이트를 위한 것임을 나타낼 수 있다.
예를 들어, 수신기(300)는 요청 메시지 전송시 제1 쿼리 정보를 지정할 수 있다. 수신기(300)는 start_time에는 시청중인 영상의 현재 시간을 지정할 수 있고, duration에는 수신하고자 하는 테이블들의 시간 구간을 지정할 수 있으며, update에는 업데이트를 위한 것인지 여부를 표시할 수 있다.
특히, 수신기(300)는 현재 시청 중인 영상의 비디오 프레임이 전송되었던 방송국 측의 시간을 획득하고, 그 시간을 start_time으로 지정할 수 있다.
그리고, 시그널링 서버가 그 요청 메시지를 수신하여 수신기(300)로 응답한 경우(시그널링 테이블들을 전송한 경우), 수신기(300)는 그 응답에 의해 커버되는 시간 구간 종료 이전에 다음 요청을 서버로 전송함으로써 그 시간 구간 종료 이전에 다음 응답을 수신할 수 있다. 이 때, 수신기(300)는 다음 요청 메시지의 start_time에 이전 응답의 시간 구간 종료 시간을 지정하여 전송할 수 있다. 이에 따라 끊어지는 구간 없이 요청 및 응답 전송이 이루어 질 수 있다.
도 126 및 도127은 본 발명의 실시 예에 따른 시그널링 테이블 요청 메시지의 제2 쿼리 정보 및 응답 관계의 실시 예들을 나타낸다.
수신기(300)가 인터넷망을 통해 전송하는 시그널링 테이블 요청 메시지는 추가적인 제2 쿼리 정보를 이용하여 더 확장될 수 있다.
수신기(300)는 도 126 또는 도 127에 도시된 바와 같이, 제2 쿼리 정보에 수신하고자 하는 테이블 정보를 포함할 수 있다. 이와 같은 제2 쿼리 정보는 전체 URL 포맷으로 서버에 전송되는 시그널링 테이블 요청 메시지의 제1 쿼리 정보 이후 끝 부분에 위치할 수 있다.
예를 들어, 수신기(300)는 &table=SMT와 같이, 요청 메시지 끝 부분에 특정 테이블을 지정함으로써, 수신하고자 하는 테이블 정보를 요청 메시지에 삽입할 수 있다.
svc_id는 제1 쿼리 정보에 포함된 가상 채널로 전송되는 NRT 서비스의 서비스 식별자를 나타낼 수 있으며, 마침표로 구분되는 고차(high order) 바이트와 저차(low order) 바이트의 10진법 표기로 표현될 수 있다.
그리고, 제2 쿼리 정보는 선택적으로 사각 브라켓(bracket, [...])들을 포함할 수 있다. 만약 사각 브라켓 안에 &svc 기재가 존재하지 않는 경우, 제2 쿼리 정보는 해당 가상 채널 내 전송되는 모든 NRT 서비스에 대한 시그널링 테이블들을 수신기(300)가 요청함을 나타낼 수 있다. 수신기(300)는 특정 NRT 서비스에 대한 시그널링 테이블들을 요청하는 경우에만 사각 브라켓 안에 &svc 기재 및 svc_id를 삽입함으로써 NRT 서비스를 지정할 수 있다.
한편, Curret NRT-IT와 Current TFT는 제1 쿼리 정보내 start time에 의해 지정된 시간 구간 내 존재하는 테이블 인스턴스를 나타낼 수 있다. 그리고, Next NRT-IT와 Next TFT는 Current NRT-IT와 Current TFT에 의해 커버되는 시간 구간 이후의 다음 시간 구간의 테이블 인스턴스들을 나타낼 수 있다. Future NRT-IT 및 Future TFT는 다음 시간 구간 이후에 방송 스트림을 통해 전송될 테이블 인스턴스들을 나타낼 수 있다.
여기서, 제2 쿼리 정보가 NRT-IT 또는 TFT를 포함하는 경우, 요청을 수신한 서버는 제1 쿼리 정보에서 <start_time>과 <duration>으로 지정된 시간 구간을 커버할 수 있는 NRT-IT 또는 TFT 인스턴스 중 적어도 하나를 선택적으로 전송함으로써 효율적인 테이블 전송을 수행할 수 있다.
한편, 테이블 요청을 하나씩 반복 전송함에 따른 오버헤드가 발생할 수 있으므로, 수신기(300)는 복수의 시그널링 테이블들을 셋(SET)으로 구분하여 한번에 요청할 수도 있다. 그리고, 복수의 부가 서비스에 대한 시그널링 테이블들은 기본 셋, 확장 셋 및 전체 셋으로 구분될 수 있다.
기본 셋은 제1 쿼리 정보에 의해 특정된 가상 채널로 전송되는 NRT 서비스에 대응되는 SMT, NRT-IT, TFT 및 ILT 중 적어도 하나를 포함할 수 있다.
확장 셋은 기본 셋 외에, 제1 쿼리 정보에 의해 특정된 가상 채널로 전송되는 NRT 서비스에 대응되는 PIT 및 PTCT 중 적어도 하나를 더 포함할 수 있다.
전체 셋은 확장 셋 외에, Future NRT-IT 및 Future TFT를 더 포함할 수 있다.
이와 같이 구분되는 각 셋은 방송 서비스 제공자 또는 부가 서비스 제공자에 따라 다르게 지정될 수 있으며, 앞서 설명한 조합에 한정되는 것이 아니다. 예를 들어, PSIP 셋은 가상 채널에 대응되는 TVCT, EIT, 및 ETT 인스턴스를 나타낼 수 있고, Basic NRT 셋은 그 가상 채널의 서비스 식별자(svc id)에 대응되는 SMT, NRT-IT 및 TFT 인스턴스들을 나타낼 수 있으며, Extended NRT 셋은 Basic 셋에 PIT 및 PTCT를 더 포함하는 인스턴스들을 나타낼 수 있다.
이와 같은 제1 쿼리 정보 및 제2 쿼리 정보의 조합으로, 수신기(300)는 다양한 조건의 시그널링 테이블들을 서버로 요청할 수 있다. 또한, 시그널링 테이블들은 방송 서비스의 부가 서비스뿐만 아니라, 방송 서비스 자체에 대한 시그널링 테이블들을 포함할 수 있다. 예를 들어, 시그널링 테이블은 방송 서비스에 대한 PSIP 테이블도 포함할 수 있다.
한편, 서버는 수신기(300)의 요청에 따른 응답 메시지에 시그널링 테이블들을 전송할 수 있다. 이와 같은 응답 메시지는 폴링 방식으로 전송될 수 있으나 전송 방식에 한정되는 것은 아니다.
예를 들어, 서버는 Duration=<duration>으로 시작되는 HTTP 방식의 응답 메시지를 생성하여 수신기(300)로 전송할 수 있다.
응답 메시지의 <duration>은 서버 응답 메시지에 의해 커버되는 시간 구간을 나타내는 10진수 분(in minutes)일 수 있으며, 하나의 개행 문자가 뒤따를 수 있다(followed by a newline character). 응답 메시지의 duration은 수신기(300)로부터 요청된 duration 값과 동일할 수 있으며, 만약 수신기(300)의 요청에 duration이 지정되지 않은 경우에는 시그널링 서버에 의해 기본(default) duration으로 설정(set)될 수 있다.
그리고, 응답 메시지에는 <chan_id>에 의해 식별되는 가상 채널에 대응되는 시그널링 테이블들이 포함될 수 있다.
서버는 수신기(300)로부터 최초(initial) 요청을 수신한 경우, <start_time>으로부터 <duration> 시간 구간 동안 유효하도록(take effect) 스케쥴된 시그널링 테이블들과, 업데이트된 테이블들을 (연결된 셋으로, concatenated set)수신기(300)로 전송할 수 있다. 그리고, 서버는 인터넷으로 전송되는 시그널링 테이블들을 유효한 시간 순서대로 정렬하여 전송할 수 있다.
서버는 수신기(300)로부터 업데이트 요청을 수신한 경우, <start_time>으로부터 <duration> 시간 구간 동안 유효하도록(take effect) 스케쥴된 업데이트된 테이블들을 (연결된 셋으로, concatenated set)수신기(300)로 전송할 수 있다. 마찬가지로, 서버는 인터넷으로 전송되는 시그널링 테이블들을 유효한 시간 순서대로 정렬하여 전송할 수 있다.
그리고, 응답 메시지를 전송한 이후, 서버는 HTTP 연결을 종료할 수 있다.
한편, 수신기(300)는 HTTP response가 Duration=<duration>으로 시작할 경우 HTTP 연결이 서버에 의해 종료되더라도 즉시 재접속을 시도하지 않고 Duration으로 지정된 시간에 대응하여 일정 시간 이후 접속을 다시 시도할 수 있다.
응답 메시지에 포함되는 테이블 또는 테이블 인스턴스들은 방송 스트림으로 전송되는 것과 동일한 포맷을 가질 수 있다. 테이블 또는 테이블 인스턴스들이 복수의 섹션들을 포함하는 경우, 그 섹션들은 순서대로 연결된 형태로 응답 메시지에 포함될 수 있다.
응답 메시지에 포함되는 각각의 시그널링 테이블 섹션 앞에는 시그널링 테이블 섹션의 업데이트 시간을 나타내는 32비트 부호없는 정수가 부가될 수 있다. 예를 들어, 32비트 정수는 그 시그널링 테이블 섹션이 그 채널에 대해 유효한 서버 측 기준 시간을 나타낼 수 있다. 시그널링 테이블 섹션은 복제될 수 없으며, 새로운 버전의 시그널링 테이블은 복제되지 않은 것으로 판단될 수 있다.
한편, 방송 스트림을 직접 수신할 수 없는 수신기(300)는 ACR방식을 통해 시그널링 테이블을 획득할 수 있다. 이 때, 수신기(300)는 현재 시청중인 시청각 컨텐트의 일부에 기초하여, 워터 마크 서버 또는 핑거 프린트 서버로부터 현재 시청중인 컨텐트에 대한 가상 채널 식별 정보와, 시그널링 서버 URL을 수신할 수 있다. 수신기(300)는 시그널링 서버에 접속하여, 현재 시청중인 컨텐트의 가상 채널과 연관되는 각종 시그널링 테이블들을 수신할 수 있으며, 현재 시청중인 컨텐트에 대한 부가 서비스를 수신할 수도 있다.
그리고, 수신기(300)는 시그널링 서버에 접속하여, 부가 서비스를 수신할 수 있는 URL을 다양한 방식으로 수신할 수 있다. 예를 들어, 수신기(300)는 앞서 설명한 ILT를 수신하여, 부가 서비스를 수신하기 위한 URL들을 획득할 수 있다.
예를 들어, 수신기(300)는 ILT를 포함하는 시그널링 테이블들을 ACR을 이용하여 획득한 특정 서버 URL에 접속하여 수신할 수 있다.
그리고, 수신기(300)는 ILT를 이용하여 현재 시청중인 가상 채널에 대응되는 부가 서비스 시그널링 서버의 URL 주소를 획득할 수 있다.
이후, 수신기(300)는 부가 서비스 시그널링 서버에 접속하여, 현재 시청중인 가상 채널에 대응되는 부가 서비스 시그널링 테이블들을 수신할 수 있다.
그리고, 수신기(300)는 부가 서비스 시그널링 테이블로부터 SMT를 획득하고, SMT에 기초하여 NRT 서비스들을 식별할 수 있다.
이후, 수신기(300)는 식별된 NRT 서비스를 부가 서비스 시그널링 테이블들에 기초하여 수신할 수 있다. 여기서, 수신기(300)는 다른 채널로 튜닝하지 않아도 부가 서비스를 수신할 수 있으나, 방송국은 수신기(300)를 발견(discover)하지 못할 수 있다. 따라서, 방송국이 수신기(300)를 발견하기 위한 정보의 전송이 필요할 수 있다.
도 128는 본 발명의 또 다른 일 실시 예에 따른 ILT를 나타내며, 도 129는 도 128에서 사용되는 URL_fuction_code 값 테이블을 나타낸다.
도 128를 참조하면, 본 발명의 또 다른 일 실시 예에 따른 ILT는 앞서 설명한 ILT의 실시 예 이외에 각 URL_fuction_code에 대응되는 복수의 메이저 채널 넘버(major_channel_number)필드 와 마이너 채널 넘버(minor_channel_number) 필드들을 포함할 수 있다.
여기서 사용되는 URL_fuction_code의 의미는 도 129에 도시된 바와 같을 수 있다.
보다 구체적으로, URL_fuction_code가 0인 경우, ILT 내에서 이 URL_fuction_code필드를 포함하는 루프의 URL은 메이저 채널 넘버 및 마이너 채널 넘버 필드로 식별되는 가상 채널에 대한 사용량 보고를 위한 URL임을 나타낼 수 있다.
그리고, URL_fuction_code가 2인 경우, ILT 내에서 이 URL_fuction_code필드를 포함하는 루프의 URL은 메이저 채널 넘버 및 마이너 채널 넘버 필드로 식별되는 가상 채널에 대한 시그널링 테이블을 수신할 수 있는 URL임을 나타낼 수 있다.
URL_fuction_code에 따른 ILT의 구성에 따르면, 수신기(300)는 시청 중인 채널의 메이저 채널 번호와 마이너 채널 번호에 대한 사용량 보고(Usage reporting)을 수행할 수 있게 된다. 따라서, 앞서 설명한 방송국이 수신기(300)를 발견하지 못하는 문제점을 해결할 수 있다.
또한, 수신기(300)는 앞서 설명한 ILT 이외에, 방송국이 방송 스트림을 수신하지 않는 수신기(300)를 발견할 수 있는 다양한 방법을 사용할 수 있다.
예를 들어, ACR을 위한 핑거프린트 서버 또는 워터마크 서버가 NRT 디스커버리 서버(NRT discovery server)로 동작할 수 있다. 또한, 핑거프린트 서버 또는 워터마크 서버는 수신기(300)에 NRT 디스커버리 서버의 접속정보를 시그널링 할 수도 있다. 또한, NRT 디스커버리 서버는 수신기(300) 제공자에 의해서 운영될 수 있다. 수신기(300)는 수신기 제공자 서버로부터 NRT 디스커버리 서버의 접속정보를 획득하거나 수신기(300) 자체에 내장된 메모리로부터 NRT 디스커버리 서버의 접속정보를 획득할 수도 있다.
한편, 수신기(300)는 트리거에 의한 TDO의 동작에 따라 TDO 서비스를 제공할 수 있다. 송신기(200)는 이와 같은 TDO의 동작에 필요한 실시간 데이터를 전송할 수 있다. 따라서, 수신기(300)는 실시간 데이터를 수신하여, 실시간으로 연동되는 TDO 서비스를 제공할 수 있게 된다. 예를 들어, TDO는 실시간 데이터를 이용하여, 실시간 주가 정보를 제공할 수 있다. 이와 같이, TDO를 위한 실시간 데이터는 다양한 경로로 수신기(300)에 전송될 수 있다.
TDO를 위한 실시간 데이터는 MPEG-2 elementary stream(ES) 기반으로 전송될 수 있다.
또한, 실시간 데이터는 트리거에 포함되어 전송될 수도 있다. 이와 같이 실시간 데이터를 포함하는 트리거를 데이터 타입 트리거라고 할 수 있다.
TDO를 위한 실시간 데이터는 상술한 바와 같이, IP를 기반으로 한 방송망 또는 인터넷망을 통해 전송될 수 있다.
먼저 실시간 데이터는 FLUTE를 통해 전송될 수 있다. 송신기(200)는 FLUTE 로 전송되는 비실시간 서비스를 이용하여, TDO를 위한 실시간 데이터를 전송할 수 있다. 이를 위해, 송신기(200)는 TDO를 위한 실시간 데이터에 대해 특정 소비 모델을 할당할 수 있다. 소비 모델은 도 68에서 설명한 바와 같이, SMT의 서비스 레벨 디스크립터 루프에 포함되는 비실시간 서비스 디스크립터에 포함된 소비 모델 필드의 값에 의해 지정될 수 있다. 수신기(300)는 소비 모델을 식별하여 데이터 스트림 소비 모델에 대응되는 비실시간 서비스를 수신할 수 있다. 데이터 스트림 소비 모델에 대응되는 비실시간 서비스는 TDO를 위한 실시간 데이터를 포함할 수 있을 뿐만 아니라, TDO가 아닌 비실시간 서비스 오브젝트를 위한 다른 데이터도 포함할 수 있다.
도 130은 본 발명의 일 실시 예에 따른 데이터 스트림 소비 모델을 포함하는 소비 모델 필드를 설명하기 위한 도면이다. 다른 필드에 대한 설명은 도 68에서 설명한 바와 동일하다.
도 130을 참조하면, 소비 모델 필드의 값이 데이터 스트림(0x05)으로 지정된 비실시간 서비스는 DO(다운로드가능한 오브젝트 또는 선언적 오브젝트 downloadable object or declarative object)를 위한 하나 또는 하나 이상의 파일 스트림을 포함할 수 있다. 여기서, DO(downloadable object or declarative object)는 TDO(Triggered Declarative Object) 또는 일반 비실시간 서비스 오브젝트를 모두 포함하는 의미로 사용될 수 있다. TDO는 DO 실행 환경에서 동작 가능한 오브젝트 중 하나일 수 있다. 소비 모델이 데이터 스트림으로 지정된 비실시간 서비스는, 수신기(300)에서 동작되는 DO가 실행 환경의 일부로 제공되는 API를 통해 다운로드 및 전달을 요청하는 경우에만 수신될 수 있으며, 수신된 데이터 스트림 서비스에 포함된 파일 스트림은 DO로만 전달될 수 있다.
도 131은 데이터 스트림 소비 모델로 할당된 비실시간 서비스를 수신하여, DO를 위한 데이터를 제공하는 수신기의 방송 서비스 수신 방법을 설명하기 위한 흐름도이다.
도 131을 참조하면, 먼저 수신기(300)는 서비스 시그널링 데이터로부터 SMT를 획득한다(S9200). 수신기(300)는 방송 서비스 채널에 접속하여 서비스 시그널링 데이터를 수신할 수 있으며, 서비스 시그널링 데이터로부터 SMT를 획득할 수 있다.
그리고, 수신기(300)는 SMT로부터 NRT 서비스 정보 디스크립터를 파싱한다(S9205).
여기서, 수신기(300)는 식별된 NRT 서비스 중 데이터 스트림 소비 모델에 해당하는 NRT 서비스를 식별한다(S9210).
데이터 스트림 소비 모델의 수신이 선택된 경우, 수신기(300)는 데이터 스트림 소비 모델로 식별된 NRT 서비스를 구성하는 컨텐트 아이템 정보를 NRT-IT로부터 획득한다(S9215).
그리고, 수신기(300)는 SMT와 NRT-IT에 기초하여 컨텐트 아이템을 구성하는 파일들을 수신한다(S9220).
그리고, 수신기(300)의 서비스 매니저(350)는 수신된 파일들을 이용하여 DO를 위한 실시간 데이터를 DO에 제공한다(S9225).
그리고, 다운로드가 완료되면, 수신기(300)의 서비스 매니저(350)는 DO로 파일을 전달할 수 있다.
이하에서는 부가 서비스를 구성하는 파일들의 인터넷망을 통한 전송 방법을 설명한다.
부가 서비스, 예를 들어 ATSC 2.0 컨텐트를 구성하는 파일들은 인터넷 링크를 통해 HTTP 또는 HTTPS 프로토콜을 이용하여 전송될 수 있다. 송신기(200)가 HTTP 또는 HTTPS 프로토콜 중 어느 것을 사용할지는 인터넷을 통해 전송되는 컨텐트 아이템이 업데이트 되어야 하는지 여부(NRT-IT의 엔트리 컨텐트 아이템의 update_available 필드에 의해 시그널링됨) 또는 그 파일이 얼마나 큰지에 따라 결정될 수 있다. 이하의 설명에서는 HTTP/S는 HTTP 또는 HTTPS임을 의미할 수 있다.
송신기(200) 및 수신기(300)는 컨텐트 아이템이 업데이트되지 않을 경우(update_available 필드가 0인 경우) 일반적인 HTTP/S 프로토콜을 통해 요청 및 응답을 전송할 수 있다.
송신기(200) 및 수신기(300)는 컨텐트 아이템이 업데이트되는 경우(update_available 필드가 1인 경우) 특정 크기보다 작은 파일들은 HTTP/S 스트림밍 방식으로 전송할 수 있으며, 특정 크기보다 큰 파일들은 일반적인 HTTP/S 프로토콜을 통해 요청 및 응답을 전송할 수 있다. 그리고, 송신기(200)는 일반적인 HTTP/S를 통해 HTTP/S 스트리밍으로 업데이트가 전송됨을 수신기(300)로 알려줄 수 있다.
여기서, 하나의 서버에 대한 복수의 수신기(300)들의 동시 HTTP 접속을 최소하기 위해, 복수 파일 HTTP 스트리밍 프로토콜 방식이 사용될 수 있다. 이에 따라 본 발명의 실시 예에서는 복수 파일 HTTP 스트리밍 요청 및 응답에 대해서 설명하도록 한다.
도 132는 본 발명의 실시 예에 따른 복수 파일 HTTP 스트리밍 요청 메시지의 XML 포맷을 나타낸다.
도 132를 참조하면, 복수 파일 HTTP 스트리밍 요청은 수신기(300)가 수신하고자 하는 최초 파일들의 URL 목록 정보를 포함할 수 있다. 또한, 복수 파일 HTTP 스트리밍 요청은 각 파일들에 대한 업데이트 URL 정보를 더 포함할 수 있다.
또한, 도 132에는 도시되지 않았으나, 수신기(300)가 전송하는 복수 파일 HTTP 스트리밍 요청은 컨텐트 아이템 또는 NRT 서비스를 특정하는 식별 정보를 포함할 수도 있다. 또한, 복수 파일 HTTP 스트리밍 요청은 도 132에 도시된 XML과 유사하게, 초기 수신할 컨텐트 아이템 목록, 업데이트할 컨텐트 아이템 목록 또는 각종 ATSC 2.0 서비스 목록 정보를 더 포함할 수도 있다.
그리고, 수신기(300)는 복수 파일 HTTP 스트리밍 요청 메시지에 컨텐트 아이템을 지정하고, 그 하위 엘리먼트로 그 컨텐트 아이템내 특정 파일들만을 지정하여 서버로 전송할 수 있다. 이 경우 컨텐트 아이템은 기본(Base) URL 속성을 가질 수 있으며, 그 하위 엘리먼트로 포함된 파일들의 URL의 기본 URL을 나타낼 수 있다. 따라서, 요청 메시지에 포함된 각 파일들에 대응되는 URL이 상대 경로 포맷인 경우, 서버는 각 URL들이 상위 컨텐트 아이템의 기본 URL을 기준으로 한 상대 경로 URL임을 판단할 수 있다. 그러나, 다른 파일은 절대 경로를 가질 수도 있으며, 이 경우 서버는 기본 URL 적용 없이 절대 경로로 다시 판단할 수 있다.
한편, 송신기(200) 또는 서버는 새로운 파일을 보내고자 할 때, 이 파일의 업데이트 또는 새로운 파일 추가 여부를 수신기(300)에 알려주는 별도 동작 없이, 복수 파일 HTTP 스트리밍(Multi-file HTTP streaming) 세션을 열어 놓는 수신기(300)들에게 업데이트되는 파일 또는 컨텐트 아이템에 새로 추가되는 파일들을 즉시 전송할 수도 있다.
예를 들어, 수신기(300)는 새로 추가된 파일이 Multi-file HTTP streaming 세션에 나타날 경우, 이 파일에 부가되는 헤더를 통해 어떤 NRT 서비스의 어떤 컨텐트 아이템에 대한 파일인지를 판단할 수 있다. 그리고, 수신기(300) 새로 추가된 파일을 필요로 하는 NRT 서비스 혹은 DO로 전달하는 처리를 수행할 수 있다.
한편, 복수 파일 HTTP 스트리밍 응답 메시지는 멀티 파트 MIME 메시지 포맷을 가질 수 있다. 각 파트는 응답 메시지에 대응되는 파일이 특정 크기보다 작은 파일인지, 특정 크기보다 큰 파일인지 또는 업데이트가 가능한지를 나타내는 메시지를 포함할 수 있다.
또한 응답 메시지의 최초 파트는 최초 파일들 목록 내 특정 크기보다 작은 파일들 및 최초 파일들 목록 내 특정 크기보다 큰 파일들의 업데이트 여부에 대한 알림 메시지를 포함할 수 있다. (The initial parts of the message shall contain all the small files in the InitialFiles list, and notifications of updates available for all the large files in the InitialFiles list.)
그리고, 최초 파트를 뒤따르는 각각의 파트들은 요청 메시지를 수신한 이후에 발생되는 특정 크기보다 작은 파일들의 업데이트 및 요청 메시지를 수신한 이후에 발생되는 특정 크기보다 큰 파일들의 업데이트 알림 메시지를 포함할 수 있다.
또한, MIME 메시지 내 각각의 파트의 헤더는 컨텐트 위치(Content-Location) 헤더 필드를 포함할 수 있으며, 컨텐트 위치(Content-Location) 헤더 필드는 그 파트에 대응되는 파일의 URL 정보를 포함할 수 있다.
한편, 파일 업데이트 알림 메시지를 포함하는 MIME 메시지는 파트 헤더만을 포함할 수 있고, 비어 있는(empty) 바디를 포함할 수 있다. 파트 헤더는 컨텐트 위치(Content-Location) 헤더 필드를 포함할 수 있다.
그리고, 서버가, 업데이트될 파일에 대한 URL을 포함하면서 그 바디에는 멀티파일 요청 XML 메시지를 포함하지 않는 HTTP/S 요청을 수신기(300)로부터 수신한 경우, 서버는 그 URL에 의해 식별되는 파일을 그대로 수신기(300)에 리턴할 수 있다.
먼저, 수신기(300)는 HTTP/S 스트리밍을 통해 특정 서버로부터 수신하고 업데이트할 파일들을 식별할 수 있다.
그리고, 수신기(300)는 수신하고자 하는 파일들의 URL이 포함된 최초파일(InitialFiles) 엘리먼트를 포함하는 멀티 파일 HTTP/S 스트리밍 요청을 수행할 수 있다. 멀티 파일 HTTP/S 스트리밍 요청에는 파일 업데이트(FileUpdates) 엘리먼트는 제외될 수 있다.
그리고, 수신기(300)는 응답 메시지로부터 MIME 메시지 파트들을 획득할 수 있다. 수신기(300)는 응답 메시지로부터 특정 크기보다 작은 파일들을 추출할 수 있으며, 알림(nootifications)에 의해 식별되는 파일들을 획득하기 위한 일반적인 HTTP/S 요청을 수행할 수 있다.
일정 시간 이후 또는 파일 목록의 삭제가 필요한 경우, 수신기(300)는 새로운 멀티 파일 http/s 스트리밍 요청을 수행할 수 있다. 새로운 멀티 파일 http/s 스트림 요청은 InitialFiles 목록 또는 FileUpdates 목록 내 새로운 파일들의 URL을 포함할 수 있다. 업데이트에 의한 파일 변경시 누락을 방지하기 위해, 수신기(300)는 새로운 요청을 전송하면서 기존 요청을 위한 연결을 종료할 수 있다.
HTTP/S 스트리밍 연결이 끊어진 경우, 수신기(300)는 새로운 HTTP/S 스트리밍 요청을 전송할 수 있다. 업데이트가 누락되면 안되는 것으로 설정된 중요 파일들이 있는 경우(예를 들어, 수신기(300)가 반드시 최신 버전의 파일을 보유하야여 하는 경우), 수신기(300) 는 그 파일들의 URL을 새로운 HTTP/S 스트리밍 요청의 최초파일 목록(InitialFile list)에 포함시킬 수 있다. 수신기(300) 는 다른 파일들의 URL을 새로운 HTTP/S 스트리밍 요청의 파일 업데이트 목록(FileUpdates list)에 포함시킬 수 있다.
한편, 앞서 설명한 TDO를 위한 실시간 데이터도 이와 같은 HTTP/S 스트리밍으로 전송될 수 있다. 송신기(200)는 지속적으로 업데이트되는 컨텐트 아이템으로 실시간 데이터를 전송할 수 있다.
따라서, 송신기(300)는 TDO를 위한 실시간 데이터 컨텐트 아이템에 대응되는 NRT-IT의 updates_available 필드 값을 1로 설정하고, 상기 TDO를 위한 실시간 데이터 컨텐트 아이템을 구성하는 파일들을 앞서 설명한 멀티 파일 HTTP/S 스트리밍 방식을 이용하여 전송할 수 있다.
도 133은 본 발명의 또 다른 일 실시 예에 따른 ILT의 신택스를 나타내며, 도 134는 도 133에 도시된 ILT에서 사용되는 URL 기능 코드를 설명하기 위한 테이블이다.
도 133을 참조하면, 멀티 파일 HTTP/S 스트리밍으로 파일을 전송하는 서버의 URL은 인터넷 위치 테이블(Internet location table)에 포함되어 시그널링 서버로부터 수신기(300)로 전송될 수 있다.
이를 위해, 도 134에 도시된 바와 같이, URL 기능 코드(URL_function_code)의 값에 3이 새로 정의될 수 있다. 먼저, URL 기능 코드의 값이 0, 1, 또는 2인 경우의 설명은 도 129에 도시된 바와 동일할 수 있으므로 생략하도록 한다.
그리고, URL 기능 코드의 값이 3인 경우, 그 URL 기능 코드 값에 대응되는 URL_byte 필드는 메이저 채널 넘버 및 마이너 채널 넘버로 식별되는 가상 채널로 전송되는 파일들 및 그 파일들의 업데이트 알림을 수신할 수 있는 서버의 URL을 나타낼 수 있다.
따라서, 수신기(300)는 ILT를 시그널링 서버로부터 수신한 경우, ILT로부터 URL 기능 코드와 URL_byte를 파싱할 수 있다. 그리고, 수신기(300)는 URL 기능 코드에 따라 URL_byte로부터 획득한 URL 정보의 용도를 판단할 수 있다. 예를 들어, 본 발명의 실시 예에 따라 URL 기능 코드가 3인 경우, 수신기(300)는 URL 기능 코드에 대응되는 메이저 채널 넘버 및 마이너 채널 넘버를 이용하여 가상 채널을 식별하고, URL_byte로부터 획득한 URL 정보를 이용하여 식별된 가상 채널로 전송되는 파일들 및 그 파일들의 업데이트 알림을 수신할 수 있는 서버에 접속할 수 있다.
한편, 수신기(300)에 의해 동작하는 TDO는 앞서 설명한 바와 같이, 실시간 데이터를 추가적으로 수신할 수 있다. 예를 들어, 주식 시세를 제공하는 TDO의 경우, 그 TDO는 수신기(300)로 수신되는 실시간 주가 정보를 획득하여 사용자에게 디스플레이 할 수 있다.
본 발명의 실시 예에 따르면, 수신기(300)는 이와 같이 TDO가 획득하기 위한 실시간 데이터를 문서 객체 모델 어플리케이션 프로토콜 인터페이스(DOM API, Document Object Model API)를 이용하여 수신할 수 있다.
도 135는 본 발명의 실시 예에 따른 TDO를 위한 실시간 데이터를 수신할 수 있는 트리거 API의 XML 포맷을 나타낸다.
예를 들어, TDO는 실시간 데이터를 수신하기 위한 실시간 데이터 오브젝트(RealTimeData Object)를 생성할 수 있다. 수신기(300)의 서비스 매니저(350)는 TDO에 대한 실시간 데이터 오브젝트를 선언함으로써 그 오브젝트를 생성할 수 있다. 그리고, 서비스 매니저(350)는 TDO가 상기 생성된 실시간 데이터 오브젝트를 이용하여 실시간 데이터를 수신할 수 있도록 제어할 수 있다.
그리고, 일 실시 예에서, 실시간 데이터 오브젝트의 MIME 타입은 application/atsc-realtimedata로 지정될 수 있다. 서비스 매니저(350)는 TDO가 실행되는 페이지에 대응되도록 실시간 데이터 오브젝트를 생성할 수 있고, 외부로부터 수신한 실시간 데이터를 그 실시간 데이터 오브젝트로 전달할 수 있다.
또한, 일 실시 예에서, 수신기(300)는 생성된 실시간 데이터 오브젝트를 하기와 같은 이벤트 및 메쏘드(Method)를 이용하여 제어할 수 있다.
이벤트(Event): function onRealTimeFileReceived(RealTimeFile rtdata)
메쏘드(Method): function registerRealTimeData(String service_id, Boolean url_flag), function registerRealTimeFile(String content_location, url_flag)
상기와 같이, 메쏘드는 실시간데이터 등록(registerRealTimeData) 기능 및 실시간파일 등록(registerRalTimeFile) 기능을 포함할 수 있다.
실시간데이터 등록(registerRealTimeData) 기능은 service id로 식별되는 NRT 서비스에 포함된 실시간 데이터를 등록하고, 모두 수신하는 기능일 수 있다.
실시간파일 등록(registerRalTimeFile) 기능은 실시간 데이터의 개별 파일들을 등록하고, 수신하는 기능일 수 있다.
URL 플래그(url_flag)는 실시간 데이터 파일들이 수신되는 경우, 수신기(300)가 TDO로 전달할 데이터 포맷을 나타낼 수 있다. 예를 들어, URL 플래그는 전달되는 데이터 포맷이 url 포맷인지 또는 컨텐트 자체 포맷인지를 나타낼 수 있다.
그리고, 실시간파일 수신(onRealTimeFileReceived) 이벤트는 앞서 설명한 등록 함수들에 의해 등록된 실시간 데이터 파일들이 수신될 때마다 TDO에게 알려주는 기능을 수행할 수 있다.
그리고, TDO에서 실시간파일로 정의되는 클래스(RealTimeFile class)는 TDO로 전달되는 실시간 데이터에 대한 개별 파일들의 정보를 포함할 수 있다. 그리고, 그 클래스들은 각각 하기와 같이 특성(property)들을 포함할 수 있다.
특성(property)는 readonly String content_location, readonly String content_type, readonly String content_encoding, readonly String file_content 중 적어도 하나를 포함할 수 있다.
여기서, 앞서 설명한 실시간파일 등록 함수들의 url_flag가 true로 설정된 경우 등록된 실시간파일은 컨텐트 위치(content_location), 컨텐트 타입(content_type) 및 컨텐트 인코딩(content_encoding)특성을 포함할 수 있다. 그리고, url_flag가 false로 설정된 경우 등록된 실시간파일은 컨텐트 인코딩(content_encoding) 및 피일 컨텐트(file_content) 특성을 포함할 수 있다.
한편, 이하에서는 인터넷을 통해 전송되는 시그널링 테이블의 또 다른 실시 예를 설명하도록 한다.
인터넷을 통해 전송되는 시그널링 테이블들은 방송 서비스 시그널링 테이블 및 NRT 서비스 시그널링 테이블을 포함할 수 있다. 시그널링 테이블들은 예를 들어, TVCT, EIT 및 ETT를 포함하는 PSIP 테이블들일 수 있으며, SMT, NRT-IT, TFT, ILT, PIT 및 PTCT를 포함하는 NRT테이블들일 수 있다.
수신기(300)가 비압축 오디오 및 비디오만을 수신할 수 있는 경우, 상기와 같은 시그널링 테이블들은 방송 신호로부터는 수신하지 못할 수 있으며, 인터넷망을 통해서 수신할 수 있게 된다. 또한, 수신기(300)는 전체 방송 신호를 수신하는 경우에도 인터넷망을 통해서 시그널링 테이블들을 수신하면, 튜너를 조정하거나 테이블 수신을 기다리지 않고도 화면 영역에 프로그램 및 서비스 가이드를 사용자에게 보여줄 수 있으므로, 효율적인 프로그램 및 서비스 가이드를 제공할 수 있다.
이와 같은 인터넷망을 통한 시그널링 테이블 전송은 HTTP 프로토콜의 요청/응답 방식을 통해 수신기(300)와 시그널링 서버 사이에서 수행될 수 있다.
그리고, 요청 메시지는 앞서 설명한 바와 같이, 베이스 URL, 제1 쿼리 정보 및 제2 쿼리 정보를 포함하는 전체 URL 포맷으로 전송될 수 있으며, 본 발명의 또 다른 실시 예에서 제1 쿼리 정보는 하기와 같은 포맷을 가질 수 있다.
start=<start_time>[&timebase=<timebase>][&duration=<duration>][&update]
요청 메시지에 포함되는 베이스 URL은 특정 방송 스트림에 대응될 수 있다. 예를 들어, 수신기(300)가 전체(full) 방송 스트림에 접근할 수 없고, 일부 비압축 시청각 영상만 수신하는 경우, 앞서 설명한 ACR방식을 이용하여, 인터넷망을 통해 베이스 URL을 수신할 수 있다.
그리고, 수신기(300)는 베이스 URL을 포함하는 시그널링 테이블 요청 메시지를 시그널링 서버로 전송할 수 있으며, 서버의 응답으로부터 시그널링 테이블을 획득할 수 있다. 한편, 전체(full) 방송 스트림에 접근 가능한 수신기(300)는 방송 스트림 내 ILT로부터 상기 베이스 URL을 획득할 수도 있다.
그리고, 송신기(200)는 특정 가상 채널 외에도 특정 물리 채널의 PSIP 및 NRT 시그널링 테이블들을 획득할 수 있는 URL을 ILT에 포함하여 전송할 수 있다. 이 경우 물리 채널은 메이저 채널 넘버를 통해 식별될 수 있다. 또한, 수신기(300)는 VCT로부터 가상 채널 목록을 식별하고, 특정 부가 서비스를 위한 시그널링 테이블들을 추가적으로 인터넷망을 통해 수신할 수 있다. 그리고, 수신기(300)는 특정 물리 채널 내 모든 시그널링 테이블을 인터넷망을 통해 수신할 수도 있다.
일 실시 예에서, 제1 쿼리 정보는 <start_time>을 포함할 수 있으며, start_time은 시그널링 테이블을 요청하는 시간 구간의 시작점을 나타낼 수 있다. 여기서, start_time은 UTC 시간일 수 있으며, ACR 서버로부터 수신한 타임스탬프일 수도 있다. 예를 들어, start_time은 제1 쿼리 정보에 포함된 <timebase>의 유무에 따라 결정될 수 있다. Timebase가 없는 경우, start_time은 UTC 시간을 나타낼 수 있으며, timebase가 존재하는 경우 start_time은 ACR 서버로부터 획득한 타임스탬프 또는 기준 시간에 대해 상대적인 시간을 나타낼 수 있다.
도 136은 본 발명의 또 다른 일 실시 예에 따른 제2 쿼리 정보 테이블을 나타낸다.
도 136을 참조하면, 본 발명의 또 다른 일 실시 예에 따른 제2 쿼리 정보 는 도 126 및 도 127에서 설명한 테이블과 동일한 부분 외에도, Basic PSIP, VCT, EIT 및 ETT를 특정하기 위한 정보를 더 포함할 수 있다.
여기서, Basic PSIP set은 VCT, EITs 및 ETTs를 나타낼 수 있으며, 물리 채널 내 가상 채널들에 대한 시그널링 테이블을 의미할 수 있다.
그리고, 제2 쿼리 정보에 chan_id가 존재하는 경우, chan_id는 테이블 요청에 대응되는 특정 가상 채널을 나타낼 수 있으며, 메이저 채널 넘버와 마이너 채널 넘버를 포함할 수있다. Chan_id가 존재하지 않는 경우에는 제2 쿼리 정보는 방송 스트림으로 전송되는 모든 가상 채널에 대한 테이블들에 대한 요청임을 나타낼 수 있다.
한편, 제2 쿼리 정보에 ETM_id가 존재하는 경우, ETM_id는 수신기(300)가 요청하고자 하는 특정 ETT 인스턴스를 나타낼 수 있다. ETT 인스턴스는 ATSC PSIP 표준에서 정의된 바와 동일할 수 있다. 만약 ETM_id가 존재하지 않는 경우, 그 요청 메시지는 모든 ETT 인스턴스를 목적으로 하지 않음을 나타낼 수 있다.
그리고, 제2 쿼리 정보에 svc_id가 존재하는 경우, svc_id는 앞서 설명한 바와 마찬가지로 수신기(300)가 요청하고자 하는 방송 스트림 내 특정 비실시간 서비스의 서비스 식별자를 나타낼 수 있다. 만약 svc_id가 존재하지 않는 경우, 그 요청 메시지는 NRT 서비스를 목적으로 하지 않음을 나타낼 수 있다.
한편, 요청 메시지에 대한 응답으로, 시그널링 서버는 시그널링 테이블들을 포함하는 응답 메시지를 수신기(300)로 전송할 수 있다.
일 실시 예에서, 응답 메시지는 분산(diffusion) 파라미터를 포함할 수 있다. Duration에 의해 지정된 시간 구간 종료되기 직전에 수신기(300)는 시그널링 테이블을 재요청할 수 있다. 이 때 한꺼번에 다수의 수신기가 동시에 요청하면, 서버의 부하를 줄 수 있다.
따라서, 본 발명의 일 실시 예에 따르면, 서버는 응답 메시지에 분산(diffusion) 파라미터를 포함시켜 전송할 수 있다.
수신기(300)는 분산(diffusion) 파라미터에 기초하여, 다음 시그널링 테이블 요청 시간을 결정할 수 있다.
이와 같은 분산(diffusion) 파라미터는 HTTP response의 헤더에 포함될 수 있다. 또한, 분산(diffusion) 파라미터는 HHTP response의 body에 포함될 수도 있다. 수신기(300)는 응답 메시지로부터 분산 파라미터를 발견한 경우, 그 파라메터 값에 기초한 시간 구간 내 랜덤한 시간에 다음 시그널링 테이블 요청을 전송할 수 있다.
한편, 수신기(300)는 비실시간 서비스를 이용하여 방송 서비스에 대한 가이드 정보를 포함하는 전자 프로그램 가이드(Electronic Program Guide, EPG)를 제공할 수 있다. 또한, 수신기(300)는 기존 수신기와 같이 PSIP 테이블의 EIT(Event information table)에 기초하여 EPG를 제공하되, 비실시간 서비스로 제공되는 EPG를 필요에 따라 추가적으로 제공할 수도 있다. 수신기(300)는 비실시간 서비스를 이용하여 EPG를 제공하는 경우, 이미지, 동영상 또는 실행 가능한 컨텐트 등을 미리 서비스 시그널링 채널 또는 인터넷망을 통해 수신하고, 사용자 요청에 따라 수신된 EPG 서비스를 제공할 수 있다.
또한, 일 실시 예에서, 송신기(200)는 VCT 또는 EIT에 비실시간 서비스 가이드를 제공하기 위한 정보를 더 포함하여 전송할 수도 있다. 이와 같은 정보는 특정 디스크립터에 포함될 수 있으며, 비실시간 서비스 가이드 제공을 위한 디스크립터를 향상된(Enhanced) EPG 디스크립터라고 표현할 수 있다. 수신기(300)는 VCT 또는 EIT의 디스크립터 루프로부터 향상된 EPG 디스크립터를 파싱하여 비실시간 서비스에 대한 전자 프로그램 가이드를 디스플레이 할 수 있게 된다.
이와 같은 향상된 EPG 디스크립터는 비실시간 서비스 가이드를 제공하기 위한 다양한 정보를 포함할 수 있다. 예를 들어, 향상된 EPG 디스크립터는 특정 가상 채널 또는 이벤트의 A/V 스트림에 부가되어 전송되는 부가(adjunct) 비실시간 서비스의 존재 여부 및 존재하는 부가 비실시간 서비스가 접근 제어되어 있는지 여부 정보를 포함할 수 있다. 또한, 향상된 EPG 디스크립터는 비실시간 가상 채널에 포함된 비실시간 서비스의 목록과 각 비실시간 서비스가 접근 제어되어 있는지의 여부 정보를 포함할 수 있다.
또한, 향상된 EPG 디스크립터는 상술한 바와 같이 VCT(TVCT 또는 CVCT)의 채널 레벨 디스크립터 루프에 포함될 수 있으며, EIT의 이벤트 레벨 디스크립터 루프에 포함될 수도 있다. 따라서, 수신기(300)는 각각의 가상 채널 또는 시그널링 채널을 통해 복잡한 데이터를 추출하거나 다른 테이블을 추출하지 않고도, 방송 채널 또는 인터넷망을 통해 전송되는 PSIP 테이블만을 이용하여 데이터 서비스 또는 비실시간 서비스들에 대한 전자 프로그램 가이드를 디스플레이 할 수 있다.
향상된 EPG 디스크립터는 비실시간 서비스에 대한 케이퍼빌리티(capability) 정보를 포함할 수도 있다. 케이퍼빌리티 정보는 해당 가상 채널 또는 이벤트에 포함된 비실시간 서비스가 정상적으로 재생되기 위한 수신기(300)의 능력(capability)에 대한 정보를 포함할 수 있다. 따라서, 수신기(300)는 케이퍼빌리티 정보에 기초한 요구 능력을 갖지 않는 경우, 상술한 비실시간 서비스의 전자 프로그램 가이드에서 해당 비실시간 서비스의 존재를 디스플레이 하지 않을 수 있다. 그리고, 케이퍼빌리티 정보는 비실시간 케이퍼빌리티 디스크립터(NRT Capabilities descriptor)에 포함될 수 있으며, 향상된 EPG 디스크립터와 함께 VCT 또는 EIT에 포함되어 전송될 수도 있다.
도 137은 본 발명의 일 실시 예에 따른 향상된 EPG 디스크립터의 신택스를 나타내는 도면이다.
도 137을 참조하면, 향상된 EPG 디스크립터는 디스크립터 태그 필드, 디스크립터 길이 필드, 비실시간 서비스 개수(num_of_NRT_services) 필드 및 for문으로 구획된 하나 이상의 비실시간 서비스 루프를 포함할 수 있으며, 하나 이상의 비실시간 서비스 루프는 각각 서비스 식별자 참조(service_id_ref) 필드, 소비 모델(consumption model) 필드, 접근 제어(access_controlled) 필드, 숏 서비스 이름 길이(short_service_name_length) 필드 및 숏 서비스 이름(short_service_name) 필드를 포함할 수 있다.
도 138은 본 발명의 다른 일 실시 예에 따른 향상된 EPG 디스크립터의 신택스를 나타내는 도면이다.
도 138을 참조하면, 본 발명의 다른 일 실시 예에 따른 향상된 EPG 디스크립터는 서비스 향상 디스크립터(service_enhancements_descriptor)라고 할 수있다. 서비스 향상 디스크립터는 각 비실시간 서비스를 이용하기 위한 수신기(300)의 요구 능력(capability) 정보를 포함할 수 있다. 따라서, 서비스 향상 디스크립터는 각 비실시간 서비스를 이용하는데 필요한 케이퍼빌리티 코드(capability code) 정보를 더 포함할 수 있으며, 도 85와 달리 예를 들어 케이퍼빌리티 스트링(capability string) 또는 케이퍼빌리티 셋(capability set) 중 적어도 하나를 더 포함하여, 비실시간 서비스를 실행 또는 재생하기 위해 수신기(300)에서 요구되는 능력 정보를 나타낼 수 있다.
한편, 수신기(300)는 비실시간 서비스를 이용하여 방송 서비스에 대한 가이드 정보를 포함하는 전자 프로그램 가이드(Electronic Program Guide, EPG)를 제공할 수 있다. 또한, 수신기(300)는 기존 수신기와 같이 PSIP 테이블의 EIT(Event information table)에 기초하여 EPG를 제공하되, 비실시간 서비스로 제공되는 EPG를 필요에 따라 추가적으로 제공할 수도 있다. 수신기(300)는 비실시간 서비스를 이용하여 EPG를 제공하는 경우, 이미지, 동영상 또는 실행 가능한 컨텐트 등을 미리 서비스 시그널링 채널 또는 인터넷망을 통해 수신하고, 사용자 요청에 따라 수신된 EPG 서비스를 제공할 수 있다.
본 발명의 일 실시 예에 따르면, 송신기(200)는 이와 같은 확장된 EPG를 비실시간 서비스를 통해 전송하기 위하여 EPG에 대응되는 별도의 소비 모델을 할당하고, 수신기(300)는 소비 모델에 따라 EPG로 판단되는 경우 기 설정된 동작을 수행하여 EPG 서비스를 제공할 수 있다.
도 139는 본 발명의 일 실시 예에 따라 EPG 소비 모델이 할당된 경우의 비실시간 서비스 디스크립터에 포함되는 소비 모델(consumption_model) 필드의 각 값에 따른 의미를 나타낸다.
소비 모델 필드는 도 53에서 설명한 바와 같이 비실시간 서비스 디스크립터(NRT_service_descriptor)에 포함되며, 비실시간 서비스 디스크립터가 나타내는 비실시간 서비스가 어떤 방법의 소비 모델을 이용하는지를 나타내는 필드이다. 일 실시 예에서, 소비 모델 필드는 EPG 소비 모델을 나타낼 수 있다. EPG 소비 모델을 위한 필드 값은 0x05가 사용될 수 있다.
EPG 소비 모델로 할당된 비실시간 서비스는 하나 이상의 컨텐트 아이템들을 포함할 수 있다. 이와 같은 컨텐트 아이템들은 현재 서비스되고 있는 방송 서비스에 대한 정보를 포함할 수 있다. 예를 들어, 각 컨텐트 아이템은 방송 채널에 따른 가상 채널 서비스 정보, 방송 이벤트(TV event) 정보, 비실시간 서비스 정보 또는 비실시간 서비스의 컨텐트 아이템들에 대한 정보를 포함할 수 있다. 그리고, 각 정보들은 html 페이지 형태로 수집(collection)되어 수신기(300)를 통해 EPG의 형태로 제공될 수 있다.
그리고, 수신기(300)는 EPG로 제공되는 방송 정보와 다른 비실시간 서비스 오브젝트 또는 다양한 멀티미디어 컨텐트들을 연결할 수 있다. 이를 위해, 송신기(200)는 SMT 또는 NRT-IT에 방송 정보에 연결된 컨텐트들을 수신하기 위한 링크 디스크립터 또는 이벤트 디스크립터를 삽입하여 전송할 수 있다. 또한, 송신기(200)는 VCT 또는 EIT에 위와 같은 방송 정보를 포함하는 링크 디스크립터 또는 이벤트 디스크립터를 삽입하여 전송할 수도 있다.
그리고, 송신기(200)는 EPG 소비 모델로 할당된 비실시간 서비스에 대응되는 연결 관계(linkage) 디스크립터를 생성하고, VCT, EIT, SMT 또는 NRT-IT 중 적어도 하나에 각 서비스 또는 채널에 대응되도록 삽입하여 전송할 수도 있다. 연결 관계(linkage) 디스크립터를 이용한 송신기(200)의 전송 방법 또는 수신기(300)의 수신 및 서비스 제공 방법에 대하여는 후술하도록 한다.
이와 같이 EPG 소비 모델로 지정된 비실시간 서비스는 수신기(300)가 제공하는 프로그램 또는 서비스에 대한 전자 프로그램 가이드(EPG)를 위한 확장된 EPG정보를 포함할 수 있다. 확장된 EPG 정보는 풍부하고 다양한 멀티미디어 데이터를 포함할 수 있으므로, 수신기(300)는 사용자에게 풍부하고 다양한 방법으로 프로그램 또는 서비스에 대한 가이드를 제공할 수 있게 된다.
EPG 소비 모델로 지정된 비실시간 서비스에 포함된 적어도 하나의 컨텐트 아이템들은 각각 하나의 가상 채널, 하나의 이벤트 또는 하나의 비실시간 서비스에 대응될 수 있으며, 각각 대응되는 가상 채널, 이벤트 또는 비실시간 서비스에 대한 연관 정보를 포함할 수 있다. 수신기(300)는 이와 같은 연관 정보들을 후술할 연결 관계 디스크립터에 기초하여 획득할 수 있다.
수신기(300)는 예를 들어, 프로그램 또는 서비스 가이드에 디스플레이되는 특정 가상 채널, 이벤트 또는 비실시간 서비스에 대해 사용자의 추가 정보 요청이 발생하는 경우, 추가 정보 요청된 특정 가상 채널, 이벤트 또는 비실시간 서비스와 연결된 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템을 이용하여 서비스를 제공할 수 있다. EPG 소비 모델의 비실시간 서비스의 컨텐트 아이템은 예를 들어, 프리뷰, 연관 HTML 페이지 모음, 영화 포스터 이미지 중 적어도 하나를 포함할 수 있다.
따라서, 수신기(300)는 디스플레이된 서비스 가이드에서 특정 이벤트에 대한 사용자의 추가 요청이 있는 경우, 추가 요청 대상인 이벤트에 대응되는 EPG 소비 모델의 비실시간 서비스의 프리뷰 컨텐트 아이템을 실행하고, 사용자에게 디스플레이 함으로써 확장된 EPG 서비스를 제공할 수 있다.
한편, EPG 소비 모델로 지정된 비실시간 서비스(또는 EPG 비실시간 서비스)는 사용자가 인지하지 못하도록 백그라운드를 통해 다운로드 될 수 있다. 그리고, 백그라운드를 통해 다운로드된 EPG 비실시간 서비스의 컨텐트 아이템들은 수신기(300)에서 디스플레이된 방송 서비스 가이드에 대한 사용자의 요청이 있는 경우에 재생(presentation)될 수 있다.
한편, EPG 비실시간 서비스의 컨텐트 아이템들이 백그라운드를 통해 다운로드 및 저장되면, 수신기(300)의 서비스 매니저(350)는 이를 주기적으로 확인 또는 모니터링하고, 업데이트된 버전이 존재한다고 판단되는 경우에는 수신 및 저장된 EPG 비실시간 서비스에 대한 업데이트를 수행할 수 있다.
그리고, 다운로드 및 저장된 EPG 비실시간 서비스의 컨텐트 아이템들 중 수신기(300)가 제공하는 방송 프로그램 또는 서비스 가이드에서 사용자에 의해 추가 정보의 요청이 지시된 특정 가상 채널, 특정 이벤트 또는 비실시간 서비스와 연결된 컨텐트 아이템은 실행(launch) 또는 재생(present)될 수 있다. 이를 위해, 수신기(300)는 각 가상 채널, 이벤트 또는 비실시간 서비스에 대응되는 추가 정보를 포함하는 EPG 비실시간 서비스의 컨텐트 아이템이 수신 또는 저장되었음을 디스플레이할 수 있다. 수신기(300)는 이를 나타내기 위한 인디케이터를 서비스 가이드에 표시할 수도 있다.
그리고, 수신기(300) 또는 수신기(300)의 서비스 매니저(350)는 사용자가 방송 프로그램 또는 서비스 가이드에서 상술한 특정 가상 채널, 이벤트, 또는 비실시간 서비스와 다른 가상 채널, 이벤트, 비실시간 서비스를 선택한 경우 실행 또는 재생된 EPG 비실시간 서비스의 컨텐트 아이템을 종료(closing or exting)할 수 있다. 그리고, 수신기(300)는 사용자가 방송 프로그램 또는 서비스 가이드에서 종료 명령을 선택한 경우에도 실행 또는 재생된 EPG 비실시간 서비스의 컨텐트 아이템을 종료(closing or exting)할 수 있다.
도 140은 본 발명의 일 실시 예에 따른 방송 서비스를 수신하는 방법으로서 특히 EPG 소비 모델의 비실시간 서비스에 기초하여 전자 프로그램 가이드를 제공하는 방법을 설명하기 위한 흐름도이다.
도 140을 참조하면, 먼저 수신기(300)는 VCT, EIT, SMT 및 NRT-IT를 수신하고(S9001), SMT의 서비스 레벨 디스크립터를 파싱한다(S9003).
수신기(300)는 서비스 매니저(350)를 이용하여 서비스 시그널링 채널을 통해 SMT를 수신할 수 있으며, 수신한 SMT로부터 각 비실시간 서비스에 대응되는 복수의 루프들을 파싱할 수 있다. 파싱된 각 루프는 서비스 레벨 디스크립터 루프라고 할 수 있다. 그리고, 수신기(300)는 각 서비스 레벨 디스크립터 루프로부터 비실시간 서비스 디스크립터를 포함하는 서비스 레벨 디스크립터들을 파싱할 수 있다. 비실시간 서비스 디스크립터는 이에 대응되는 비실시간 서비스에 대한 상세 정보를 포함할 수 있다. 그리고, 상세 정보는 해당 비실시간 서비스를 제공하기 위한 수신기의 요구 사항 정보를 포함할 수 있다. 따라서, 수신기(300)는 비실시간 서비스 디스크립터에 기초하여 수신기(300)가 제공 가능한 비실시간 서비스인지를 판단할 수 있다.
한편, 수신기(300)의 서비스 매니저(350)는 방송 채널을 통해 전송되는 방송 신호로부터 PSIP 테이블을 파싱하고, 파싱된 PSIP 테이블들로부터 VCT 및 EIT를 파싱할 수 있다. 수신기는 PSIP 핸들러를 이용하여 VCT 및 EIT를 파싱할 수도 있다.
이후, 수신기(300)는 파싱된 서비스 레벨 디스크립터를 분석하여(S9005), 비실시간 서비스 디스크립터(NRT_service_descriptor)를 확인하고, 비실시간 서비스 디스크립터의 소비 모델 필드(Consumption_ model)의 값이 EPG 소비 모델을 나타내는지를 판단한다. 수신기(300)는 도 74와 같은 테이블을 참조하여 이를 판단할 수 있다. 그리고 그 값이 EPG 소비 모델을 나타내지 않는 경우에는, 수신기(300)는 상술한 다른 비실시간 서비스 소비 모델에 따른 동작을 수행할 수 있다.
그러나, 그 값이 EPG 소비 모델을 나타내는 경우에는 수신기(300)는 EPG 소비 모델로 지정된 비실시간 서비스가 전송됨을 판단할 수 있다. 이 경우 수신기(300)는 EPG 소비 모델의 비실시간 서비스의 수신 정보를 획득한다(S9007).
EPG 소비 모델의 비실시간 서비스의 수신 정보는 비실시간 서비스의 서비스 식별자(Service id) 및 컨텐트 아이템들의 연결관계 정보(content linkage)를 포함할 수 있다. 상술한 바와 같이, 서비스 식별자는 SMT에 포함될 수 있으며, 컨텐트 아이템들의 연결관계 정보는 NRT-IT에 포함될 수 있다. 따라서, 수신기(300)는 SMT와 NRT-IT에 기초하여 EPG 소비 모델의 비실시간 서비스 수신 정보를 획득할 수 있다.
그리고, 수신기(300)는 획득한 EPG 소비 모델의 비실시간 서비스를 구성하는 컨텐트 아이템들을 상기 획득한 수신 정보에 기초하여 FLUTE 세션에 접속하고, 이를 수신하여 저장한다(S9009). EPG 소비 모델의 비실시간 서비스의 수신은 상술한 바와 같이 사용자의 인지 없이 백그라운드에서 이루어질 수 있다. 따라서, EPG 소비 모델의 비실시간 서비스는 사용자 선택 여부에 관계 없이 지속적으로 수신될 수 있다. 그러나, 수신 방식은 사용자 설정에 따라 변경될 수도 있다. 예를 들어, 수신기(300)는 사용자의 설정에 따라 EPG 소비 모델의 비실시간 서비스를 수신하지 않거나, 포어그라운드에서 수신하거나, 사용자 설정한 주기에 따라 수신할 수도 있다. 따라서, 수신기(300)는 사용자 기호에 따라 확장된 EPG 서비스를 수신하고, 제공할 수 있게 된다.
한편, 수신기(300)는 서비스 매니저(350)를 통해 EPG 소비 모델의 비실시간 서비스를 저장부에 수신하고, 관리할 수 있다. 그러나, 상술한 바와 같이, EPG 소비 모델의 비실시간 서비스를 저장부에 수신하고, 관리하기 위해서는 지속적인 일정 크기의 저장 공간이 필요할 수 있다. 또한, 이와 같은 저장 공간의 할당량은 방송 서비스 제공자의 의도에 따라 송신기(200)를 통해 전송될 수 있다. 따라서, 일 실시 예에 따르면, 수신기(300)는 수신기(300) 저장부의 일정 영역을 EPG 소비 모델의 비실시간 서비스의 저장 영역으로 할당하고, 할당된 영역에 EPG 서비스를 수신하여 저장 및 관리할 수 있다. 또한, 송신기(200)는 이와 같은 저장 영역에 대한 정보를 비실시간 서비스 디스크립터에 포함하여 수신기(300)로 전송할 수 있다. 이 경우, 수신기(300)는 지정된 영역에 EPG 서비스를 수신 및 저장하고, 관리할 수 있다.
한편, EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템은 방송 서비스 채널뿐만아니라, IP를 통해 전송될 수도 있다. 이와 같은 IP를 통한 전송은 상술한 인터넷망을 통한 비실시간 서비스 전송 방법에 의해 이루어 질 수 있다. 예를 들어, 수신기(300)는 NRT-IT에 기초하여 EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템을 수신하기 위한 URL 정보를 획득하고, 획득한 URL 정보에 기초하여 인터넷망을 통해 컨텐트 아이템을 구성하는 파일들을 수신할 수 있다. 따라서, 수신기(300)는 인터넷망을 통해 전송되는 EPG 소비 모델의 비실시간 서비스에 포함된 컨텐트 아이템 파일들을 IP를 통해 수신하고, 이를 저장할 수도 있다.
그리고, 수신기(300)는 앞서 파싱한 VCT와 EIT에 기초하여 서비스 가이드를 제공한다(S9011).
가이드가 제공되면, 사용자는 디스플레이된 전자 프로그램 가이드에서 정보를 원하는 컨텐트, 예를 들어 특정 가상 채널, 특정 프로그램(이벤트) 또는 특정 비실시간 서비스를 선택할 수 있다. 따라서, 수신기(300)는 사용자의 선택에 따라 이에 대응되는 컨텐트(가상 채널, 이벤트 또는 비실시간 서비스 오브젝트)를 선택한다(S0913). 사용자는 정보를 원하는 컨텐트 목록을 하이라이트 표시하거나, 인터페이스상의 포인터를 컨텐트 목록에 위치시키거나, 제스처를 이용하여 컨텐트를 선택할 수 있다.
그리고, 수신기(300)는 우선적으로 VCT 또는 EIT에 기초하여 선택된 컨텐트에 대한 정보를 디스플레이한다. 그리고, 수신기(300)는 선택된 컨텐트에 대한 추가 정보 요청이 있는지 판단한다(S9015). 추가 정보 요청이 없는 경우에는 지속적으로 S9011단계를 수행할 수 있다.
여기서, 수신기는 서비스 매니저(350)를 이용하여 추가 정보가 이용 가능한 컨텐트 목록 주변에 이를 나타내는 인디케이터를 표시할 수 있다. 또한, 수신기(300)는 사용자가 인디케이터가 표시된 컨텐트에 대해 추가 정보를 요청하도록 유도할 수 있다. 인디케이터는 상술한 EPG 소비 모델의 비실시간 서비스가 수신 완료된 경우 디스플레이 될 수 있다. 추가 정보는, 예를 들어 EPG 소비 모델의 비실시간 서비스의 컨텐트 아이템에 포함된 프리뷰 정보(영상 정보 또는 이미지 정보) 또는 관련 홈페이지 정보 등을 포함할 수 있다.
한편, 수신기(300)는 선택된 컨텐트에 대한 추가 정보 요청이 있는 경우 선택된 컨텐트에 대응되는 EPG 소비 모델의 비실시간 서비스의 컨텐트 아이템을 식별한다(S9017).
수신기(300)는 서비스 매니저(350)를 이용하여 수신 및 저장된 EPG 소비 모델의 비실시간 서비스로부터 상기 선택된 컨텐트에 대응되는 컨텐트 아이템들을 식별할 수 있다. 예를 들어, 수신기(300)는 선택된 컨텐트가 특정 가상 채널인 경우, VCT에 포함된 특정 가상 채널에 대응되는 연결 관계(linkage) 정보로부터 EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템 식별 정보를 획득하고, 이에 기초하여 수신된 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템들로부터 특정 가상 채널에 대응되는 컨텐트 아이템을 식별할 수 있다.
또한, 수신기(300)는 선택된 컨텐트가 특정 프로그램(이벤트)인 경우, EIT에 포함된 특정 이벤트 또는 프로그램에 대응되는 연결 관계(linkage) 정보로부터 EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템 식별 정보를 획득하고, 이에 기초하여 수신된 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템들로부터 특정 프로그램(이벤트)에 대응되는 컨텐트 아이템을 식별할 수도 있다.
그리고, 수신기(300)는 선택된 컨텐트가 특정 비실시간 서비스 오브젝트인 경우, SMT 또는 NRT-IT에 포함된 특정 이벤트 또는 프로그램에 대응되는 연결 관계(linkage) 정보로부터 EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템 식별 정보를 획득하고, 이에 기초하여 수신된 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템들로부터 특정 비실시간 서비스 오브젝트에 대응되는 컨텐트 아이템을 식별할 수도 있다.
이후, 수신기(300)는 식별된 컨텐트 아이템에 기초하여 상기 선택된 컨텐트에 대한 추가 정보를 제공한다(S9019).
수신기(300)는 식별된 컨텐트 아이템을 실행(launch) 또는 재생(present)함으로써, 선택된 컨텐트에 대한 추가 정보를 제공할 수 있다. 추가 정보는 앞서 설명한 바와 같이, 확장된 EPG를 제공하기 위한 다양하고 풍부한 멀티미디어 정보를 포함할 수 있다. 따라서, 사용자는 서비스 가이드를 시청하면서 추가 정보를 요청할 수 있으며, 요청에 따라 선택된 컨텐트에 대한 다양하고 풍부한 EPG 정보를 획득할 수 있게 된다.
도 141은 본 발명의 일 실시 예에 따른 전자 프로그램 가이드와 각 테이블간의 관계를 설명하기 위한 도면이다.
도 141을 참조하면, 전자프로그램 가이드(400)는 비실시간 서비스 가이드(401)와, 방송 프로그램 가이드(402)를 포함할 수 있다. 수신기(300)는 VCT 및 EIT를 분석하여 비실시간 서비스 가이드(401) 또는 방송 프로그램 가이드(402)를 새성하고, 디스플레이할 수 있다.
또한, 수신기(300)는 각 비실시간 서비스, 가상 채널 또는 이벤트에 대응되는 EPG 소비 모델의 비실시간 서비스의 컨텐트 아이템에 대한 정보를 SMT, VCT 또는 EIT에 기초하여 획득하고, 사용자가 선택한 비실시간 서비스, 가상 채널 또는 이벤트에 대응되는 EPG 서비스의 컨텐트 아이템을 이용하여 추가 정보를 제공할 수 있다.
또한, 수신기(300)는 가상 채널 3-2에 대한 추가 정보 요청이 있는 경우, 이에 대응되는 가상 채널 CH 3-2에 대한 EPG 컨텐트 아이템 식별 정보를 VCT에 포함된 연결 관계(linkage) 정보를 통해 획득할 수 있다. 그리고, 수신기(300)는 EPG 소비 모델의 비실시간 서비스에 대응되는 NRT-IT로부터 해당 컨텐트 아이템 item3을 식별하여 실행(launch) 또는 재생(present)함으로써 비실시간 서비스를 이용한 EPG의 추가 정보를 제공할 수 있다.
마찬가지로, 수신기(300)는 이벤트 E321에 대한 추가 정보 요청이 있는 경우, 이에 대응되는 이벤트 E321에 대한 EPG 컨텐트 아이템 식별 정보를 EIT에 포함된 연결 관계(linkage) 정보를 통해 획득할 수 있다. 그리고, 수신기(300)는 EPG 소비 모델의 비실시간 서비스에 대응되는 NRT-IT로부터 해당 컨텐트 아이템 item1을 식별하여 실행(launch) 또는 재생(present)함으로써 비실시간 서비스를 이용한 EPG의 추가 정보를 제공할 수 있다.
도 142는 본 발명의 일 실시 예에 따라 제공되는 전자 프로그램 가이드를 설명하기 위한 도면이다.
도 142에 도시된 바와 같이, 전자 프로그램 가이드(400)는 상술한 비실시간 서비스 가이드(401), 방송 프로그램 가이드(402)와 함께 사용자가 선택한 컨텐트를 나타내기 위한 하이라이터(403)와, 추가 정보 이용이 가능함을 나타내기 위한 인디케이터(404)를 포함할 수 있다.
사용자는 하이라이터(403)를 이용하여 특정 컨텐트, 예를 들어 특정 비실시간 서비스, 특정 가상 채널 또는 특정 방송 프로그램(이벤트)를 선택할 수 있다.
그리고, 수신기(300)는 각 비실시간 서비스, 가상 채널 또는 이벤트에 대응하여 EPG 소비 모델의 비실시간 서비스가 수신되었는지를 판단하고, 수신된 경우 추가 정보를 이용할 수 있다는 인디케이터(404)를 디스플레이 할 수 있다. 여기서, 인디케이터(404)는 해당 컨텐트 목록 주변에 디스플레이 될 수 있다. 또한, 수신기(300)는 설정에 따라 사용자가 선택한 컨텐트에 대하여 인디케이터(404)를 디스플레이할 수 있으며, 사용자가 선택하지 않은 컨텐트에 대해서도 인디케이터(404)를 디스플레이 할 수 있다. 도 142에서는 인디케이터(404)가 원형으로 도시되고 있으나, 그 형태에 제한되는 것은 아니며, 컨텐트에 대한 추가 정보가 이용 가능하다는 것을 나타내는 문자, 기호 또는 도형 중 적어도 하나의 형태로 디스플레이될 수 있다.
도 143 내지 도 144는 본 발명의 일 실시 예에 따라 사용자가 추가 정보를 요청한 경우의 전자 프로그램 가이드 화면을 나타낸다.
도 143에서는 일 실시 예에서, 사용자가 인디케이터(404)를 선택하여 특정 컨텐트에 대한 추가 정보를 요청한 경우, 실행(launch) 또는 재생(present)되는 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템에 의해 디스플레이되는 확장된 EPG를 나타내고 있다. 예를 들어, 도 143과 같이, 수신기(300)는 사용자가 선택한 컨텐트에 대응되는 확장된 가이드(405)를 더 디스플레이 할 수 있다. 확장된 가이드(405)는 해당 컨텐트에 대한 프리뷰 정보, 연관된 홈페이지 정보, 해당 컨텐트의 상세 정보, 포스터 정보 중 적어도 하나를 선택할 수 있는 메뉴를 포함할 수 있다.
그리고, 사용자가 확장된 가이드(405)의 특정 메뉴, 예를 들어 도 79와 같이 프리뷰 정보를 선택한 경우, 해당 컨텐트에 대한 프리뷰 정보 화면(406)을 전자 프로그램 가이드 위에 추가적으로 디스플레이 할 수 있다. 프리뷰 정보 화면(406)은 도 144와 같이 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템에 포함된 프리뷰 정보를 나타낼 수 있다. 프리뷰 정보는 도 79에 도시된 바와 같이, 해당 컨텐트 E321에 대한 상세 내용, 동영상 또는 VOD 정보를 포함할 수 있으며, 사용자의 선택에 의해 재생될 수 있다.
도 145는 본 발명의 다른 일 실시 예에 따른 연결 관계(linkage) 정보가 다른 테이블과 연계되는 것을 나타내기 위한 도면이다.
도 145에 도시된 바와 같이, 연결 관계(linkage) 정보는 연결 관계(linkage) 디스크립터에 포함될 수 있으며, VCT, EIT, SMT 또는 NRT-IT의 각 테이블의 특정 채널, 특정 이벤트, 특정 비실시간 서비스 또는 특정 비실시간 서비스의 컨텐트 아이템에 대응되는 디스크립터 루프에 포함되어 송신기(200)에 의해 전송될 수 있다. 수신기(300)는 각 디스크립터 루프를 파싱하여, 연결 관계(linkage) 디스크립터를 획득하고, 연결 관계 디스크립터에 기초하여 각 컨텐트에 연계된 EPG 비실시간 서비스의 컨텐트 아이템의 식별 정보를 획득할 수 있다. 그리고, 수신기(300)는 획득한 식별 정보에 기초하여 NRT-IT에서 EPG 소비 모델로 지정된 비실시간 서비스에 대응되는 컨텐트 아이템들 중 특정 컨텐트 아이템을 실행 또는 재생함으로써 추가적인 확장된 EPG 정보를 제공할 수 있다.
도 146은 본 발명의 일 실시 예에 따른 연결 관계(linkage) 디스크립터의 신택스를 나타내는 도면이다.
도 146을 참조하면, 연결 관계 디스크립터는 이벤트 식별자(event_id) 필드 또는 서비스 식별자(service_id) 필드를 더 포함하거나, 서비스 식별자(service_id) 필드와 컨텐트 아이템 식별자(content_linkage) 필드를 더 포함할 수 있다.
타겟 타입 필드(target_type)는 대상 컨텐트의 타입을 나타낼 수 있다. 예를 들어, 도 147에 도시된 바와 같이 타겟 타입 필드는 연결 관계 디스크립터와 연결된 대상 컨텐트의 타입을 필드 값에 대응되도록 나타낼 수 있다. 대상 컨텐트는 TV service(가상 채널), TV 이벤트, 비실시간 서비스 또는 비실시간 서비스의 컨텐트 아이템일 수 있으며, 이에 대응되는 값은 0x00 내지 0x07 중 어느 하나일 수 있다. 따라서, 수신기(300)는 타겟 타입 필드에 기초하여 어떤 타입의 서비스와 연관되어 있는지를 판단할 수 있다.
도 147은 본 발명의 실시 예에 따른 연결 관계 디스크립터의 타겟 타입 필드를 나타낸다. 도 147과 같이, 연결 관계 디스크립터는 타겟 타입 필드에 따라, 타겟 타입 필드가 TV 이벤트(0x02)를 나타내는 경우, 이벤트 식별자(event_id) 필드를 포함할 수 있으며, 타겟 타입 필드가 비실시간 서비스(0x03)를 나타내는 경우, 서비스 식별자(service_id) 필드를 포함할 수 있고, 타겟 타입 필드가 비실시간 서비스의 컨텐트 아이템(0x04을 나타내는 경우, 서비스 식별자(service_id) 필드와 컨텐트 아이템 식별자(content_linkage) 필드를 포함할 수 있다. 따라서, 수신기(300)는 타겟 타입 필드를 먼저 파싱하고, 타겟 타입 필드의 값에 기초하여 대상 컨텐트의 타입을 판단하며, 판단된 컨텐트 타입에 따라 각 식별자 필드를 획득함으로써, 대상 컨텐트를 식별할 수 있게 된다.
한편, 본 발명의 다른 일 실시 예에 따르면, 수신기(300)는 서비스 가이드를 디스플레이하기 위한 컨텐트(가상 채널, 이벤트 또는 비실시간 서비스)들의 설명적인(descriptive) 정보를 포함할 수 있다. 이를 위하여 수신기(300)는 방송 채널 또는 비실시간 서비스 시그널링 채널을 통해 전송되는 테이블들로부터 연결 관계 디스크립터를 획득할 수 있다.
연결 관계 디스크립터는 VCT 내 특정 가상 채널에 대응되는 채널 레벨 디스크립터 루프에 포함될 수 있다. 또한, 연결 관계 디스크립터는 EIT 인스턴스 내 특정 이벤트에 대응되는 이벤트 레벨 디스크립터 루프에 포함될 수 있다. 그리고, 연결 관계 디스크립터는 특정 비실시간 서비스에 대응되는 SMT 내 서비스 레벨 디스크립터 루프에 포함될 수 있다.
수신기(300)는 이와 같은 연결 관계 디스크립터가 포함된 VCT, EIT 또는 SMT 테이블 내 위치에 기초하여 어떤 가상 채널, 이벤트 또는 비실시간 서비스의 설명적인(descriptive)정보를 포함하고 있는지를 판단할 수 있다.
또한, 수신기(300)는 연결 관계 디스크립터에 포함된 연결 관계 정보에 기초하여 상술한 가상 채널, 이벤트 또는 비실시간 서비스와 연결된 EPG 소비 모델 비실시간 서비스의 하나 이상의 컨텐트 아이템들을 식별할 수 있다. 수신기(300)는 하나 이상의 컨텐트 아이템들을 실행 또는 재생함으로써, 상술한 바와 같이 특정 가상 채널, 이벤트 또는 비실시간 서비스에 대한 추가 정보를 제공할 수 있으며, 추가 정보는 사용자가 시청하고 있는 서비스 가이드에 디스플레이 될 수 있다.
도 148은 이와 같은 연결 관계 디스크립터의 다른 일 실시 예를 나타낸다.
연결된 컨텐트 아이템 개수(num_of_linked_content_items) 필드는 이 필드를 즉시 뒤따르는 필드로부터 시작되는 루프들에서 식별되는 컨텐트 아이템들의 개수를 나타내는 8비트 부호없는 정수일 수 있다.
서비스 식별자 참조(Service_id_ref) 필드는 비실시간 서비스의 서비스 식별자 필드와 매칭되는 16비트 부호없는 정수일 수 있다. 본 필드에 의해 매칭되는 비실시간 서비스는 프로그램 또는 서비스 가이드를 위한 설명적인 정보를 제공하는 것을 목적으로 하며, 그 비실시간 서비스는 EPG 소비 모델로 지정된 비실시간 서비스일 수 있다. EPG 소비 모델로 지정된 비실시간 서비스는 본 연결 관계 디스크립터를 포함하는 방송 스트림에 함께 포함되어 전송될 수 있으며, 같은 방송 영역 내 다른 방송 스트림을 통해 전송될 수도 있다.
컨텐트 식별자 참조(content_linkage_ref) 필드는 NRT-IT 인스턴스 내 상기 서비스 식별자 참조 필드가 나타내는 EPG 소비 모델로 지정된 비실시간 서비스의 컨텐트 아이템에 대응되는 컨텐트 아이템 식별자(content_linkage) 필드와 매칭되는 32비트 부호없는 정수 일 수 있다. 따라서, 수신기(300)는 이 필드를 파싱하여 EPG 소비 모델 비실시간 서비스의 컨텐트 아이템을 연결 관계 디스크립터에 의해 연결된 컨텐트 아이템으로 식별할 수 있다.
역할(role) 필드는 상기 식별된 컨텐트 아이템의 역할을 나타내는 4비트 부호없는 정수일 수 있다. 역할 필드에 할당되는 값에 따른 의미는 예를 들어, 역할 필드의 값이 0인 경우, 상기 식별된 컨텐트 아이템은 프리뷰 역할을 수행함을 나타낼 수 있다. 또한, 역할 필드의 값이 1인 경우에는 상기 식별된 컨텐트 아이템은 일반 설명(General description) 역할을 수행함을 나타낼 수 수 있다.
한편, 이와 같이 본 발명의 실시 예에 의해 제공되는 전자 프로그램 가이드는 DO의 동작에 따라 제공될 수 있다. 그러나, 화면의 일부만 보여지는 전자 프로그램 가이드의 경우, 수신기의 해상도에 맞추어서 어플리케이션이 제작되어야 하므로 고정된 영역에서 이동하지 못할 수 있다. 즉, 전자 프로그램 가이드 서비스 등이 수신기나 미디어 재생기에서 재생되어 화면에 보여질 때, 양방향 오브젝트들에 대한 동작이 필요할 수 있다. 예를 들어, 캡션이 화면에 추가로 표시 될 경우 전자 프로그램 가이드의 위치를 이동시킬 필요가 있다.
따라서, 본 발명의 실시 예에 따르면, 화면의 일부 영역을 지정하여 전자 프로그램 가이드를 제공할 수 있다. 또한, 다른 서비스와의 충돌로 인한 겹치는 영역이 발생하는 경우, 그 전자 프로그램 가이드를 지정된 다른 위치로 이동시킬 수 있다.
앞서 설명한 바와 같이, 전자 프로그램 가이드는 NRT 서비스를 통해 전송될 수 있으며, NRT 서비스에 대응되는 DO(Declarative Object)의 동작에 의해 실행될 수 있다. DO는 앞에서 언급한 바와 같이 방송 네트워크 또는 인터넷망을 통하여 전송될 수 있으며, DO는 특정 시점에 방송 서비스에 대한 부가 서비스로 수신기(300)에서 제공될 수 있다. 수신기(300)는 사용자에게 현재 컨텐츠에 부가 서비스가 있음을 알려 줄 필요가 있으며, 수신기(300) 앞서 설명한 트리거의 동작에 의해, 부가 서비스 제공이 가능함을 사용자에게 알려줄 수도 있다. 사용자는 부가 서비스 제공이 가능함을 인식할 수 있으며, 선택에 따라 그 부가 서비스를 제공받거나, 현재 컨텐츠 시청을 그대로 유지할 수 있다.
그리고, 일 실시 예에서, 수신기(300)는 이와 같은 부가 서비스에 포함된 전자 프로그램 가이드를 디스플레이 할 수 있다. 전자 프로그램 가이드 DO는 미리 지정된 특정 위치 정보 및 수신기(300)의 해상도 정보에 기초하여 얻어 전자 프로그램 가이드를 표시할 화면의 일부 영역 위치를 결정할 수 있다. 수신기(300)는 전체 화면에서 결정된 일부 영역을 제외한 위치는 투명하게(원래 재생중인 화면을 그대로) 보여줄 수도 있다.
그리고, 전자 프로그램 가이드 또는 부가 서비스 DO 제작자들이 필요한 영역만을 디자인을 하도록 하는 것이 효과적일 수 있다. 따라서, 본 발명의 실시 예에 따르면, 부가 서비스 또는 전자 프로그램 가이드 제작자는 화면의 전체 영역을 고려하고 DO를 제작할 필요가 없이 특정 일부 영역에 대해서만 DO를 제작할 수 있게 된다. 이는 DO 제작자에게 제작시에 불필요한 영역에 대한 고려를 하지 않아도 되므로 제작 기간을 줄일 수 있고 디자인 및 프로그래밍도 용이할 수 있다.
한편, 화면 일부 영역에서 동작하는 DO는 필요에 따라서 이동할 필요가 있다. 예를 들어 미디어 캡션과 같은 부가 서비스를 사용자가 실행시킬 경우에 전자 프로그램 가이드는 이러한 기본적인 캡션 서비스를 방해하지 않고, 이동될 수 있다.
도 149는 본 발명의 실시 예에 따른 화면의 일부 영역에서 동작하는 DO를 나타낸다.
현재 일반적으로 사용되고 있는 방식으로는, 전자 프로그램 가이드 제공 등에 있어서, 전체 화면으로 서비스를 제공하거나, 불필요한 영역에 투명 처리를 하는 방식이 사용되고 있다.
그러나, 도 149에 도시된 바와 같이, 본 발명의 실시 예에 따르면 수신기(300)는 Using Area로 지정된 화면 전체 영역 중 지정된 일부 영역(400)을 할당하여 전자 프로그램 가이드를 포함하는 부가 서비스를 제공할 수 있다. 뿐만 아니라, 지정된 일부 영역(400)은 서비스 제공 중 그 위치가 변경될 수 있다.
수신기(300)는 앞서 설명한 부가 서비스에 대한 시그널링 정보에 기초하여 상기 일부 영역(400)을 결정할 수 있다. 또한, 수신기(300)는 방송망 또는 인터넷망을 통해 수신되는 위치 정보에 기초하여 일부 영역(400)을 할당할 수도 있다. 이와 같은 일부 영역에 대한 정보는 예를 들어, 트리거에 포함되어 전송되거나, 시그널링 테이블에 포함되어 전송될 수 있다.
따라서, 수신기(300)는 부가 서비스를 언제 어느 영역에 실행해야 하는지를 판단할 수 있다. 부가 서비스는 앞서 설명한 바와 같이 전자 프로그램 가이드 또는 캡션 서비스 등을 포함할 수 있으며, 각각의 실행을 위한 영역은 서비스 제공자에 의해 안전 영역(Safe Area)으로 미리 지정될 수도 있다. 이와 같은 안전 영역에 대한 정보는 시그널링 정보 또는 트리거에 포함되어 수신기(300)로 전송될 수 있다. 수신기(300)는 안전 영역 및 현재 수신기(300)에서 동작하는 부가 서비스들간의 관계에 기초하여 부가 서비스들이 표시될 일부 영역들을 결정할 수 있다.
그리고, 수신기(300)는 전자 프로그램 가이드가 디스플레이될 일부 영역을 다른 오브젝트의 실행에 대응하여 미리 변경할 수 있다. 따라서, 수신기(300)는 오브젝트들간의 디스플레이 영역 이동 스케쥴을 테이블을 이용하여 관리할 수도 있다.
한편, 도 150은 본 발명의 실시 예에 따른 전자 프로그램 가이드가 표시될 일부 영역들을 나타낸다.
도 150에 도시된 바와 같이, 본 발명의 실시 예에 따른 전자 프로그램 가이드가 표시될 영역은 2 이상의 영역으로 지정될 수 있다. 예를 들어, 전자 프로그램 가이드에 대응되는 NRT 오브젝트의 영역으로 2 이상의 안전 영역이 지정될 수 있다. 수신기(300)는 2 이상의 영역 중 하나의 영역을 선택하여 전자 프로그램 가이드를 표시할 수도 있다.
또한, 수신기(300)는 현재 디스플레이하던 전자 프로그램 가이드가 다른 오브젝트(DO)와 가릴 예정인 경우, 도 150과 같이 미리 지정된 2 이상의 영역 중 현재 영역과 다른 어느 하나의 영역으로 전자 프로그램 가이드를 이동시킬 수도 있다. 수신기(300)는 이를 위해, 전자 프로그램 가이드와 상이한 다른 NRT 서비스 오브젝트가 화면의 어떤 영역에 언제 출력될지에 대한 정보를 미리 연산하고, 테이블로 관리할 수 있다. 따라서, 수신기(300)는 전자 프로그램 가이드와 다른 오브젝트간 가려짐이 없도록 미리 준비할 수 있다.
이와 같이, 수신기(300)가 오브젝트의 위치를 변경하기 위해서, 방송 서비스 제공자는 컨텐트의 부가 서비스들을 표시하는 영역을 서로 겹치지 않도록 수신기(300)에 위치 정보를 제공할 수 있다.
또한, 수신기(300)는 위치 정보 획득 없이도 임의의 화면 위치에 오브젝트를 이동시켜 겹치지 않도록 표시할 수도 있다.
그리고, 수신기(300)는 재생중인 방송 컨텐트에 따라, 오브젝트의 사이즈를 변경할 수도 있다. 예를 들어, 수신기(300)는 전자 프로그램 가이드의 사이즈를 사용자가 시청중인 방송 컨텐트에 따라 변경시킬 수 있다. 이는 시청자로 하여금 화면의 영상에 더 집중하게 하였다가 컨텐츠의 중요한 부분이 지나가고 다시 서비스를 제공할때 매우 유용할 수 있다. 수신기(300)는 방송 영상의 상태에 따라 간단한 정보만을를 화면의 한쪽에 작게 보여 주었다가, 일정 시간 이후 더 많은 정보를 이동하여 화면에 크게 보이게 변경 할 수 있다.
예를 들면, 방송사가 드라마를 방송할때 홈쇼핑 오브젝트가 화면의 많은 영역을 가리고 있으면 좋지 않을 수 있다. 따라서 이 경우 드라마가 방송되는 시간 구간에서는 홈쇼핑 오브젝트를 작게 표시할 수 있으며, 이후 드라마가 종료된 경우 홈쇼핑 오브젝트를 크게 변경하도록 제어할 수 있다.
도 151은 부가 서비스 오브젝트가 표시될 영역 및 크기별로 인덱스가 할당되는 것을 나타낸다.
도 151에 도시된 바와 같이, 수신기(300)는 전자 프로그램 가이드와 같은 부가 서비스 오브젝트가 표시될 복수의 위치 및 크기를 설정하고, 인덱스를 각각 할당할 수 있다. 수신기(300)는 디스플레이 상태에 따라, 미리 설정된 인덱스 중 어느 하나를 선택함으로써, 오브젝트가 표시될 위치 및 크기를 결정할 수 있다.
한편, 도 152는 본 발명의 실시 예에 따른 오브젝트가 사용 불가능한 영역의 지정을 나타낸다.
도 152에 도시된 바와 같이, 수신기(300)는 채널 배너와 같은 사용하면 안되는 영역을 미리 설정할 수 있다.
이 경우, 수신기(300)는 앞서 설명한 전자 프로그램 가이드 등의 부가 서비스 오브젝트 실행시, 미리 설정된 사용 불가 영역이 아닌 영역으로 오브젝트를 이동시켜 표시할 수 있다.
예를 들어, 캡션 서비스가 10:00:00부터 10:50:00까지 제공되고, 그 50분동안 캡션 서비스가 On 되어 동작하는 경우, 수신기(300)는 캡션 서비스 영역을 사용 불가 영역으로 지정할 수 있다. 또한, 방송 서비스 제공자가 수신기(300)에 사용 불가 영역 정보를 시그널링 할 수도 있다. 수신기(300)는 사용 불가 영역을 제외한 디스플레이 영역의 다른 영역에 전자 프로그램 가이드와 같은 부가 서비스 오브젝트를 디스플레이 할 수 있다.
또한, 도 152에 도시된 바와 같이, Channel Banner가 화면에 표시될 경우에는 이 영역에 다른 오브젝트가 표시될 수 없으므로, 수신기(300)는 그 영역을 사용 불가 영역으로 지정할 수 있다. 그리고, 수신기(300)는 Channel Banner가 표시되기 직전에, 중복되는 위치에 디스플레이되던 다른 오브젝트들을 사용 불가 영역을 제외한 다른 위치으로 미리 이동시킬 수 있다.
상술한 본 발명의 실시 예에 따른 방송 서비스 전송 방법 및 수신 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다.
컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해 되어서는 안될 것이다.

Claims (20)

  1. 방송 수신 장치의 동작 방법에 있어서,
    오디오 또는 비디오를 수신하고, 상기 오디오 또는 비디오는 인터넷 프로토콜(internet protocol, IP) 네트워크를 통해 전송되지 않는 방송 스트림에 포함되는 것인 단계;
    시그널링 테이블을 획득하기 위한 주소 정보를 상기 방송 스트림을 통해 수신하는 단계;
    시그널링 테이블을 위한 요청 메시지를 상기 주소 정보에 기초하여 시그널링 서버에 전송하는 단계; 및
    상기 요청 메시지에 기초하여 상기 시그널링 테이블을 IP 네트워크를 통하여 수신하는 단계를 포함하고,
    상기 요청 메시지는 상기 요청 메시지의 시간 정보를 포함하는 제1 쿼리 정보와 상기 시그널링 테이블을 지정하는 제2 쿼리 정보를 포함하고,
    상기 제1 쿼리 정보는 상기 시그널링 서버에 대한 상기 요청 메시지의 요청 시간 구간의 길이 및 상기 시간 구간의 시작 시간을 포함하는동작 방법.
  2. 제1항에 있어서,
    상기 제1 쿼리 정보는 상기 요청 메시지가 업데이트를 위한 것인지를 표시하는 업데이트 플래그를 포함하는
    동작 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제1 쿼리 정보는 아래의 쿼리 형식을 사용하고,
    start=<start_time>[&duration=<duration>][&update],
    start_time은 상기 요청 메시지를 위한 시간 구간의 시작 시간을 나타내고, duration은 요청 메시지를 위한 시간 구간의 길이이고, update는 상기 요청 메시지가 업데이트를 위한 것인지를 표시하는 업데이트 플래그인
    동작 방법.
  6. 제1항에 있어서,
    상기 제2 쿼리 정보는 채널 식별자, 서비스 식별자 및 시그널링 테이블 식별자 중 적어도 어느 하나를 포함하고,
    상기 채널 식별자는 상기 시그널링 테이블에 의하여 시그널링되는 가상 채널의 채널 번호를 나타내고,
    상기 서비스 식별자는 상기 시그널링 테이블에 의하여 시그널링되는 NRT 서비스의 식별자를 나타내고,
    상기 시그널링 테이블 식별자는 상기 시그널링 테이블을 식별하는 식별자를 나타내는
    동작 방법.
  7. 제6항에 있어서,
    상기 시그널링 테이블 식별자는 PSIP 셋, Basic NRT 셋, Extended NRT 셋, VCT, EIT, ETT, SMT, NRT-IT, TFT, PIT 및 PTCT 중 적어도 어느 하나를 나타내는
    동작 방법.
  8. 제7항에 있어서,
    상기 PSIP 셋은 상기 방송 스트림의 가상 채널을 위한 TVCT, EIT 및 ETT를 포함하고,
    상기 Basic NRT 셋은 상기 방송 스트림의 NRT 서비스를 위한 SMT, NRT-IT 및 TFT를 포함하고,
    상기 Extended NRT 셋은 상기 방송 스트림의 NRT 서비스를 위한 상기 Basic NRT 셋, PIT 및 PTCT를 포함하는
    동작 방법.
  9. 제1항에 있어서,
    상기 오디오 또는 비디오는 비압축 오디오 또는 비압축 비디오이고,
    상기 시그널링 서버의 주소를 수신하는 단계는
    상기 오디오 또는 비디오에 기초하여 상기 시그널링 서버의 주소를 수신하는 단계를 포함하는
    동작 방법.
  10. 제9항에 있어서,
    상기 오디오 또는 비디오에 기초하여 상기 시그널링 서버의 주소를 수신하는 단계는
    상기 오디오 또는 비디오의 프레임으로부터 시그너처를 추출하는 단계와
    상기 시그너처에 기초하여 상기 시그널링 서버의 주소를 수신하는 단계를 포함하는
    동작 방법.
  11. 방송 수신 장치에 있어서,
    인터넷 프로토콜(internet protocol, IP) 네트워크를 통해 전송되지 않는 방송 스트림에 포함된 오디오 또는 비디오를 수신하는 수신부; 및
    시그널링 테이블을 획득하기 위한 주소 정보를 상기 방송 스트림을 통해 수신하고, 시그널링 테이블을 위한 요청 메시지를 상기 주소 정보에 기초하여 시그널링 서버에 전송하고, 상기 요청 메시지에 기초하여 상기 시그널링 테이블을 IP 네트워크를 통하여 수신하는 서비스 매니저를 포함하고,
    상기 요청 메시지는 상기 요청 메시지의 시간 정보를 포함하는 제1 쿼리 정보와 상기 시그널링 테이블을 지정하는 제2 쿼리 정보를 포함하고,
    상기 제1 쿼리 정보는 상기 시그널링 서버에 대한 상기 요청 메시지의 요청 시간 구간의 길이 및 상기 시간 구간의 시작 시간을 포함하는
    방송 수신 장치.
  12. 제11항에 있어서,
    상기 제1 쿼리 정보는 상기 요청 메시지가 업데이트를 위한 것인지를 표시하는 업데이트 플래그를 포함하는
    방송 수신 장치.
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 제1 쿼리 정보는 아래의 쿼리 형식을 사용하고,
    start=<start_time>[&duration=<duration>][&update],
    start_time은 상기 요청 메시지를 위한 시간 구간의 시작 시간을 나타내고, duration은 요청 메시지를 위한 시간 구간의 길이이고, update는 상기 요청 메시지가 업데이트를 위한 것인지를 표시하는 업데이트 플래그인
    방송 수신 장치.
  16. 제11항에 있어서,
    상기 제2 쿼리 정보는 채널 식별자, 서비스 식별자 및 시그널링 테이블 식별자 중 적어도 어느 하나를 포함하고,
    상기 채널 식별자는 상기 시그널링 테이블에 의하여 시그널링되는 가상 채널의 채널 번호를 나타내고,
    상기 서비스 식별자는 상기 시그널링 테이블에 의하여 시그널링되는 NRT 서비스의 식별자를 나타내고,
    상기 시그널링 테이블 식별자는 상기 시그널링 테이블을 식별하는 식별자를 나타내는
    방송 수신 장치.
  17. 제16항에 있어서,
    상기 시그널링 테이블 식별자는 PSIP 셋, Basic NRT 셋, Extended NRT 셋, VCT, EIT, ETT, SMT, NRT-IT, TFT, PIT 및 PTCT 중 적어도 어느 하나를 나타내는
    방송 수신 장치.
  18. 제17항에 있어서,
    상기 PSIP 셋은 상기 방송 스트림의 가상 채널을 위한 TVCT, EIT 및 ETT를 포함하고,
    상기 Basic NRT 셋은 상기 방송 스트림의 NRT 서비스를 위한 SMT, NRT-IT 및 TFT를 포함하고,
    상기 Extended NRT 셋은 상기 방송 스트림의 NRT 서비스를 위한 상기 Basic NRT 셋, PIT 및 PTCT를 포함하는
    방송 수신 장치.
  19. 제11항에 있어서,
    상기 오디오 또는 비디오는 비압축 오디오 또는 비압축 비디오이고,
    상기 서비스 매니저는 상기 오디오 또는 비디오에 기초하여 상기 시그널링 서버의 주소를 수신하는
    방송 수신 장치.
  20. 제19항에 있어서,
    상기 서비스 매니저는 상기 오디오 또는 비디오의 프레임으로부터 시그너처를 추출하고, 상기 시그너처에 기초하여 상기 시그널링 서버의 주소를 수신하는
    방송 수신 장치.
KR1020147008641A 2011-10-20 2012-10-22 방송 서비스 수신 방법 및 방송 서비스 수신 장치 KR101691266B1 (ko)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201161549725P 2011-10-20 2011-10-20
US61/549,725 2011-10-20
US201161558455P 2011-11-11 2011-11-11
US61/558,455 2011-11-11
US201161559679P 2011-11-14 2011-11-14
US61/559,679 2011-11-14
US201161568633P 2011-12-08 2011-12-08
US61/568,633 2011-12-08
US201161578862P 2011-12-21 2011-12-21
US61/578,862 2011-12-21
US201261595146P 2012-02-05 2012-02-05
US61/595,146 2012-02-05
US201261596714P 2012-02-08 2012-02-08
US61/596,714 2012-02-08
US201261606460P 2012-03-04 2012-03-04
US61/606,460 2012-03-04
PCT/KR2012/008687 WO2013058633A1 (ko) 2011-10-20 2012-10-22 방송 서비스 수신 방법 및 방송 서비스 수신 장치

Publications (2)

Publication Number Publication Date
KR20140090977A KR20140090977A (ko) 2014-07-18
KR101691266B1 true KR101691266B1 (ko) 2016-12-29

Family

ID=48141146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008641A KR101691266B1 (ko) 2011-10-20 2012-10-22 방송 서비스 수신 방법 및 방송 서비스 수신 장치

Country Status (5)

Country Link
US (1) US9712864B2 (ko)
KR (1) KR101691266B1 (ko)
CN (1) CN103975602B (ko)
CA (1) CA2851607C (ko)
WO (1) WO2013058633A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048745B1 (en) * 2010-09-30 2018-08-14 The Directv Group, Inc. Method and system for storing program guide data in a user device
US9402107B2 (en) 2013-03-15 2016-07-26 Time Warner Cable Enterprises Llc Apparatus and methods for delivery of multicast and unicast content in a content delivery network
US9066153B2 (en) * 2013-03-15 2015-06-23 Time Warner Cable Enterprises Llc Apparatus and methods for multicast delivery of content in a content delivery network
JP6394591B2 (ja) * 2013-04-05 2018-09-26 ソニー株式会社 制御装置、制御方法、コンピュータプログラム及び映像伝送システム
KR102148180B1 (ko) 2014-02-28 2020-08-26 삼성전자주식회사 디지털 방송 시스템에서 시그널링 정보 송/수신 방법 및 장치
US10979780B2 (en) 2014-09-05 2021-04-13 Saturn Licensing Llc Receiving device, receiving method, transmission device, and transmission method
JP6614154B2 (ja) 2014-10-28 2019-12-04 ソニー株式会社 受信装置、送信装置、およびデータ処理方法
MX2017005215A (es) * 2014-10-28 2017-07-27 Sony Corp Aparato de recepcion, aparato de transmision y metodo de procesamiento de datos.
WO2016122269A1 (ko) * 2015-01-29 2016-08-04 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR101956037B1 (ko) * 2015-01-29 2019-03-08 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR101814404B1 (ko) * 2015-03-01 2018-01-04 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR101853670B1 (ko) 2015-03-01 2018-05-02 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
KR102387881B1 (ko) 2015-04-17 2022-04-18 삼성전자주식회사 방송 서비스를 구성하는 콘텐츠 관련 정보들을 제공하는 방법 및 장치
WO2016171496A1 (ko) * 2015-04-23 2016-10-27 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
WO2016174960A1 (ja) * 2015-04-30 2016-11-03 ソニー株式会社 受信装置、送信装置、およびデータ処理方法
WO2016190720A1 (ko) * 2015-05-28 2016-12-01 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
US10721502B2 (en) * 2015-07-06 2020-07-21 Lg Electronics Inc. Broadcasting signal transmission device, broadcasting signal reception device, broadcasting signal transmission method, and broadcasting signal reception method
CA2987894C (en) * 2015-07-16 2023-10-24 Sony Corporation Receiver apparatus, transmitter apparatus, and data processing method
EP3334166A4 (en) * 2015-08-05 2019-02-20 Sony Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND CONTROL DEVICE
CN107925790B (zh) * 2015-08-17 2022-02-22 索尼公司 接收设备、发送设备和数据处理方法
EP3136734A1 (en) * 2015-08-24 2017-03-01 Thomson Licensing Method for synchronized rendering of audio/video content on a plurality audio/video rendering devices and corresponding apparatus
US9854326B1 (en) * 2015-09-09 2017-12-26 Sorenson Media, Inc. Creating and fulfilling dynamic advertisement replacement inventory
EP3352463B1 (en) * 2015-09-18 2021-08-25 Sony Group Corporation Transmission device, reception device for delivering non real time content in parallel to a broadcasting program
KR102558781B1 (ko) * 2015-10-05 2023-07-25 소니그룹주식회사 수신 장치, 송신 장치 및 데이터 처리 방법
KR102431440B1 (ko) * 2016-01-27 2022-08-11 주식회사 마크애니 방송 신호 인식 시스템 및 그의 동작 방법
US9800819B2 (en) * 2016-02-19 2017-10-24 Sony Corporation Methodologies and apparatus for reducing delays when receiving, processing, or switching content
KR102572699B1 (ko) * 2016-07-27 2023-08-31 삼성전자주식회사 영상 표시 장치 및 그 동작 방법
US10681147B2 (en) 2016-08-15 2020-06-09 Saturn Licensing Llc URLs for acquiring or transmitting data
CN110691270B (zh) * 2018-07-06 2024-02-06 山西京固科技集团有限公司 一种直播中违规处理的方案
US11018754B2 (en) * 2018-08-07 2021-05-25 Appareo Systems, Llc RF communications system and method
US10764640B2 (en) * 2018-11-23 2020-09-01 Sony Corporation Receiver device including native broadcaster application
CN111147126B (zh) * 2019-12-26 2021-11-23 中国人民解放军空军勤务学院 北斗卫星短报文通信数据拆包传输方法
US11310568B2 (en) * 2020-05-05 2022-04-19 Panasonic Avionics Corporation Systems and methods for securely providing preview samples of media content distributed to in-flight entertainment systems
CN114584630B (zh) * 2020-11-18 2023-10-27 中移物联网有限公司 一种基于现场总线协议的通信方法及设备
KR102640666B1 (ko) * 2022-02-04 2024-02-27 엘지전자 주식회사 방송 신호 수신 방법 및 방송 신호 수신 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327894A1 (en) 2008-04-15 2009-12-31 Novafora, Inc. Systems and methods for remote control of interactive video
US20100134701A1 (en) 2008-12-03 2010-06-03 Mark Kenneth Eyer Non-real time services

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090006337A1 (en) * 2005-12-30 2009-01-01 Mediaguide, Inc. Method and apparatus for automatic detection and identification of unidentified video signals
KR101306715B1 (ko) * 2007-02-09 2013-09-11 엘지전자 주식회사 방송 신호 수신 장치 및 방송 신호 송수신 방법
KR101405966B1 (ko) * 2007-06-26 2014-06-20 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US7646828B2 (en) 2007-08-24 2010-01-12 Lg Electronics, Inc. Digital broadcasting system and method of processing data in digital broadcasting system
KR20090088771A (ko) * 2008-02-15 2009-08-20 삼성전자주식회사 디지털 비디오 방송 시스템에서 통신채널로 통지메시지를전송하는 장치 및 방법
KR101701853B1 (ko) * 2008-05-02 2017-02-02 엘지전자 주식회사 방송 신호 수신 방법 및 방송 신호 수신 장치
WO2010021493A2 (en) * 2008-08-20 2010-02-25 Samsung Electronics Co,. Ltd. Method and apparatus for transmitting broadcast data, and method and apparatus for receiving broadcast data
KR101575632B1 (ko) * 2008-08-20 2015-12-08 삼성전자주식회사 방송 데이터를 전송하는 방법 및 장치와 방송 데이터를 수신하는 방법 및 장치
KR101635890B1 (ko) * 2008-11-18 2016-07-04 엘지전자 주식회사 방송 신호를 수신하는 방법 및 방송 수신기
US8166192B2 (en) * 2008-11-18 2012-04-24 Lg Electronics Inc. Method of processing non-real time service and broadcast receiver
WO2010107167A1 (en) * 2009-03-19 2010-09-23 Lg Electronics Inc. Transmitting/receiving system and method of processing data in the transmitting/receiving system
KR101652808B1 (ko) 2009-03-19 2016-09-01 엘지전자 주식회사 송/수신 시스템 및 데이터 처리 방법
KR20090057197A (ko) 2009-04-24 2009-06-04 주식회사 신한은행 주가지수 연동대출 시스템
US9467493B2 (en) * 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
KR101206698B1 (ko) * 2010-10-06 2012-11-30 한국항공대학교산학협력단 스트리밍 콘텐츠 제공 장치 및 방법
US9838741B2 (en) * 2011-08-10 2017-12-05 Lg Electronics Inc. Method for transmitting broadcast service, method for receiving broadcast service, and apparatus for receiving broadcast service
KR102267861B1 (ko) * 2012-06-19 2021-06-23 소니그룹주식회사 대화형 텔레비전을 위한 트리거 파라미터 테이블의 확장
US9253518B2 (en) * 2012-11-09 2016-02-02 Sony Corporation On-demand access to scheduled content

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327894A1 (en) 2008-04-15 2009-12-31 Novafora, Inc. Systems and methods for remote control of interactive video
US20100134701A1 (en) 2008-12-03 2010-06-03 Mark Kenneth Eyer Non-real time services

Also Published As

Publication number Publication date
US9712864B2 (en) 2017-07-18
CA2851607A1 (en) 2013-04-25
KR20140090977A (ko) 2014-07-18
CA2851607C (en) 2018-02-06
US20150052570A1 (en) 2015-02-19
CN103975602B (zh) 2017-06-09
CN103975602A (zh) 2014-08-06
WO2013058633A1 (ko) 2013-04-25

Similar Documents

Publication Publication Date Title
KR101691266B1 (ko) 방송 서비스 수신 방법 및 방송 서비스 수신 장치
KR101976052B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 방송 서비스 수신 장치
KR101695514B1 (ko) 방송 서비스 전송 방법, 그 수신 장치 및 그 수신 장치의 부가 서비스 처리 방법
KR101703866B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 방송 서비스 수신 장치
KR101479890B1 (ko) 미디어 콘텐트 송수신 방법 및 그를 이용한 송수신 장치
KR101814398B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 그 수신 장치
KR101654439B1 (ko) 방송 서비스 수신 방법 및 그 수신 장치
KR101735881B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 그 수신 장치
CA2823037C (en) Method for transmitting a broadcast service, and method and apparatus for receiving same
KR101980712B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 그 수신 장치
KR101713369B1 (ko) 방송 서비스 전송 방법, 그 수신 방법 및 그 수신 장치
CA2827384C (en) Apparatus and method for transmitting and receiving a broadcasting service
CA2822968C (en) Broadcast service transmitting method, broadcasting service receiving method and broadcast service receiving apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191114

Year of fee payment: 4