KR20110112806A - 비실시간 서비스 처리 방법 및 방송 수신기 - Google Patents
비실시간 서비스 처리 방법 및 방송 수신기 Download PDFInfo
- Publication number
- KR20110112806A KR20110112806A KR1020117013810A KR20117013810A KR20110112806A KR 20110112806 A KR20110112806 A KR 20110112806A KR 1020117013810 A KR1020117013810 A KR 1020117013810A KR 20117013810 A KR20117013810 A KR 20117013810A KR 20110112806 A KR20110112806 A KR 20110112806A
- Authority
- KR
- South Korea
- Prior art keywords
- service
- nrt
- field
- data
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4345—Extraction or processing of SI, e.g. extracting service information from an MPEG stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
비실시간으로 전송되는 서비스를 수신하여 처리하는 방송 수신기의 비실시간 서비스 처리 방법 및 방송 수신기가 개시된다. 상기 방송 수신기의 비실시간 서비스 처리 방법은 비실시간 서비스의 접속 정보를 포함하는 시그널링 정보 테이블을 수신하여 처리하는 단계, 상기 시그널링 정보 테이블을 기반으로 상기 비실시간 서비스의 데이터를 비실시간으로 수신하여 저장 매체에 저장하는 단계, 상기 시그널링 정보 테이블로부터 상기 비실시간 서비스의 서비스 타입 및 상기 비실시간 서비스의 상세 정보를 포함하는 서비스 정보를 추출하는 단계, 및 상기 추출된 서비스 정보를 기반으로 상기 비실시간 서비스의 처리를 제어하는 단계를 포함한다.
Description
본 발명은 비실시간으로 전송되는 서비스를 수신하여 처리하는 방법 및 방송 수신기에 관한 것이다.
디지털 텔레비전(DTV)은 텔레비전(TV)의 고유 기능인 영상, 음성과 더불어 다양한 서비스를 제공할 수 있게 되었다. 예를 들어 방송 정보(Electronic Program Guide: EPG) 등을 사용자에게 제공할 수 있고, 2개 이상의 채널로부터 수신되는 방송 서비스를 동시에 제공할 수 있다. 특히 수신 시스템이 대용량의 저장 장치를 구비하고, 양방향 통신이 가능한 인터넷이나 데이터 통신 채널과 연결되면서 방송 신호를 이용하여 제공할 수 있는 서비스는 상당히 많아졌다.
본 발명의 목적은 비실시간 서비스를 수신하여 처리하기 위한 비실시간 서비스 처리 방법 및 방송 수신기를 제공하는 것이다.
본 발명의 다른 목적은 비실시간 서비스의 수신을 위해 비실시간 서비스의 타입과 상세 정보를 포함하는 서비스 정보를 시그널링하는 비실시간 서비스 처리 방법 및 방송 수신기를 제공하는 것이다.
본 발명의 또 다른 목적은 서비스 정보에 따라 해당 비실시간 서비스를 처리하는 비실시간 서비스 처리 방법 및 방송 수신기를 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 방송 수신기의 비실시간 서비스 처리 방법은, 비실시간 서비스의 접속 정보를 포함하는 시그널링 정보 테이블을 수신하여 처리하는 단계, 상기 시그널링 정보 테이블을 기반으로 상기 비실시간 서비스의 데이터를 비실시간으로 수신하여 저장 매체에 저장하는 단계, 상기 시그널링 정보 테이블로부터 상기 비실시간 서비스의 서비스 타입 및 상기 비실시간 서비스의 상세 정보를 포함하는 서비스 정보를 추출하는 단계, 및 상기 추출된 서비스 정보를 기반으로 상기 비실시간 서비스의 처리를 제어하는 단계를 포함한다.
상기 서비스 정보는 상기 비실시간(NRT) 서비스를 구성하는 파일의 관리에 대한 권한이 있는지 여부를 지시하는 사용자 제어 필드, 상기 NRT 서비스의 코덱 정보를 표시하는 필드, 및 상기 저장 매체에 저장된 NRT 서비스의 유효 기간을 표시하는 필드를 포함할 수 있다.
상기 서비스 정보는 상기 서비스 타입에 의해 해당 NRT 서비스가 웹 서비스로 확인되었을 때, 상기 웹 서비스가 방송 수신기 내의 웹 브라우저에 의해 지원이 가능한지를 지시하는 필드를 포함할 수 있다.
상기 서비스 정보는 상기 NRT 서비스의 화면 내 디스플레이 위치와 크기를 제공하는 필드를 포함할 수 있다.
상기 NRT 서비스가 Fixed NRT 서비스인 경우, 상기 NRT 서비스를 구성하는 파일과 상기 시그널링 정보 테이블은 IP 패킷화, 어드레서블 섹션 패킷화, MPEG-2 TS 패킷화되어 수신된다.
상기 NRT 서비스가 Mobile NRT 서비스인 경우, 상기 NRT 서비스를 구성하는 파일과 상기 시그널링 정보 테이블은 IP 패킷화되어 하나의 앙상블에 포함되어 수신된다.
본 발명에 따른 방송 수신기는 제1 처리부, 제2 처리부, 및 서비스 매니저를 포함한다. 상기 제1 처리부는 비실시간 서비스의 접속 정보를 포함하는 시그널링 정보 테이블을 수신하여 처리한다. 상기 제2 처리부는 상기 시그널링 정보 테이블을 기반으로 상기 비실시간 서비스의 데이터를 비실시간으로 수신하여 저장 매체에 저장한다. 상기 서비스 매니저는 상기 시그널링 정보 테이블로부터 상기 비실시간 서비스의 서비스 타입 및 상기 비실시간 서비스의 상세 정보를 포함하는 서비스 정보를 추출하고, 추출된 서비스 정보를 기반으로 상기 비실시간 서비스의 처리를 제어한다.
본 발명에 따른 방송 수신기는 상기 서비스 정보에 포함된 상기 NRT 서비스의 서비스 타입 및 상기 NRT 서비스의 상세 정보를 가이드 화면에 출력하는 프리젠테이션 매니저를 더 포함한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 NRT 서비스 처리 방법 및 방송 수신기에 따르면, NRT 서비스의 서비스 타입 및 서비스 타입에 따른 구체적인 정보를 포함하는 서비스 정보를 시그널링 정보 테이블에 시그널링함으로써, 방송 수신기에서는 다양한 use case에 대응할 수 있게 된다. 즉, targeted advertisement, music download, push VOD 등 수 많은 NRT의 use case에 따라 존재하는 다양한 코덱 조합 및 연동되는 방송 수신기 내의 hardware module, 다양한 저장 및 재생 시나리오에 대해, 방송 수신기는 시그널링 정보 테이블에 시그널링된 서비스 정보를 이용함으로써 해당 NRT 서비스를 효과적으로 처리할 수 있게 된다.
도 1은 본 발명에 따른 실시간 서비스(real-time service RT)와 비실시간 서비스(non-real time service; NRT)를 제공하는 개념을 나타낸 도면
도 2는 본 발명에 따른 NRT 서비스, 콘텐트 아이템, 파일과의 관계를 보인 도면
도 3은 본 발명에 따른 Fixed NRT 서비스를 위한 프로토콜 스택의 일 실시예를 보인 도면
도 4는 본 발명에 따른 가상 채널 테이블의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 5는 도 4의 가상 채널 테이블 내 서비스 타입 필드 값 및 그 값의 의미의 일 실시예를 나타낸 도면
도 6는 도 4의 가상 채널 테이블 내 서비스 타입 필드에 할당되는 값 및 그 값의 의미의 다른 실시예를 나타낸 도면
도 7은 본 발명에 따른 데이터 서비스 테이블의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 8은 본 발명에 따른 PSI/PSIP 테이블을 이용하여 NRT 서비스 시그널링 채널을 전송하는 IP 스트림의 접속 정보를 획득하는 과정의 일 실시예를 보인 도면
도 9는 본 발명에 따른 PSI/PSIP 테이블을 이용하여 NRT 서비스 시그널링 채널을 전송하는 IP 스트림의 접속 정보를 획득하는 과정의 일 실시예를 보인 흐름도
도 10과 도 11은 본 발명에 따른 NST섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 12는 본 발명에 따른 component_descriptor()의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 13은 도 12의 component_descriptor()를 이용한 FLUTE 파일 딜리버리 데이터의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 14는 본 발명에 따른 NRT 서비스 정보 디스크립터의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 15는 도 14의 application_type 필드에 할당된 값에 따른 의미들의 예를 보인 도면
도 16의 (a) 내지 (d)는 본 발명에 따른 실시간 서비스와 비실시간 서비스가 동시 화면으로 디스플레이되는 예들을 보인 도면
도 17은 본 발명에 따른 서비스 정보를 이용하여 NRT 서비스를 처리하는 방법의 일 실시예를 보인 흐름도
도 18과 도 19는 본 발명에 따른 NRT-IT 섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 20은 본 발명에 따른 Fixed NRT 서비스를 위한 수신 시스템의 일 실시예를 보인 구성 블록도
도 21은 본 발명에 따른 모바일 NRT 서비스를 위한 프로토콜 스택의 일 실시예를 보인 도면
도 22는 본 발명에 따른 데이터 그룹의 구조에 대한 일 실시 예를 보인 도면,
도 23은 본 발명의 일 실시 예에 따라 모바일 NRT 서비스를 포함한 RS 프레임의 구조를 도시한 도면
도 24는 본 발명에 따른 모바일 서비스 데이터의 송/수신을 위한 M/H 프레임 구조의 일 예를 보인 도면
도 25는 본 발명의 일 실시예에 따른 물리적 계층에서의 데이터 전송 구조를 도시한 도면
도 26은 본 발명에 따른 SMT 섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 27은 본 발명에 따른 모바일 NRT 서비스를 위한 수신 시스템의 일 실시예를 보인 구성 블록도
도 2는 본 발명에 따른 NRT 서비스, 콘텐트 아이템, 파일과의 관계를 보인 도면
도 3은 본 발명에 따른 Fixed NRT 서비스를 위한 프로토콜 스택의 일 실시예를 보인 도면
도 4는 본 발명에 따른 가상 채널 테이블의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 5는 도 4의 가상 채널 테이블 내 서비스 타입 필드 값 및 그 값의 의미의 일 실시예를 나타낸 도면
도 6는 도 4의 가상 채널 테이블 내 서비스 타입 필드에 할당되는 값 및 그 값의 의미의 다른 실시예를 나타낸 도면
도 7은 본 발명에 따른 데이터 서비스 테이블의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 8은 본 발명에 따른 PSI/PSIP 테이블을 이용하여 NRT 서비스 시그널링 채널을 전송하는 IP 스트림의 접속 정보를 획득하는 과정의 일 실시예를 보인 도면
도 9는 본 발명에 따른 PSI/PSIP 테이블을 이용하여 NRT 서비스 시그널링 채널을 전송하는 IP 스트림의 접속 정보를 획득하는 과정의 일 실시예를 보인 흐름도
도 10과 도 11은 본 발명에 따른 NST섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 12는 본 발명에 따른 component_descriptor()의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 13은 도 12의 component_descriptor()를 이용한 FLUTE 파일 딜리버리 데이터의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 14는 본 발명에 따른 NRT 서비스 정보 디스크립터의 비트 스트림 신택스 구조에 대한 일 실시예를 보인 도면
도 15는 도 14의 application_type 필드에 할당된 값에 따른 의미들의 예를 보인 도면
도 16의 (a) 내지 (d)는 본 발명에 따른 실시간 서비스와 비실시간 서비스가 동시 화면으로 디스플레이되는 예들을 보인 도면
도 17은 본 발명에 따른 서비스 정보를 이용하여 NRT 서비스를 처리하는 방법의 일 실시예를 보인 흐름도
도 18과 도 19는 본 발명에 따른 NRT-IT 섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 20은 본 발명에 따른 Fixed NRT 서비스를 위한 수신 시스템의 일 실시예를 보인 구성 블록도
도 21은 본 발명에 따른 모바일 NRT 서비스를 위한 프로토콜 스택의 일 실시예를 보인 도면
도 22는 본 발명에 따른 데이터 그룹의 구조에 대한 일 실시 예를 보인 도면,
도 23은 본 발명의 일 실시 예에 따라 모바일 NRT 서비스를 포함한 RS 프레임의 구조를 도시한 도면
도 24는 본 발명에 따른 모바일 서비스 데이터의 송/수신을 위한 M/H 프레임 구조의 일 예를 보인 도면
도 25는 본 발명의 일 실시예에 따른 물리적 계층에서의 데이터 전송 구조를 도시한 도면
도 26은 본 발명에 따른 SMT 섹션의 비트 스트림 신택스 구조의 일 실시예를 보인 도면
도 27은 본 발명에 따른 모바일 NRT 서비스를 위한 수신 시스템의 일 실시예를 보인 구성 블록도
[발명의 실시를 위한 최선의 형태]
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
본 발명에서 사용하는 용어 중 real time (RT) service는, 말 그대로 실시간 서비스를 의미한다. 즉, 시간에 구속받는 서비스이다. 이에 반해, non-real time (NRT) service는 상기 RT 서비스 이외의 비실시간 서비스를 의미한다. 즉, 비실시간 서비스는 시간에 구속받지 않는 서비스이다. 그리고 NRT 서비스를 위한 데이터를 NRT 서비스 데이터라 하기로 한다.
본 발명에 따른 방송 수신기는 지상파, 케이블, 인터넷 등과 같은 매체를 통해 비실시간(NRT) 서비스를 수신할 수 있다.
상기 NRT 서비스는 방송 수신기의 저장 매체에 저장된 후, 기 설정된 시간이나 유저의 요청에 따라 디스플레이 장치에 표시된다. 상기 NRT 서비스는 파일 형태로 수신되어 저장 매체에 저장되는 것을 일 실시예로 한다. 상기 저장 매체는 방송 수신기의 내부에 장착된 내장 HDD인 것을 일 실시예로 한다. 또 다른 예로, 상기 저장 매체는 방송 수신 시스템의 외부에 연결된 USB(Universal Serial Bus) 메모리, 외장 HDD 등이 될 수도 있다.
상기 NRT 서비스를 구성하는 파일들을 수신하여 저장 매체에 저장하고, 유저에게 서비스하기 위해서는 시그널링 정보가 필요하다. 본 발명은 이를 NRT 서비스 시그널링 정보 또는 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 서비스를 수신하여 적절하게 처리할 수 있으므로, 시청자에게 종래 방송 수신기에 비해 다양한 기능을 제공할 수 있다.
본 발명에 따른 하나의 NRT 서비스는 도 2에서와 같이 하나 이상의 콘텐트 아이템(또는 콘텐트 또는 NRT 콘텐트라 함)를 포함하고, 하나의 콘텐트 아이템은 하나 이상의 파일을 포함하는 것을 일 실시예로 한다. 본 발명에서 파일과 오브젝트는 동일한 의미로 사용된다.
상기 콘텐트 아이템은 독립적으로 재생이 가능한 최소 단위이다. 예를 들어, 비실시간으로 제공되는 뉴스가 있고, 상기 뉴스에는 경제 뉴스, 정치 뉴스, 생활 뉴스가 포함된다고 할 때, 상기 뉴스는 NRT 서비스라 할 수 있고, 경제 뉴스, 정치 뉴스, 생활 뉴스 각각은 콘텐트 아이템이라 할 수 있다. 그리고, 경제 뉴스, 정치 뉴스, 생활 뉴스 각각은 하나 이상의 파일로 구성된다.
본 발명에 따른 NRT 서비스는 IP 데이터그램을 얻는 방식에 따라 Fixed NRT 서비스와 Mobile NRT 서비스로 구분할 수 있다. 특히 상기 Fixed NRT 서비스는 고정형 방송 수신기로 제공되고, Mobile NRT 서비스는 이동형 방송 수신기로 제공된다. 본 발명에서는 Fixed NRT 서비스에 대해서 먼저 설명하고, 그 다음에 Mobile NRT 서비스에 대해서 설명하기로 한다.
Fixed NRT 서비스
본 발명에서는 Fixed NRT 서비스를 위해, 파일 형태의 NRT 서비스를 IP 계층에서 IP 패킷화한 후 특정 가상 채널을 통해 MPEG-2 TS 형태로 전송하는 것을 일 실시예로 한다.
즉, Fixed 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 서비스 시그널링 데이터는 NST와 NRT-IT를 포함한다. 상기 NST는 IP 계층에서 구동하는 적어도 하나의 NRT 서비스, 상기 NRT 서비스를 구성하는 콘텐트 아이템/파일들의 접속 정보를 제공하는 것을 일 실시예로 한다. 상기 NRT-IT는 NRT 서비스를 구성하는 콘텐트 아이템/파일들의 상세 정보를 제공하는 것을 일 실시예로 한다. 본 발명은 상기 NST와 NRT-IT를 Fixed NRT 서비스를 위한 시그널링 정보 테이블이라 하기도 한다.
도 3은 본 발명의 일 실시예에 따라 구성한 Fixed NRT 서비스에 대한 프로토콜 스택을 도시한 것이다.
본 발명에서는 Fixed NRT 서비스를 위해, 파일 형태의 NRT 서비스를 IP 계층에서 IP 패킷화한 후 특정 가상 채널을 통해 MPEG-2 TS 형태로 전송하는 것을 일 실시예로 한다.
본 발명에서는 MPEG-2 기반의 PSI(Program Specific Information)/PSIP(Program and System Information Protocol) 테이블 예를 들어, 가상 채널 테이블(VCT)를 통하여 가상 채널(Virtual channel) 내, NRT 서비스의 존재 여부를 시그널링하는 것을 일 실시예로 한다.
본 발명은 IP 기반의 NRT 서비스의 접속 정보를 시그널링하는 NRT 서비스 시그널링 데이터를 전송하는 NRT 서비스 시그널링 채널을 IP 계층에서 특정 IP 스트림으로 IP 패킷화한 후 MPEG-2 TS 형태로 전송하는 것을 일 실시예로 한다.
즉, 방송국에서는 도 3에서와 같이 파일 전송 프로토콜(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 데이터는 FLUTE 세션에 대한 정보를 포함하는 FDT(File Description Table)을 포함한다. 상기 패킷화된 ALC/LCT/UDP/IP 데이터를 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 한다.
또한 상기 NRT 콘텐트/파일들을 수신하기 위해 필요한 NRT 서비스 시그널링 데이터는 NRT 서비스 시그널링 채널을 통해 전송되는데, 상기 NRT 서비스 시그널링 채널은 UDP(User Datagram protocol) 방식에 따라 패킷화되고, 상기 패킷화된 UDP 데이터는 다시 IP 방식에 따라 패킷화되어 UDP/IP 데이터가 된다. 상기 UDP/IP 데이터도 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 한다. 이때 상기 NRT 서비스 시그널링 채널은 Well-known IP destination address와 well-known destination UDP port number를 가지는 IP 데이터그램에 인캡슐레이션되어 멀티캐스트(Multicast)되는 것을 일 실시예로 한다.
본 발명에서는 상기 NRT 서비스 및 NRT 서비스 시그널링 채널의 IP 데이터그램들을 어드레서블 섹션 구조로 인캡슐레이션하고, 다시 MPEG-2 TS 포맷으로 패킷화하는 것을 일 실시예로 한다. 즉, 하나의 어드레서블 섹션 구조는 하나의 IP 데이터그램에 섹션 헤더와 CRC 첵섬(checksum)이 추가적으로 더해지는 형태를 가지게 된다. 이러한 어드레서블 섹션 구조의 형태는 프라이빗 데이터(private data) 전송을?위한 DSM-CC(Digital Storage Media Command and Control) 섹션 포맷에 부합되는 구조로 되어 있다. 따라서 상기 어드레서블 섹션은 DSM-CC 어드레서블 섹션이라 하기도 한다. 그리고, 상기 어드레서블 섹션 데이터를 184 바이트 단위로 분할한 후, 각 184 바이트에 4바이트의 MPEG 헤더를 부가하면, 188 바이트의 MPEG-2 TS 패킷을 만들 수 있다. 이때, 상기 MPEG 헤더의 PID에 할당되는 값은 상기 NRT 서비스와 NRT 서비스 시그널링 채널을 전송하는 TS 패킷을 식별할 수 있는 유니크한 값이다.
또한, PSI(Program Specific Information) 및 PSIP(Program and System Information Protocol) 테이블 섹션 데이터도 MPEG-2 TS 패킷화된다.
상기 PSI테이블은 일 실시예로, PMT(Program Map Table), PAT(Program Association Table) 등을 포함하고, PSIP테이블은 일 실시예로, VCT(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)를 포함할 수 있다.
상기 MPEG-2 TS 패킷들은 물리 계층(physical layer)에서 기 정해진 전송 방식 예를 들면, VSB 전송 방식으로 변조되어 수신 시스템으로 전송된다.
본 발명에서는 NRT 서비스의 전송 여부를 PSI/PSIP 테이블을 통해 시그널링하는 것을 일 실시예로 한다. 일 예로, 상기 NRT 서비스의 전송 여부를 가상 채널 테이블(VCT)에 시그널링하는 것을 일 실시예로 한다.
도 4는 상기 가상 채널 테이블(VCT) 섹션의 신택스 구조의 일 실시예를 보이고 있다.
상기 VCT 섹션은 가상 채널에 대한 정보 예를 들어, 채널 선택을 위한 채널 정보와 오디오 및/또는 비디오의 수신을 위한 패킷 식별자(PID) 등의 정보를 전송한다. 즉, 상기 VCT 섹션을 파싱하면 채널 이름, 채널 번호 등과 함께 채널 내에 실려오는 방송 프로그램의 오디오와 비디오의 PID를 알 수 있다.
상기 VCT 섹션의 신택스는 table_id 필드, section_syntax_indicator 필드, private_indicator 필드, section_length 필드, transport_stream_id 필드, version_number 필드, current_next_indicator 필드, section_number 필드, last_section_number 필드, protocol_version 필드, num_channels_in_section 필드 중 적어도 하나를 포함하여 구성된다.
상기 VCT 섹션의 신택스는 상기 num_channels_in_section 필드 값만큼 반복되는 'for' 루프(즉, 가상 채널 루프)의 제1 반복문을 더 포함하는데, 상기 제1 반복문 내에는 short_name 필드, major_channel_number 필드, minor_channel_number 필드, modulation_mode 필드, carrier_frequency 필드, channel_TSID 필드, program_number 필드, ETM_location 필드, access_controlled 필드, hidden 필드, service_type 필드, source_id 필드, descriptor_length 필드, 및 이 제1 반복문 내에 포함되는 디스크립터 수만큼 반복되는 'for' 루프로 된 제2 반복문 중 적어도 하나를 포함하여 구성된다. 본 발명에서는 설명의 편의를 위해 상기 제2 반복문을 제1 디스크립터 루프라 한다. 상기 제1 디스크립터 루프에 포함되는 디스크립터 descriptors()는 가상 채널 각각에 개별적으로 적용되는 디스크립터이다.
또한 상기 VCT 섹션 신택스는 additional_descriptor_length 필드와, 상기 VCT섹션에 추가되는 디스크립터 수만큼 반복되는 'for' 루프로 된 제3 반복문을 더 포함할 수 있다. 본 발명에서는 설명의 편의를 위해 상기 제3 반복문을 제2 디스크립터 루프라 한다. 상기 제2 디스크립터 루프에 포함되는 디스크립터 additional_descriptors()는 VCT섹션에서 기술되는 모든 가상 채널에 공통적으로 적용되는 디스크립터이다.
이와 같이 구성된 도 4에서, 상기 table_id 필드는 상기 테이블로 전송되는 정보가 VCT임을 인식할 수 있는 고유 식별자(ID)를 표시한다. 즉, 상기 table_id 필드는 이 섹션(section)이 속해 있는 테이블이 VCT라는 것을 알려주는 값을 나타내며, 일 예로 0xC8이 할당될 수 있다.
상기 version_number 필드는 VCT의 버전 값을 나타내고, 상기 section_number 필드는 이 섹션의 번호를, 상기 last_section_number 필드는 완전한 VCT의 마지막 섹션의 번호를 나타낸다. 상기 num_channels_in_section 필드는 상기 VCT 섹션 내에 존재하는 전체 가상 채널의 개수를 지정한다.
그리고, 상기 'for' 루프의 제1 반복문 내에 있는 short_name 필드는 가상 채널 이름을 나타내고, 상기 major_channel_number 필드는 상기 제1 반복문 안에서 정의되는 가상 채널과 관련된 '메이저' 채널 번호를 나타내고, 상기 minor_channel_number 필드는 '마이너' 채널 번호를 나타낸다. 즉, 각각의 가상 채널 번호는 메이저와 마이너 채널 번호에 연결되어 있어야 하며, 메이저, 마이너 채널 번호는 해당 가상 채널에 대한 사용자 참조 번호로 작용한다.
상기 program_number 필드는 MPEG-2 PAT(Program Association Table)와 PMT(Program Map Table)가 정의되어 있는 가상 채널을 연결하기 위해 나타내며, 상기 PAT/PMT안에 있는 프로그램 번호와 일치한다. 여기서, PAT는 각 프로그램 번호마다 그 프로그램의 구성 요소를 기술하는데, PMT를 전송하는 트랜스포트 패킷의 PID를 가리킨다. 상기 PMT는 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트열이 전송되고 있는 트랜스포트 패킷의 PID 리스트와 부속 정보를 기술하고 있다.
상기 service_type 필드는 해당 virtual channel 내의 서비스 타입을 알려주는 필드이다.
일 실시예로, 상기 가상 채널은 오디오 및/또는 비디오가 포함된 적어도 하나의 RT 서비스와 적어도 하나의 NRT 서비스를 모두 포함할 수 있다.
이 경우, 도 5와 같이 서비스 타입 값이 할당될 수 있으며, ATSC 데이터 온리(only) 서비스를 나타내는 0x04를 이용하여 상기 가상 채널로 NRT 서비스가 전송됨을 지시할 수 있다.
다른 실시예로, 상기 가상 채널은 하나 이상의 NRT 서비스만을 포함할 수 있다. 이 경우, 도 6과 같이 service_type 필드 값으로 0x08을 새로이 정의하고 상기 가상 채널로 NRT 서비스가 전송됨을 지시할 수 있다.
상기 source_id 필드는 해당 가상 채널에 연결된 프로그램 소스를 나타낸다.
여기서, 소스란 영상, 텍스트, 데이터 또는 음향과 같은 하나의 특정 소스를 말한다. 상기 source_id 필드값은 VCT를 전송하는 트랜스포트 스트림 내에서는 유일한 값을 가진다.
한편, 상기 VCT의 service_location_descriptor에 포함된 PID를 통해 DST를 수신할 수 있으며, 데이터 서비스 테이블(DST)을 통해 어플리케이션의 종류 및 이 채널을 통해 전송되는 데이터 방송 스트림의 상세 정보를 알 수 있다.
본 발명은 DST를 이용하여 NRT 어플리케이션(즉, NRT 서비스)를 식별하도록 한다.
도 7은 상기 DST 섹션의 신택스 구조의 일 실시예를 보이고 있다.
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의 포맷과 시맨틱스를 설명한다. 본 발명은 하기의 표 1과 같이 예를 들면, '0x0003'을 새롭게 할당하여 해당 어플리케이션이 NRT 어플리케이션임을 식별하는데 이용한다. 상기 예시한 수치는 일 예에 불과하며, 상기 수치로 본 발명의 권리범위가 제한되는 것은 아니다.
app_id_byte 필드 (8비트)는, 어플리케이션 식별자의 바이트를 표현한다.
tap_count 필드 (8비트)는, 해당 어플리케이션에 의한 사용되는 Tap() 구조들의 개수를 설명한다.
protocol_encapsulation 필드 (8비트)는, Tap() 필드에 의해 참조되는 특정 데이터 엘리먼트를 전송하기 위해 사용되는 프로토콜 인캡슐레이션의 타입을 설명한다.
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_id 필드 (16비트)는 데이터 엘리먼트들을 식별하기 위해 어플리케이션에 의해 사용된다. tap_id의 값은 DST 내 Tap()와 관련된 app_id_byte 필드들의 값에 의해 범위가 정해진다. 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바이트로 표현한다.
도 8은 본 발명에 따른 수신 시스템에서, 데이터 방송 스트림을 전달하기 위한 ATSC A/90 규격과 IP 멀티캐스트 스트림(Multicast stream)을 전송하는 ATSC A/92 규격을 활용하여 NRT 서비스를 수신하여 서비스하는 방법을 설명하고 있다.
즉, 각 가상 채널을 구성하는 스트림의 정보는 VCT의 Service location descriptor나 PMT의 ES_loop에 시그널링 된다. 예를 들어, 도 5나 도 6에서와 같이 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 어플리케이션을 위한 서비스 아이디는 해당 서비스를 Gloablly unique하게 식별하는 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서비스에 대해 오동작할 우려가 있기 때문이다. 이러한 경우 스트림 타입을 새롭게 지정해 줌으로써 기존 수신기에서는 이를 무시하도록 하여 하위 호환성을 보장할 수 있을 것이다.
도 9는 상기 NRT 서비스 시그널링 데이터 및 NRT 서비스 데이터 추출 과정을 흐름도로 보인 도면이다.
도 9에서는 VCT 내 service_type 필드 값에 도 6에서와 같이 0x08을 할당하여, 해당 가상 채널로 하나 이상의 NRT 서비스가 전송됨을 지시하는 것을 일 실시예로 한다.
즉, 수신기의 전원이 켜지고 디폴트 또는 사용자에 의한 채널이 선택되면(S1001), 상기 선택된 채널로 수신되는 방송 신호로부터 VCT와 PMT를 획득한다(S1002). 그리고 상기 획득된 VCT를 파싱하여 NRT 서비스가 있는지를 확인한다(S1003). 이는 상기 VCT의 가상 채널 루프 내 service_type 필드 값을 확인하여 알 수 있다. 상기 S1001는 튜너에서, 상기 S1002,S1003는 PSI/PSIP 섹션 핸들러에서 수행된다.
예를 들어, 상기 service_type 필드 값이 0x08이 아니면 해당 가상 채널은 NRT 서비스를 전송하지 않는다. 이때 상기 가상 채널은 기존 서비스(즉, legacy ATSC 서비스)를 전송하므로, 수신기는 상기 가상 채널에 포함된 정보에 따라 적절한 동작을 수행한다.
상기 service_type 필드 값이 0x08이면, 해당 가상 채널은 NRT 서비스를 전송한다. 이 경우 상기 VCT의 가상 채널 루프 내 service location descriptor를 파싱하여 DST의 PID를 추출한다(S1004). 그리고 추출된 PID를 이용하여 DST를 수신한다(S1005). 상기 S1004, S1005은 서비스 매니저의 제어에 의해 역다중화기에서 수행된다.
상기 수신된 DST로부터 선택된 채널을 통해 제공되는 해당 서비스가 NRT 서비스인지를 확인한다(S1006).
상기 NRT 서비스는 App_id_descrption 필드 값으로부터 확인할 수 있다.
본 발명은 NRT 어플리케이션(즉, NRT 서비스)을 식별하기 위해 상기 App_id_descrption 필드에 '0x0003'를 할당하는 것을 일 실시예로 한다. 상기 예시한 수치는 일 예에 불과하며, 상기 수치로 본 발명의 권리범위가 제한되는 것은 아니다.
만일 상기 DST 내 App_id_descrption 필드 값이 '0x0003'이면, 그 다음에 오는 Application_id_byte 값은 NRT 어플리케이션(즉, NRT 서비스)의 Service ID값이 된다. 그러므로, 상기와 같이 NRT 어플리케이션(즉, NRT 서비스)임을 식별한 이후에는 NRT 서비스 시그널링 채널의 IP 데이터그램으로부터 분할된 MPEG-2 TS 패킷의 PID를 찾기 위해 Tap을 추출한다(S1007). 이어 상기 추출된 Tap의 association_tag를 포함하는 스트림 PID를 PMT로부터 추출한다(S1008). 상기 S1006 내지 S1008는 서비스 매니저 또는 PSI/PSIP섹션 핸들러에서 수행된다.
그리고, 상기 추출된 스트림 PID에 해당하는 MPEG-2 TS 패킷들을 수신하여 디캡슐레이션 즉, MPEG-2 헤더를 제거하면, DSM-CC 어드레서블 섹션이 복원된다(S1009). 상기 S1009은 어드레서블 섹션 핸들러에서 수행된다.
상기 DSM-CC 어드레서블 섹션으로부터 섹션 헤더와 CRC 첵섬을 제거하여 NRT 서비스 시그널링 채널을 전송하는 IP 데이터그램을 복원(recover)하고(S1010), 복원된 IP 데이터그램으로부터 NRT 서비스 시그널링 데이터를 획득한다(S1011). 여기서, 상기 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 서비스 시그널링 채널로 전송되는 NRT 서비스 시그널링 데이터는 NRT 서비스 맵 테이블(Service Map Table 또는 Service Table ; NST)과 NRT 정보 테이블(NRT Information Table ; NRT-IT)를 포함하는 것을 일 실시예로 한다.
이때 상기 NST와 NRT-IT의 IP 데이터그램들은 동일한 well-known IP 어드레스와 well-known UDP 포트 번호를 갖는 것을 일 실시예로 한다. 그러므로, 상기 NRT 서비스 시그널링 데이터에 포함된 NST와 NRT-IT의 구분은 테이블 식별자에 의해 이루어진다. 즉, 상기 테이블 식별자는 해당 테이블 또는 해당 테이블 섹션의 헤더에 존재하는 table_id가 될 수 있으며, 필요한 경우 table_id_extension을 더 참조하여 구분할 수 있다.
상기 NST는 NRT 서비스의 접속(access) 정보를 제공한다. 상기 NST는 MPEG-2 Private section 형태와 유사한 테이블 형태를 가지는 것을 일 실시예로 한다.
상기 NST는 하나의 가상 채널에 포함되는 IP 기반의 NRT 서비스들의 접속 정보를 제공할 수 있다. 예를 들어, 상기 NST는 하나의 NRT 서비스를 구성하는 각 FLUTE 세션들의 접속 정보를 제공할 수 있다.
이때, 하나의 NST가 하나의 섹션으로 구성되는지 복수개의 섹션으로 구성되는지는 NST 섹션 내 table_id 필드, section_number 필드, last_section_number 필드 등을 통해 알 수 있다. 그리고 상기 NRT 서비스 시그널링 채널의 IP 데이터그램들의 IP 헤더와 UDP 헤더를 제거한 후 동일한 테이블 식별자를 갖는 섹션들을 모으면 해당하는 테이블을 완성할 수 있다. 예를 들어, NST에 할당된 테이블 식별자를 갖는 섹션들을 모으면 NST를 완성할 수 있다.
도 10과 도 11은 본 발명에 따른 NST섹션에 대한 비트 스트림 신택스 구조의 일 실시예를 보인 도면이다. 상기 NST 섹션의 각 필드의 상세한 설명은 다음과 같다.
여기서, 해당 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다. 예를 들어, SDP(Session Description Protocol)의 형태로 표현하여 SAP(Session Announcement Protocol)을 통하여 시그널링하는 등의 다른 방법도 사용할 수 있다.
도 10과 도 11에서 table_id 필드(8비트)는 해당 테이블 섹션의 타입 식별을 위한 필드로서, 본 필드를 통해 해당 테이블 섹션이 NST를 구성하는 테이블 섹션임을 알 수 있다(An 8-bit unsigned integer number that indicates the type of table section being defined in NRT Service Table (NST)).
section_syntax_indicator 필드(1비트)는 NST의 섹션 형식을 정의하는 지시자로서, 섹션 형식은 예를 들어, MPEG의 short-form 신택스('0') 등이 될 수 있다(section_syntax_indicator: This 1-bit field shall be set to '0' to always indicate that this table is derived from the "short" form of the MPEG-2 private section table).
private_indicator 필드(1비트)는 해당 섹션의 형태가 프라이빗 섹션 형태를 따르는지 여부를 나타낸다(private_indicator: This 1-bit field shall be set to '1').
section_length 필드(12비트)는 해당 필드 이후의 나머지 테이블 섹션 길이를 나타낸다(section_length: A 12-bit field. It specifies the number of remaining bytes this table section immediately following this field. The value in this field shall not exceed 4093 (0xFFD)).
table_id_extension 필드(16비트)는 테이블에 종속적이고, 남은 필드들의 범위를 제공하는 table_id 필드의 논리적인 부분이 된다(table_id_extension: This is a 16-bit field and is table-dependent. It shall be considered to be logically part of the table_id field providing the scope for the remaining fields). 여기서, 상기 table_id_extension 필드는 NST_protocol_version 필드를 포함한다.
상기 NST_protocol_version 필드(8비트)는 현재 프로토콜 내에서 정의된 것들과 다른 구조를 가지는 파라미터들이 전송하는 NST를 허락하기 위한 프로토콜 버전을 알려준다(NST_protocol_version: An 8-bit unsigned integer field whose function is to allow, in the future, this NST to carry parameters that may be structured differently than those defined in the current protocol. At present, the value for the NST_protocol_version shall be zero. Non-zero values of NST_protocol_version may be used by a future version of this standard to indicate structurally different tables).
version_number 필드(5비트)는 NST의 버전 넘버를 나타낸다.
current_next_indicator 필드(1비트)는 전송된 NST 섹션이 현재 적용 가능한지 여부를 지시한다(current_next_indicator: A one-bit indicator, which when set to '1' shall indicate that the NST sent is currently applicable. When the bit is set to '0', it shall indicate that the table sent is not yet applicable and will be the next table to become valid. This standard imposes no requirement that "next" tables (those with current_next_indicator set to '0') must be sent. An update to the currently applicable table shall be signaled by incrementing the version_number field).
section_number 필드(8비트)는 현재 NST 섹션의 번호를 표시한다. (section_number: This 8-bit field shall give the section number of this NST section. The section_number of the first section in an NST shall be '0x00'. The section_number shall be incremented by 1 with each additional section in the NST).
last_section_number 필드(8비트)는 NST 테이블을 구성하는 마지막 섹션 번호를 나타낸다(last_section_number: This 8-bit field shall give the number of the last section (i.e., the section with the highest section_number) of the NST of which this section is a part).
num_NRT_services 필드(8비트)는 NST 섹션 내의 NRT 서비스의 수를 지시한다(num_services: This 8 bit field specifies the number of services in this NST section).
이후 상기 num_NRT_services 필드 값에 해당하는 NRT 서비스 개수만큼'for' 루프(또는 NRT 서비스 루프라 함)가 수행되어 복수의 NRT 서비스에 대한 시그널링 정보를 제공한다. 즉, 상기 NST 섹션에 포함되는 NRT 서비스별로 해당 NRT 서비스의 시그널링 정보를 표시한다. 이때 각 NRT 서비스에 대해 다음과 같은 필드 정보를 제공할 수 있다.
NRT_service_id 필드(16 비트)는 해당 NRT 서비스를 유일하게 식별할 수 있는 값을 표시한다(A 16-bit unsigned integer number that shall uniquely identify this NRT service within the scope of this NRT section.). 하나의 서비스의 NRT_service_id 필드 값은 그 서비스가 유지되는 동안 변하지 않는다. 이때 혼란을 피하기 위해서, 만일 어떤 서비스가 종료되면 그 서비스의 NRT_service_id 필드 값은 일정 시간이 경과할 때까지 사용하지 않을 수 있다(The NRT_service_id of a service shall not change throughout the life of the service. To avoid confusion, it is recommended that if a service is terminated, then the NRT_service_id for the service should not be used for another service until after a suitable interval of time has elapsed.).
NRT_service_status 필드(2비트)는 해당 NRT 서비스의 상태를 식별한다. 여기서, MSB는 해당 NRT 서비스가 액티브('1')인지 아니면 인액티브('0')인지 지시하고, LSB는 해당 NRT 서비스가 히든('1')인지 아닌지('0')를 지시한다. (NRT_service_status: A 2-bit enumerated field that shall identify the status of this NRT Service. The most significant bit shall indicate whether this NRT Service is active (when set to '1') or inactive (when set to '0') and the least significant bit shall indicate whether this NRT Service is hidden (when set to '1') or not (when set to '0'). Hidden services are normally used for proprietary applications, and ordinary receiving devices should ignore them).
SP_indicator 필드(1비트)는 해당 NRT 서비스의 서비스 보호(service protection) 여부를 나타낸다. 만일 SP_indicator 필드 값이 1이면, 서비스 보호가 해당 NRT 서비스의 의미 있는 프리젠테이션을 제공하기 위해 요구되는 콤포넌트들 중 적어도 하나에 적용된다(상기 (A 1-bit field that indicates, when set to 1, service protection is applied to at least one of the components needed to provide a meaningful presentation of this NRT Service).
Short_NRT_service_name_length 필드(3비트)는 Short_NRT_service_name 필드 내 바이트 쌍들의 번호를 지시한다.
Short_NRT_service_name 필드(16*m비트)는 상기 NRT 서비스의 short name 을 표시한다. 상기 NRT 서비스의 short name이 없으면, 상기 필드는 널 값(예, 0x00)으로 채워질 수 있다.
NRT_service_category 필드(6비트)는 해당 NRT 서비스 내에 전송되는 서비스의 타입을 식별한다(NRT_service_category: A 6-bit enumerated type field that shall identify the type of service carried in this NRT).
num_components 필드(5비트)는 상기 NRT서비스에 포함되는 IP 스트림 콤포넌트들의 개수를 표시한다(num_components: This 5-bit field specifies the number of IP stream components in this NRT Service).
IP_version_flag 필드(1비트)는 '0'로 설정된 경우에는 source_IP_address 필드, NRT_service_destination_IP_address 필드 및 component_destination_IP_address 필드가 IPv4 어드레스임을 지시하고, '1'으로 설정된 경우에는 source_IP_address 필드, NRT_service_destination_IP_address 필드, component_destination_IP_address 필드가 IPv6 어드레스임을 지시한다(IP_version_flag: A 1-bit indicator, which when set to '0' shall indicate that source_IP_address, NRT_service_destination_IP_address, and component_destination_IP_address fields are IPv4 addresses. The value of '1' for this field is reserved for possible future indication that source_IP_address, NRT_service_destination_IP_address, and component_destination_IP_address fields are for IPv6).
source_IP_address_flag 필드(1비트)는 플래그가 설정되면, 해당 NRT 서비스를 위한 소스 IP 어드레스 값이 소스 특정 멀티캐스트를 지시하기 위해 존재함을 지시한다(source_IP_address_flag: A 1-bit Boolean flag that shall indicate, when set, that a source IP address value for this NRT Service is present to indicate a source specific multicast).
NRT_service_destination_IP_address_flag 필드(1비트)는 플래그가 '1'로 설정되면, 해당 NRT 서비스의 콤포넌트들을 위한 디폴트 IP 어드레스가 제공하기 위해 NRT_service_destination_IP_address 필드가 존재한다(NRT_service_destination_IP_address_flag: A 1-bit Boolean flag that indicates, when set to '1', that a NRT_service_destination_IP_address value is present, to serve as the default IP address for the components of this NRT Service).
source_IP_address 필드(32 or 128비트)는 source_IP_address_flag가 '1'로 설정되면 해당 필드는 존재하지만, source_IP_address_flag가 '0'으로 설정되면 해당 필드는 존재하지 않을 것이다. 만약 해당 필드가 존재한다면, 해당 필드는 해당 NRT 서비스의 콤포넌트들을 전송하는 모든 IP 데이터그램들의 소스 IP 어드레스를 포함할 것이다. 해당 필드의 128 비트의 롱 어드레스의 제한적인 사용은 비록 현재 IPv6의 사용이 정의되지 않았지만 향후 IPv6의 사용을 가능하도록 하기 위함이다. Source_IP_address는 FLUTE 세션의 모든 채널을 전송하는 동일한 서버의 소스 IP 어드레스(source IP address)가 된다(source_IP_address: This field shall be present if the source_IP_address_flag is set to '1' and shall not be present if the source_IP_address_flag is set to '0'. If present, this field shall contain the source IP address of all the IP datagrams carrying the components of this NRT Service. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined).
NRT_service_destination_IP_address 필드(32 or 128비트)는
NRT_service_destination_IP_address_flag필드가 '1'로 설정되면 해당
NRT_service_destination_IP_address필드는 존재하지만,
NRT_service_destination_IP_address_flag필드가 '0'으로 설정되면 해당 NRT_service_destination_IP_address 필드는 존재하지 않을 것이다. 만약 해당 NRT_service_destination_IP_address 필드가 존재하지 않는다면, component_destination_IP_address 필드가 num_components 루프 내에 각 콤포넌트를 위해 존재할 것이다. 해당 NRT_service_destination_IP_address 필드의 128비트의 롱 어드레스의 제한적인 사용은 비록 현재 IPv6의 사용이 정의되지 않았지만 향후 IPv6의 사용을 가능하도록 하기 위함이다. NRT_service_destination_IP_Address는 이 FLUTE 세션의 세션 레벨의 데스트네이션 IP 어드레스(destination IP address)가 있으면 시그널링 된다(NRT_service_destination_IP_address: This field shall be present if the NRT_service_destination_IP_address_flag is set to '1' and shall not be present if the NRT_service_destination_IP_address_flag is set to '0'. If this NRT_service_destination_IP_address is not present, then the component_destination_IP_address field shall be present for each component in the num_components loop. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined).
이후 상기 num_components 필드 값에 해당하는 콤포넌트 개수만큼'for' 루프(또는 콤포넌트 루프라 함)가 수행되어 복수의 콤포넌트에 대한 접속 정보를 제공한다. 즉, 상기 NRT 서비스에 포함되는 각 콤포넌트의 접속 정보를 제공한다. 이때 각 콤포넌트에 대해 다음과 같은 필드 정보를 제공할 수 있다. 여기서, 하나의 콤포넌트는 하나의 FLUTE 세션에 대응되는 것을 일 실시예로 한다.
essential_component_indicator 필드(1비트)는, 해당 필드의 값이 '1'로 설정되어 있으면 해당 콤포넌트는 NRT 서비스를 위한 필수 콤포넌트 임을 지시한다. 그렇지 않으면, 해당 콤포넌트는 선택적인 콤포넌트임을 지시한다(essential_component_indicator: A one-bit indicator which, when set to '1', shall indicate that this component is an essential component for the NRT Service. Otherwise, this field indicates that this component is an optional component).
port_num_count 필드(6비트)는 해당 UDP/IP 스트림 콤포넌트와 관련된 UDP 포트들의 넘버를 지시한다. 데스티네이션 UDP 포트 넘버들의 값은 component_destination_UDP_port_num 필드 값으로부터 시작해서 1씩 증가한다(port_num_count: This field shall indicate the number of destination UDP ports associated with this UDP/IP stream component. The values of the destination UDP port numbers shall start from the component_destination_UDP_port_num field and shall be incremented by one).
component_destination_IP_address_flag 필드(1비트)는 '1'로 설정되어 있으면 해당 콤포넌트를 위해 component_destination_IP_address 필드가 존재함을 지시하는 플래그이다(component_destination_IP_address_flag: A 1-bit Boolean flag that shall indicate, when set to '1', that the component_destination_IP_address is present for this component).
component_destination_IP_address 필드(32 or 128비트)는 component_destination_IP_address_flag가 '1'로 설정되면 해당 필드는 존재하지만, component_destination_IP_address_flag가 '0'으로 설정되면 해당 필드는 존재하지 않을 것이다. 만약 해당 필드가 존재한다면, 해당 필드는 해당 NRT 서비스의 콤포넌트들을 전송하는 모든 IP 데이터그램들의 소스 IP 어드레스를 포함할 것이다. 해당 필드의 128 비트의 롱 어드레스의 제한적인 사용은 비록 현재 IPv6의 사용이 정의되지 않았지만 향후 IPv6의 사용을 가능하도록 하기 위함이다(component_destination_IP_address: This field shall be present if the component_destination_IP_address_flag is set to '1' and shall not be present if the component_destination_IP_address_flag is set to '0'. When this field is present, the destination address of the IP datagrams carrying this component of the NRT Service shall match the address in this field. When this field is not present, the destination address of the IP datagrams carrying this component shall match the address in the NRT_service_destination_IP_address field. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined).
component_destination_UDP_port_num 필드(16비트)는 해당 UDP/IP 스트림 콤포넌트를 위한 데스트네이션 UDP 포트 넘버를 나타낸다(component_destination_UDP_port_num: A 16-bit unsigned integer field, that represents the destination UDP port number for this UDP/IP stream component).
num_component_level_descriptors 필드(4비트)는 콤포넌트 레벨의 추가 정보를 제공하는 디스크립터의 개수를 표시한다.
상기 num_component_level_descriptors 필드 값에 해당하는 개수만큼 상기 콤포넌트 루프에 component_level_descriptor()들이 포함되어, 상기 콤포넌트에 대한 부가 정보를 제공한다.
num_NRT_service_level_descriptors 필드(4비트)는 NRT 서비스 레벨의 추가 정보를 제공하는 디스크립터의 개수를 표시한다.
상기 num_NRT_service_level_descriptors 필드 값에 해당하는 개수만큼 상기 NRT서비스 루프에 NRT_service_level_descriptor()들이 포함되어, 상기 NRT 서비스에 대한 부가 정보를 제공한다.
num_virtual_channel_level_descriptors 필드(4비트)는 가상 채널 레벨의 추가 정보를 제공하는 디스크립터의 개수이다.
상기 num_virtual_channel_level_descriptors 필드 값에 해당하는 개수만큼 상기 가상 채널 루프에 virtual_channel_level_descriptor()들이 포함되어, 상기 가상 채널에 대한 부가 정보를 제공한다.
도 12는 component_level_descriptors()로서 제공되는 component_descriptor()의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다. 즉, component_descriptor()는 NST의 콤포넌트 레벨 디스크립터component_level_descriptors()의 하나로서 사용되며, 해당 콤포넌트의 부가적인 시그널링 정보를 서술한다.
상기 component_descriptor()의 각 필드에 대한 설명은 다음과 같다.
도 12에서, descriptor_tag 필드(8비트)는 디스크립터 식별자로서, component_descriptor()를 식별하는 식별자가 설정될 수 있다.
descriptor_length 필드(8비트)는 상기 descriptor_length 필드 이후부터 이 descriptor의 끝까지, 디스크립터의 나머지 길이를 byte 단위로 나타낸다.
component_type 필드(7비트)는 콤포넌트의 인코딩 포맷을 식별하는 값을 표시한다. 상기 식별 값은 RTP/AVP 스트림의 payload_type을 위해 할당된 값들 중의 하나일 수 있다. 또는 송/수신측의 약속에 의해 미리 정해진 값들 중 하나일 수도 있고, 또는 96-127 사이의 다이나믹 값일 수도 있다. RTP를 거쳐 전송되는 미디어를 구성하는 콤포넌트들을 위해 component_type 필드의 값은 해당 콤포넌트를 전송하는 IP 스트림의 RTP 헤더 내 payload_type 내 값과 일치해야 한다(component_type: This 7-bit field shall identify the encoding format of the component. The value may be any of the values assigned by IANA for the payload_type of an RTP/AVP stream, or it may be any of the values assigned by ATSC, or it may be a "dynamic value" in the range 96-127. For components consisting of media carried via RTP, the value of this field shall match the value in the payload_type field in the RTP header of the IP stream carrying this component. Note that additional values of the component_type field in the range of 43-71 can be defined in future versions of this standard).
component_encryption_flag 필드(1비트)는 해당 콤포넌트의 암호화 유무를 지시한다.
Num_STKM_streams 필드(8비트)는 상기 component_encryption_flag 필드가 암호화를 지시하면, 해당 콤포넌트와 관련된 STKM 스트림들의 개수를 나타낸다(num_STKM_streams: An 8-bit unsigned integer field that shall identify the number of STKM streams associated with this component).
STKM_stream_id 필드(8비트)는 상기 Num_STKM_streams 필드 값만큼 반복되어 디크립션에 필요한 키를 얻을 수 있는 SKTM 스트림을 식별하는 값을 표시한다.
NRT_component_data(component_type) 필드는, 해당 콤포넌트를 렌더링하기 위해 필요한 인코딩 파라미터들 및/또는 다른 파라미터들을 제공한다. 여기서, component_data 엘리먼트의 구조는 component_type 필드의 값에 의해 결정된다(component_data(component_type): The component_data() element provides the encoding parameters and/or other parameters necessary for rendering this component. The structure of the component_data is determined by the value of component_type field).
예를 들어, 상기 component_type 필드 값이 35이면 component_data(component_type) 필드는 H.264/AVC 비디오 스트림을 위한 콤포넌트 데이터를 제공한다.
다른 예로, 상기 component_type 필드 값이 38이면 component_data(component_type) 필드는 도 13과 같은 FLUTE 파일 딜리버리를 위한 데이터를 제공한다.
하나의 NRT 서비스는 멀티플 FLUTE 세션들에 포함될 수 있다. 즉, 하나의 NRT 서비스는 복수개의 FLUTE 세션으로 구성될 수 있다. 각 FLUTE 세션은 도 13의 NRT_component_data()를 이용하여 시그널링 될 수 있다.
도 13은 본 발명에 따른 FLUTE 파일 딜리버리를 위한 데이터를 제공하는 NRT_component_data()의 비트 스트림 신택스 구조의 일 예를 보이고 있다. 상기 NRT_component_data()의 각 필드에 대한 설명은 다음과 같다.
TSI 필드(16비트)는 FLUTE 세션의 TSI를 표시한다. 즉, 상기 TSI는 FLUTE 세션을 유일하게 식별할 수 있는 식별자이다(A 16-bit unsigned integer field, which shall be the Transport Session Identifier (TSI) of FLUTE session).
session_start_time 필드(16비트)는 FLUTE 세션이 시작하는 시각을 지시한다. 만약 해당 필드의 값이 모두 '0'이면, 상기 FLUTE 세션은 이미 시작된 것으로 해석될 수 있다.
session_end_time 필드(16비트)는 FLUTE 세션이 종료되는 시각을 지시한다. 만약 해당 필드의 값이 모두 '0'이면, 상기 FLUTE 세션은 무한정 계속되는 것으로 해석될 수 있다.
tias_bandwidth_indicator 필드(1비트)는 TIAS(Transport Independent Application Specific) 대역폭 정보의 포함 여부를 지시한다. 만약 TIAS 대역폭 필드가 존재하는 것으로 지시하려면 해당 비트는 '1'로 설정되고, TIAS 대역폭 필드가 존재하지 않는 것으로 지시하려면 해당 비트는 '0'으로 설정되어야 할 것이다(A 1-bit field that flags the inclusion of TIAS bandwidth information. This bit shall be set to '1' to indicate the TIAS bandwidth field is present, and it shall be set to '0' to indicate the TIAS bandwidth field is absent).
as_bandwidth_indicator 필드(1비트)는 AS(Application Specific) 대역폭 정보의 포함 여부를 지시한다. 만약 AS 대역폭 필드가 존재하는 것으로 지시하려면 해당 비트는 '1'로 설정되어야 하고, AS 대역폭 필드가 존재하지 않는 것으로 지시하려면 해당 비트는 '0'으로 설정되어야 할 것이다(A 1-bit field that flags the inclusion of AS bandwidth information. This bit shall be set to '1' to indicate the AS bandwidth field is present, and it shall be set to '0' to indicate the AS bandwidth field is absent).
FEC_OTI_indicator 필드(1비트)는 FEC 오브젝트 트랜스미션 정보(OTI)가 제공되는지 여부를 지시한다(A 1-bit indicator that indicates whether FEC Object Transmission Information is provided).
tias_bandwidth 필드(16비트)는 상기 as_bandwidth_indicator 필드가 '1'로 설정되었을 때 존재하며, TIAS 최대 대역폭을 표시한다(This value shall be one one-thousandth of the Transport Independent Application Specific maximum bandwidth as defined in RFC 3890, rounded up to the next highest integer if necessary. This gives the TIAS bandwidth in kilobits per second).
as_bandwidth 필드(16비트)는 상기 as_bandwidth_indicator 필드가 '1'로 설정되었을 때 존재하며, AS 최대 대역폭을 표시한다 (This value shall be the Application Specific maximum bandwidth as defined in RFC 4566. This gives the AS bandwidth in kilobits per second).
FEC_encoding_id 필드는 상기 FEC_OTI_indicator 필드가 '1'로 설정되었을 때 존재하며, 해당 FLUTE 세션 내에서 사용된 FEC 인코딩 ID를 표시한다(FEC encoding ID used in this FLUTE session, as defined in RFC 3926).
FEC_instance_id 필드는 상기 FEC_OTI_indicator 필드가 '1'로 설정되었을 때 존재하며, 해당 FLUTE 세션 내에서 사용된 FEC 인스턴스 ID를 표시한다(FEC instance ID used in this FLUTE session, as defined in RFC 3926).
상기와 같은 파라미터들을 콤포넌트 루프 내 component_descriptor()의 NRT_component_data()를 통해 시그널링함으로써, 상기 FULTE 세션을 수신하기 위하여 필요한 정보들은 모두 제공할 수 있다.
즉, 상기 session_start_time 필드와 session_end_time 필드에 의해 설정된 시간 정보에 따라 해당 FLUTE 세션을 오픈하여 NRT 서비스를 구성하는 파일들, 및 상기 파일들의 시그널링 정보를 서술하는 FDT(File Description Table)를 수신할 수 있다. 상기 FDT는 모든 콘텐트 아이템들의 리스트들을 전달하는데 사용되고, 또한 콘텐트 아이템 및 콘텐트 아이템에 포함된 파일들을 획득하는데 필요한 정보들을 제공한다.
그리고 상기 FDT는 콘텐트 아이템에 포함되는 파일들을 유일하게 구별하기 위한 파일 식별자(file id)와 해당 FDT를 유일하게 식별하기 위한 인스턴스 식별자(instance id)를 포함한다. 그리고 FDT의 파일 레벨 또는 인스턴스 레벨별로 해당 콘텐트 아이템을 식별하는 content linkage가 할당된다.
예를 들어, 콘텐트 아이템을 구성하는 각 파일은 FLUTE 세션 내에서의 FDT 내에 명시된 content linkage, TOI 및 Content-Location 필드를 이용하여 식별한다. 본 발명은 content linkage, TOI 및 Content-Location 필드를 파일 식별자라 한다.
한편, 본 발명은 전술한 바와 같이 지상파 방송 환경에서 Fixed NRT 서비스를 수신할 때, 시그널링 테이블(예, VCT)의 service_type 필드를 이용하여 해당 가상 채널로 NRT 서비스가 수신됨을 확인하고 있다.
예를 들어, Fixed NRT 서비스의 경우, 도 5나 도 6에서와 같이 VCT의 서비스 타입(service type)이 0x02(즉, 디지털 A/V/Data)이거나 0x04(즉, Data only)인 경우, 또는 0x08(즉, NRT Only service)인 경우, 상기 가상 채널로 NRT 서비스 스트림이 수신된다고 판단한다.
하지만 상기 서비스 타입 필드만으로는 다양한 NRT의 쓰임새(use case)에 대응하기 어렵다.
따라서 본 발명은 NRT 서비스에 대해 서비스 타입(또는 어플리케이션 타입이라 함) 정보와 상기 서비스 타입에 따른 상세 정보를 포함하는 서비스 정보를 시그널링하여 전송하고, 방송 수신기에서는 이 서비스 정보에 따라 해당 NRT 서비스(또는 콘텐트)의 처리를 제어할 수 있도록 하는데 있다.
다시 말해, targeted advertisement, music download, push VOD 등 수 많은 NRT서비스의 use case에 따라 다양한 코덱 조합 및 연동되는 방송 수신기 내의 하드웨어 모듈(hardware module), 다양한 저장 및 재생 시나리오가 존재한다. 따라서, 본 발명은 서비스 타입과 서비스 타입에 대한 구체적인 정보를 포함하는 서비스 정보를 이용하여 해당 NRT 서비스 또는 상기 NRT 서비스를 구성하는 콘텐트를 효과적으로 처리할 수 있도록 한다. 또한 NRT 서비스를 수신하여 저장 매체에 저장하기 전에 해당 NRT 서비스를 처리 가능한지 여부를 판단하기 위한 근거로 상기 서비스 정보를 이용할 수 있다.
예를 들어, 방송 수신기는 상기 서비스 정보를 이용하여 해당 NRT 서비스의 처리 방법을 결정할 수 있다. 또한, 상기 서비스 정보를 이용하여 NRT서비스를 유저에게 어떻게 제공할지를 결정할 수도 있으며, 관련된 어플리케이션 모듈 동작을 결정할 수도 있다.
본 발명은 NRT 서비스의 처리를 제어하기 위한 서비스 정보를 방송 수신기에 제공하도록 한다.
이때 상기 서비스 정보는 시그널링 정보 테이블 중 어느 하나에 필드 형태 또는 디스크립터 형태로 포함될 수 있다.
Fixed NRT 서비스의 경우, 상기 서비스 정보는 NST와 NRT-IT 중 어느 하나의 테이블에 디스크립터 형태로 포함되는 것을 일 실시예로 한다.
상기 서비스 정보가 NST에 디스크립터 형태로 포함된다면, 상기 서비스 정보는 NST의 서비스 레벨 디스크립터의 하나로서 포함되는 것을 일 실시예로 한다. 이 경우, 상기 서비스 정보는 NRT 서비스에 개별적으로 적용된다.
상기 서비스 정보가 NRT-IT에 디스크립터 형태로 포함된다면, 상기 서비스 정보는 NRT-IT의 콘텐트 레벨 디스크립터의 하나로서 포함되는 것을 일 실시예로 한다. 이 경우, 상기 서비스 정보는 콘텐트(또는 콘텐트 아이템)에 개별적으로 적용된다.
예를 들어, 하나의 NRT 서비스가 콘텐트 1, 콘텐트 2로 구성된다고 가정하자. 이때 상기 서비스 정보가 NST에 포함된다면, 상기 서비스 정보는 상기 NRT 서비스를 구성하는 콘텐트 1,2에 동시에 적용된다. 이에 반해, 상기 서비스 정보가 NRT-IT에 포함된다면, 상기 서비스 정보는 콘텐트 1과 콘텐트 2 중 어느 하나에만 적용된다.
본 발명은 상기 서비스 정보를 기술하는 디스크립터를 설명의 편의를 위해 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()이라 하기로 한다.
본 발명은 다른 실시예로, 상기 NRT 서비스 정보 디스크립터는 NRT 서비스의 announcement table에 포함될 수도 있다. 이때, 상기 NRT 서비스 정보 디스크립터는 해당되는 NRT 서비스와 연동되어야 한다.
도 14는 본 발명에 따른 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()의 각 필드에 대한 설명은 다음과 같다.
여기서 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()는 NST에 서비스 레벨 디스크립터로서 포함되는 경우를 예로 들어 설명하기로 한다.
도 14에서, descriptor_tag 필드(8비트)는 디스크립터 식별자로서, NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()를 식별하는 식별자가 설정될 수 있다.
descriptor_length 필드(8비트)는 상기 descriptor_length 필드 이후부터 이 descriptor의 끝까지, 디스크립터의 나머지 길이를 byte 단위로 나타낸다.
application_type 필드(8 비트)는 해당 NRT 서비스의 구체적인 어플리케이션 타입을 표시한다.
도 15는 본 발명에 따른 application_type 필드 값에 따라 정의되는 의미들의 예를 보인 도면이다.
예를 들어, 상기 application_type 필드 값이 0이면, 해당 NRT 서비스가 일반적인 비디오/오디오 클립임을 나타낸다. 즉, 비디오/오디오 클립은 Pull-type으로서, 사용자가 가이드 또는 채널 브라우징(channel browsing) 과정에서 NRT 서비스를 선택하여 다운로드하는 방식을 의미한다.
상기 application_type 필드 값이 1이면, 해당 NRT 서비스가 자주 업데이트되는 서비스임을 나타낸다. 즉, 자주 업데이트되는 NRT 서비스(frequently updated NRT service)는 뉴스, 정보, 날씨 서비스(News, Information, Weather service)와 같이 오랫동안 저장할 필요가 없이 수시로 다운로드하면서 재배치(replace)가 가능한 서비스를 말한다. 다시 말해, 소비 또는 저장(expiration 또는 storage) 기간이 짧은 서비스를 의미한다.
상기 application_type 필드 값이 2이면, 해당 NRT 서비스가 뮤직 디스트리뷰션(Music Distribution)임을 나타낸다. 상기 music distribution은 audio-only 서비스를 의미한다.
상기 application_type 필드 값이 3이면, 해당 NRT 서비스가 타겟화된 광고(Targeted Advertisement)임을 나타낸다. 상기 targeted advertisement는 방송 수신기에서 비실시간으로 미리 수신하여 저장 매체에 저장하였다가 서비스 프로바이더가 전송하는 특정 신호 또는 방송 수신기 내부의 특정 규칙(rule)에 의해 트리거(trigger)되어 재생되는 서비스를 의미한다. 일 예로, 상기 타겟화된 광고는 방송 수신기에서 임의로 삭제할 수 없으며, 방송국(broadcaster 또는 service provider)에 의해 파일 매니지먼트(삭제, 업데이트 등)가 수행될 수 있다.
상기 application_type 필드 값이 4이면, 해당 NRT 서비스가 어플리케이션 데이터(Applications Data)를 포함함을 나타낸다. 상기 applications data를 이용한 NRT 서비스는 게임과 같이 A/V 콘텐트가 아닌 어플리케이션 소프트웨어 또는 실행 가능한 명령 셋트(executable command set)과 같은 형태의 서비스를 의미한다.
상기 application_type 필드 값이 5이면, 해당 NRT 서비스가 사적/가입자 기반 서비스(Private/Subscription-based Service)임을 나타낸다. 상기 private/subscription-based service는 Push-type의 비디오 콘텐트이다. 즉, 상기 비디오 콘텐트를 이용한 NRT 서비스는 미리 사용자가 가입되어 있거나 사용자의 선호도(preference)를 기반으로 한 규칙(rule set)에 의해 방송 수신기가 해당 콘텐트에 대해 자동으로 다운로드를 수행하는 방식을 의미한다.
상기 application_type 필드 값이 6이면, 해당 NRT 서비스가 텍스트 데이터(Text Data)를 포함함을 나타낸다. 상기 text data를 이용한 NRT 서비스는 문서(document) 또는 자막 형태와 같은 서비스를 의미한다.
상기 application_type 필드 값이 7이면, 해당 NRT 서비스가 파일 매니지먼트 데이터(File Management Data)를 포함함을 나타낸다. 상기 file management data는 파일의 유효기간 갱신 또는 기타 파일 관련 파라미터 정보, 및 파일의 삭제, 이동(delete, move) 등의 파일에 대한 명령 데이터를 포함한다.
상기 application_type 필드 값이 8이면, 해당 NRT 서비스가 웹 콘텐트(Web content)임을 나타낸다. 상기 웹 콘텐트는 해당 NRT 서비스를 통해 웹사이트/포털(website/portal) 등에 접속했을 때와 동일한 인터페이스를 위한 데이터 구성을 의미한다. 상기 웹 콘텐트는 HTML, JPEG 문서(document) 등으로 구성된 데이터가 포함된다.
상기 application_type 필드 값이 9이면, 해당 NRT 서비스가 스틸 이미지임을 나타낸다. 상기 스틸 이미지는 JPEG, GIF, Bitmap 등의 정지 영상 데이터를 의미한다.
상기 application_type 필드 값이 10이면, 해당 NRT 서비스가 유지 데이터(Maintenance data)임을 나타낸다. 상기 유지 데이터는 방송 수신기의 소프트웨어/펌웨어 업그레이드(software/firmware upgrade), 서비스 프로바이더로부터의 관리 메시지(administrative message), 서비스와 관련된 가입(subscription) 관련 정보, 및 콘텐트 보호(content protection)와 관련된 키 값 등을 포함한다.
상기 application_type 필드에 포함되는 정보들은 본 발명의 이해를 돕기 위한 일 실시예일뿐이며, 상기 application_type 필드에 포함되는 정보들의 추가 및 삭제는 당업자에 의해 용이하게 변경될 수 있으므로 본 발명은 상기 실시예로 한정되지 않을 것이다.
한편, 도 14에서 user_control_flag 필드(1 비트)는 NRT 서비스를 통해 제공된 콘텐트가 방송 수신기에 저장되었을 때, 상기 콘텐트를 구성하는 파일에 대한 접근 및 명령 수행 (deletion, move, update 등)을 사용자가 임의로 수행 가능한지를 나타낸다. 상기 user_control_flag 필드 값이 '1'이면, 해당 파일에 대한 접근 및 제어와 관련된 권한을 서비스 프로바이더가 가지며, 사용자에게는 그 권한이 없는 것을 일 실시예로 한다. 이 경우는 타겟화된 광고, 서비스 프로바이더 유지 메시지(targeted advertisement, service provider maintenance message) 등이 해당될 수 있다. 그리고, 상기 user_control_flag 필드 값이 '0'이면, 해당 파일에 대한 접근 및 제어와 관련된 권한을 사용자가 가지는 것을 일 실시예로 한다. 다른 실시예로 해당 파일에 대한 접근 및 제어와 관련된 권한을 사용자와 서비스 프로바이더가 모두 가질 수도 있다. 상기 필드를 override하는 실시예로는, 저장 매체에 저장된 NRT 콘텐트에 대한 권한을 maintenance data를 통해 변경하는 방법도 있다.
storage_requirement 필드(31비트)는 NRT 서비스를 통해 제공되는 콘텐트의 크기를 바이트 수로 나타낸다.
num_video_elements 필드(4 비트)는 NRT 서비스를 구성하는 콘텐트가 서로 다른 비디오 코덱(video codec)을 사용할 때, 서로 다른 비디오 코덱 종류의 개수를 나타낸다.
num_audio_elements 필드(4 비트)는 NRT 서비스를 구성하는 콘텐트가 서로 다른 오디오 코덱(audio codec)을 사용할 때, 서로 다른 오디오 코덱 종류의 개수를 나타낸다.
그리고 상기 num_video_elements 필드 값에 해당하는 비디오 코덱 개수만큼 'for' 루프가 수행되어 해당 비디오 코덱 타입(video_codec_type)을 제공하고, 상기 num_audio_elements 필드 값에 해당하는 오디오 코덱 개수만큼 'for' 루프가 수행되어 해당 오디오 코덱 타입(audio_codec_type)을 제공한다.
encapsulation_type 필드(8비트)는 오디오/비디오 스트림을 다중화하기 위해 사용된 인캡슐레이션 포맷(encapsulation format)을 나타낸다. 상기 encapsulation 포맷으로는 MPEG-2 system, MPEG-4 system 등의 실시 예가 존재한다.
web_content_type 필드(8비트)는 상기 application_type필드 값이 8 즉, 웹 콘텐트(web content)인 경우에 웹 브라우저의 호환성을 판단하기 위한 값을 표시한다. 일 예로, 상기 web_content_type 필드는 플래시(Flash) 포함 여부, XML version, HTML version 정보 등이 포함될 수 있다. 이 경우 해당 웹 콘텐트(또는 웹 문서)가 XML로 작성되었는지, HTML로 작성되었는지도 알 수 있다. 예를 들어, web_content_type 필드에 근거할 때 해당 웹 콘텐트가 HTML 문서이고 상기 문서는 HTML 4.01을 사용하여 작성되었다면, 상기 web_content_type 필드는 상기 HTML 4.01에 해당하는 값을 이 필드를 통해 명시한다. 또 다른 예로, 상기 web_content_type 필드는 web 문서가 IE 7.0 이하에서는 볼 수 없는 경우에 이를 미리 알 수 있는 필드로 사용될 수도 있다.
즉, 방송 수신기는 web_content_type 필드를 통해 호환되는 브라우저를 파악할 수 있다. 또한 web_content_type 필드에 기반하여 NRT 서비스로 제공되는 해당 웹 콘텐트가 방송 수신기 내의 웹 브라우저를 통해 지원이 가능한지를 파악할 수 있다.
expiration_type 필드(8비트)는 NRT 서비스를 저장했을 때, 해당 NRT 서비스에 대한 유효 기간의 타입을 표시한다. 상기 expiration_type 필드 값에 따라 뒤에 오는 expiration_value 필드에 명시된 값에 대한 해석이 달라진다.
예를 들어, 상기 expiration_type 필드 값으로 재생 회수에 의해 유효 기간을 제어(Expiration control by number of playbacks)하는 값이 표시되면, 상기 expiration_value 필드 값은 재생 회수를 나타낸다. 즉, 재생 회수에 따라 해당 NRT 서비스의 저장 관리를 수행한다.
만일 상기 expiration_type 필드 값으로 날짜에 의해 유효 기간을 제어(Expiration control by date)하는 값이 표시되면, 상기 expiration_value 필드 값은 날짜 및 시간 정보를 나타낸다. 즉, 특정 시간을 명시하여 저장된 해당 NRT 서비스의 유효 기간을 관리한다.
상기 expiration_type 필드에 유효 기간을 제어(Expiration control)하는 값이 표시되지 않으면, 상기 expiration_value 필드 값은 의미가 없다. 본 발명은 특별히 유효 기간을 설정하지 않으면, 이때의 expiration_value 필드 값은 0으로 설정하는 것을 일 실시예로 한다. 다른 실시 예에 따르면, 상기 expiration_type 필드를 사용하지 않고, expiration_value가 0일 때에는 유효 기간 없음(no expiration)으로 해석할 수도 있다.
controlled_rendering_flag 필드(1 비트)는 NRT 서비스의 비디오를 출력할 때, 해당 데이터에 대한 디스플레이 제어 정보가 제공되는지 여부를 표시한다. 상기 controlled_rendering_flag 필드 값이 '1'이면, 해당 데이터에 대한 디스플레이 제어 정보가 제공되는 것을 일 실시예로 한다.
본 발명에서 NRT 서비스는 풀 화면으로 제공될 수도 있고, 서브 화면으로 제공될 수도 있다. 여기서 서브 화면은 풀 화면보다 작은 화면 크기를 말하며, PIP(Picture In Picture), POP(Picture Of Picture) 화면, 더블 윈도우 화면 등이 될 수 있다.
본 발명은 controlled_rendering_flag 필드를 이용하여 해당 NRT 서비스가 풀 화면으로 제공되는지, 서브 화면으로 제공되는지를 지시하는 것을 일 실시예로 한다.
상기 NRT 서비스가 풀 화면으로 제공되는 경우, 상기 controlled_rendering_flag 필드 값은 '0'로 설정되고, 서브 화면으로 제공되는 경우 상기 controlled_rendering_flag 필드 값은 '1'로 설정되는 것을 일 실시예로 한다. 본 발명은 상기 controlled_rendering_flag 필드 값이 '1'이면, 해당 NRT 서비스를 재생할 때, 비디오 출력에 대한 제어는 현재 NRT_service_info_descriptor()에서 제공하는 디스플레이 제어 정보를 따르는 것을 일 실시예로 한다.
그리고 상기 controlled_rendering_flag 필드 값이 '1'로 설정되는 경우, target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 이용하여 디스플레이 제어 정보를 제공하는 것을 일 실시예로 한다. 즉, 상기 NRT 서비스가 디스플레이될 화면 내 위치와 크기 정보를 제공한다.
상기 target_window_position_horizontal 필드(16비트)와 target_window_position_vertical 필드(16비트)는 해당 NRT 서비스의 비디오가 출력되는 디스플레이 상에서의 수평, 수직 좌표를 표시한다. 예를 들어, 상기 target_window_position_horizontal 필드 값과 target_window_position_vertical 필드 값은 출력되는 비디오의 top left-most pixel의 위치를 표시한다.
상기 target_window_length_horizontal 필드(16비트)와 target_window_length_vertical 필드(16비트)는 해당 NRT 서비스의 비디오가 출력되는 디스플레이 상에서의 윈도우의 가로 및 세로 크기를 픽셀 단위로 나타낸다. 즉, 풀 화면 내에서 상기 NRT 서비스가 디스플레이될 서브 화면의 가로/세로 크기를 나타낸다.
도 16은 본 발명에 따른 방송 수신기가 동시 화면 기능을 제공할 때의 일 실시예를 보인 도면이다. 도 16의 동시 화면 중 서브 화면은 PIP 화면인 것을 일 실시예로 한다.
일 예로, 도 16의 (a)와 같이 메인 화면과 서브 화면에 모두 RT 서비스가 디스플레이될 수도 있고, 도 16의 (b)와 같이 메인 화면에는 RT 서비스가, 서브 화면에는 NRT 서비스가 디스플레이될 수도 있다. 그리고 도 16의 (c)와 같이 메인 화면에는 NRT 서비스가, 서브 화면에는 RT 서비스가 디스플레이될 수도 있고, 도 16의 (d)와 같이 메인 화면과 서브 화면에 모두 NRT 서비스가 디스플레이될 수도 있다.
만일, 해당 NRT 서비스가 도 16의 (b) 또는 도 16의 (d)와 같이 서브 화면으로 디스플레이되는 경우, 본 발명에서 controlled_rendering_flag 필드 값은 '1'로 설정되고, target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 이용하여 디스플레이 제어 정보가 제공된다. 즉, 상기 target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드는 NRT 서비스가 디스플레이될 서브 화면의 위치와 크기 정보를 제공한다.
그리고, 해당 NRT 서비스가 도 16의 (c) 또는 도 16의 (d)와 같이 메인 화면으로 디스플레이되는 경우, 본 발명은 controlled_rendering_flag 필드 값을 '0'로 설정하고, 디스플레이 제어 정보는 제공하지 않는다.
또한 본 발명은 리모콘, 메뉴 화면, 터치 등과 같은 입력 장치를 이용하여 서브 화면으로 디스플레이되는 NRT 서비스를 풀 화면으로 전환시킬 수 있다.
예를 들어, 리모콘의 주/부 전환키를 이용하여 서브 화면으로 디스플레이되는 NRT 서비스를 풀 화면에 디스플레이시킬 수 있다. 이때 리모콘의 주/부 전환키를 한번 더 입력하여 풀 화면에 디스플레이되는 NRT 서비스를 원래 화면인 서브 화면으로 전환시킬 수도 있다.
다른 예로, 상기 NRT 서비스가 디스플레이되는 화면 내 특정 위치에 화면 전환을 위한 메뉴(또는 아이콘, 버튼 등)를 할당하고, 리모콘 등을 이용하여 상기 메뉴를 선택하도록 함으로써, 서브 화면에 디스플레이된 NRT 서비스를 풀 화면에 디스플레이시키거나, 풀 화면의 NRT 서비스를 서브 화면에 디스플레이시킬 수 있다.
또 다른 예로, 상기 서브 화면을 터치할 때마다 주/부 화면 전환을 수행할 수도 있다.
이와 같이 RT 서비스와 NRT 서비스를 이용하여 동시 화면을 제공하는 경우, 리모콘, 메뉴 화면, 터치 등을 이용하여 주/부 화면 전환을 수행할 수 있다.
도 17은 본 발명에 따른 NST로부터 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()를 획득하여 처리하는 과정의 일 실시예를 보인 흐름도이다.
즉, NRT 서비스 시그널링 채널로부터 테이블 식별자를 이용하여 NST를 추출한다(S1201). 그리고 상기 NST의 NRT 서비스 루프로부터 도 14와 같은 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor를 추출하여(S1202), 해당 NRT 서비스의 서비스 정보를 획득한다(S1203). 이러한 과정은 상기 NST에 기술되는 모든 NRT 서비스에 대해 수행하면, 각 NRT 서비스 단위로 서비스 정보 즉, application type 및 기타 requirement 정보를 얻을 수 있다. 예를 들어, 상기 NST에 2개의 NRT 서비스가 기술된다면, 2개의 NRT 서비스(NRT 서비스 1, NRT 서비스 2)에 대한 application type 및 기타 requirement 정보를 얻을 수 있다.
그리고 상기 S1203이 수행되면, NRT 서비스 가이드 출력 화면에 각 NRT 서비스에 대해 서비스 종류를 표시한다(S1204). 예를 들어, NRT 서비스 1의 application_type 필드 값이 0이면, NRT 서비스 1이 일반적인 오디오/비디오 클립임을 표시한다. 또한 상기 NRT 서비스 1의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()의 다른 필드들을 이용하여 상기 NRT 서비스 1의 상세 정보를 표시한다(S1205). 예를 들어, NRT 서비스 1의 용량, 권한 정보, 코덱 정보, 인캡슐레이션 포맷 정보, 유효 기간 등을 표시할 수 있다. 그리고 상기 NRT 서비스를 화면에 디스플레이할 때, controlled_rendering_flag 필드 값이 '1'이면 target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 기초하여 상기 NRT 서비스 1를 서브 화면에 디스플레이한다.
만일 상기 NRT 서비스 1의 어플리케이션 타입이 현재 방송 수신기에서 지원이 되지 않는 경우에는 OSD(On Screen Display) 처리된 메시지를 출력하여 해당 사항을 사용자가 알 수 있도록 한다.
또한 어플리케이션 타입이 Maintenance Data 이거나 Targeted Advertisement인 경우에는 사용자의 개입 없이 다운로드가 이루어질 수 있으므로 해당 NRT 서비스는 가이드 출력시에 생략할 수 있다.
한편 도 18과 도 19는 본 발명에 따른 콘텐트 상세 정보를 포함하는 NRT-IT 섹션에 대한 비트 스트림 신택스 구조의 일 실시예를 보인 도면이다.
본 발명에 따른 NRT-IT 섹션의 비트 스트림 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다. 예를 들어, SDP(Session Description Protocol)의 형태로 표현하여 SAP(Session Announcement Protocol)을 통하여 시그널링하는 등의 다른 방법도 사용할 수 있다.
본 발명에 따른 NRT 서비스 시그널링 데이터 중 NRT-IT는 콘텐트 아이템을 방송 수신기에 저장하기 위해, 다운로드 가능한 콘텐트 아이템을 기술하는 정보를 포함한다. The information provided in the NRT_IT includes the title of the content (for example, the name of the program available for download), the times during which the content is to be made available for download, and information such as content advisories, availability of caption services, content identification, and other metadata. One item of content may consist of one or more files. For example, an audio/video clip may come with a JPEG thumbnail image that can be used to represent it in on-screen displays. The NRT-IT is used to provide information for virtual channels of service_type values 0x08.
An instance of the NRT-IT can include data corresponding to an arbitrarily defined time period, or can describe NRT content starting at a specified time and into the indefinite future. Each NRT-IT instance indicates the start time of the period it covers and the length of the period it covers (which may be indefinite). Each NRT-IT instance may be segmented into as many as 256 sections. One section may contain information for multiple content items, but the information for any given content item shall not be segmented and put into two or more sections.
Any content item to be made available for download for a time interval that extends beyond the time period covered one or more NRT-IT instances shall be described only in the first of these NRT-ITs. Content item descriptions are placed within the NRT_information_table_section() in the order of their first availability. Therefore, when last_section_number is greater than zero (meaning the NRT-IT is delivered in multiple sections), for sections other than the first (sections for which the value of section_number is greater than zero), all the content item descriptions within a given section shall have first availability times that are greater than or equal to all first availability times of content item descriptions in the immediately preceding section (the section whose value of section_number is one lower than the given section).
Each NRT-IT identifies NRT services associated with the given value of service_id available on a particular virtual channel sometime during the time period it covers.
이때, 하나의 NRT-IT 가 하나의 섹션으로 구성되는지 복수개의 섹션으로 구성되는지는 NRT-IT 섹션 내 table_id 필드, section_number 필드, last_section_number 필드 등을 통해 알 수 있다. 그리고 상기 NRT 서비스 시그널링 채널의 IP 데이터그램들의 IP 헤더와 UDP 헤더를 제거한 후 동일한 테이블 식별자를 갖는 섹션들을 모으면 해당하는 테이블을 완성할 수 있다. 예를 들어, NRT-IT 에 할당된 테이블 식별자를 갖는 섹션들을 모으면 NRT-IT 를 완성할 수 있다.
도 18과 도 19에 도시된 NRT-IT 섹션의 각 필드의 상세한 설명은 다음과 같다.
table_id field (8-bit) is set to 0xTBD to identify this table section as belonging to the Non-Real-Time Information Table.
service_id field (16-bit) specifies the service_id field associated with the NRT service offering content items described in this section.
NRT_IT_version_number field (5-bit) indicates the version number of this NRT-IT instance, where NRT-IT instance is defined as the set of one or more NRT_information_table_section() having common values for service_id field, current_next_indicator field, protocol_version field, and time_span_start field. The version number is incremented by 1 modulo 32 when any field in the NRT-IT instance changes.
current_next_indicator (1-bit) field is always set to '1' for NRT-IT sections; the NRT-IT sent is always currently applicable.
protocol_version field (8-bit) is set to zero. The function of protocol_version field is to allow, in the future, this table type to carry parameters that may be structured differently than those defined in the current protocol. At present, the only valid value for protocol_version field is zero. Non-zero values of protocol_version field may be used by a future version of this standard to indicate structurally different tables.
time_span_start field (32-bit) represents the start of the time span covered by this instance of the NRT-IT, expressed as the number of GPS seconds since 00:00:00 UTC, January 6, 1980. The time of day of time_span_start field is aligned to minute 00 of the hour. The value zero for time_span_start field indicates the time period covered by his NRT-IT instance began in the indefinite past. The value of time_span_start field is the same for each section of a multi-sectioned NRT-IT instance. The values of time_span_start field and time_span_length field are set such that the specified time span does not overlap with any other NRT-IT instance in this IP subnet.
time_span_length field (11-bit) indicates the number of minutes, starting at the time indicated by time_span_start field, covered by this instance of the NRT-IT. Once established, the value of time_span_length field for a given value of time_span_start field does not change. A value of time_span_length field of zero means this NRT-IT instance covers all time starting at time_span_start field into the indefinite future. If the value of time_span_start is zero, time_span_length field has no meaning. The value of time_span_length field is the same for each section of a multi-sectioned NRT-IT instance. The values of time_span_start field and time_span length field are set such that the specified time span does not overlap with any other NRT-IT instance in this IP subnet.
num_items_in_section field (8-bit) indicates the number of content items described in this NRT-IT section.
이후 상기 num_items_in_section 필드 값에 해당하는 콘텐트 아이템의 개수만큼'for' 루프(또는 콘텐트 아이템 루프라 함)가 수행되어 복수의 콘텐트 아이템에 대한 시그널링 정보를 제공한다. 즉, 상기 service_id 필드 값에 대응하는 NRT 서비스에 포함되는 콘텐트 아이템별로 해당 콘텐트 아이템의 시그널링 정보를 표시한다. 이때 각 콘텐트 아이템에 대해 다음과 같은 필드 정보를 제공할 수 있다.
content_linkage field (32-bit) in the range 0x0001 to 0xFFFF specifies the identification number of the content (or content item) described. Value 0x0000 is not used. The content_linkage field performs two linkage functions: it links metadata in the NRT-IT to one or more files in the FLUTE FDT associated with this NRT service; it also forms the TF_id field (identifier for Text Fragment in Text Fragment Table). The value of the content_linkage field corresponds to either the value of one of the FDT-Content-Linkage elements or the value of one of the File-Content-Linkage elements in the FLUTE FDT for each file associated with the content item. The precedence rules may be applied when matching each content_linkage value with the corresponding content linkage elements in the FLUTE FDT.
updates_available field (1비트)는 해당 콘텐트 아이템이 업데이트되는 콘텐트 아이템인지를 지시한다. 예를 들어, 상기 콘텐트 아이템이 한번 서비스되고 종료되는 NRT 서비스에 포함된 콘텐트 아이템이라면, updates_available field 값은'0'으로 설정된다. 만일 상기 콘텐트 아이템이 한번 이상 업데이트되는 콘텐트 아이템이라면, 상기 updates_available field 값은 '1'로 설정된다. That is, this field specifies, when set to '1,' that the referenced content item(s) will be updated. When the updates_available field is set to '0', updates are not expected to be provided for the associated content item(s), and broadcast receivers are not expected to look for them.
TF_available field is Boolean flag, this field specifies, when set to '1' that a Text Fragment is present in a Text Fragment Table in the service signaling channel. When the field is set to '0,' no Text Fragment is included in the service signaling channel for this content item.
low_latency field is Boolean flag, this field specifies, when set to '1,' that the content is available within the current digital transport with a low enough latency that its retrieval should be attempted while the user waits. When the field is set to '0', retrieval latency is longer and the user interface should suggest to the user to return later for viewing.
playback_length_in_seconds field (20-bit) specifies the duration of playback of the content, in seconds. For content consisting only of text and/or still images, the value zero is used. For content that includes audio or audio/video content, the playback_length_in_seconds field indicates the playback length of the audio or audio/video content.
content_length_included field is Boolean flag, this field indicates, when set to '1,' that the content_length field is present in this iteration of the "for" loop. Setting this field to '0' indicates the content_length field is not present in this iteration of the "for" loop.
playback_delay_included field is Boolean flag, this field indicates, when set to '1,' that the playback_delay field is present in this iteration of the "for" loop. Setting this field to '0' indicates the playback_delay field is not present in this iteration of the "for" loop.
expiration_included field is Boolean flag, this field indicates, when set to '1,' that the expiration field is present in this iteration of the "for" loop. Setting this field to '0' indicates the expiration field is not present in this iteration of the "for" loop.
duration field (12-bit) in the range 1 to 2880 specifies the expected cycle time, in minutes, of the carousel containing the referenced content item. A broadcast receiver is expected to use the duration parameter to determine the amount of time needed to capture the referenced content.
content_length field (40-bit), when present, represents the total size in bytes of the content item or items. This item is used by the broadcast receiver to determine if enough memory is available to store it before downloading is attempted.
playback_delay field (20-bit) counts of the number of seconds following reception of the first byte of the associated content the broadcast receiver waits before playback may start, while buffering the incoming stream. A value of zero indicates playback may commence immediately. When playback_delay field is not provided, the broadcast receiver is expected to retrieve the complete file or file set prior to playback.
expiration field (32-bit) represents the expiration time of the content, expressed as the number of GPS seconds since 00:00:00 UTC, January 6, 1980. Following expiration, the content is deleted from memory. If an expiration time is not specified, broadcast receivers are expected to use methods of their own choosing to manage memory resources.
content_name_length field (8-bit) specifies the length (in bytes) of the content_name_text().
content_name_text() field specifies the content item title in the format of a multiple string structure.
content_descriptors_length field (12-bit) indicates the total length (in bytes) of the content_descriptor () that provide additional information about the content level.
content_descriptor()는 is separately applied to each content item.
descriptors_length field (10-bit) indicates the total length (in bytes) of the descriptor ().
descriptor()는 is commonly applied to all content items described in the current NRT-IT section.
한편, 도 14의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()는 도 18, 도 19의 NRT-IT의 콘텐트 레벨 디스크립터 content_descriptor()의 하나로서 포함될 수 있다.
상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()가 NRT-IT에 디스크립터 형태로 포함된다면, 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()는 콘텐트(또는 콘텐트 아이템)에 개별적으로 적용된다.
예를 들어, 하나의 NRT 서비스가 콘텐트 1, 콘텐트 2로 구성된다고 가정하면, 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()는 콘텐트 1과 콘텐트 2 중 어느 하나에만 적용된다. 예를 들어, 콘텐트 2에 대해 기술하는 콘텐트 아이템 루프에 포함된 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()라면, 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()에서 기술되는 서비스 정보는 콘텐트 2에 적용된다.
도 14의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()와 도 15의 어플리케이션 타입 정보를 콘텐트 2에 적용하여 다시 설명하면 다음과 같다.
application_type 필드(8 비트)는 콘텐트 2 의 구체적인 어플리케이션 타입을 표시한다.
예를 들어, 상기 application_type 필드 값이 0이면, 콘텐트 2 가 일반적인 비디오/오디오 클립임을 나타낸다.
상기 application_type 필드 값이 1이면, 콘텐트 2 가 자주 업데이트되는 콘텐트임을 나타낸다.
상기 application_type 필드 값이 2이면, 콘텐트 2 가 뮤직 디스트리뷰션(Music Distribution)임을 나타낸다.
상기 application_type 필드 값이 3이면, 콘텐트 2 가 타겟화된 광고(Targeted Advertisement)임을 나타낸다.
상기 application_type 필드 값이 4이면, 콘텐트 2 가 어플리케이션 데이터(Applications Data)임을 나타낸다.
상기 application_type 필드 값이 5이면, 콘텐트 2 가 사적/가입자 기반 콘텐트(Private/Subscription-based Content)임을 나타낸다.
상기 application_type 필드 값이 6이면, 콘텐트 2 가 텍스트 데이터(Text Data)임을 나타낸다.
상기 application_type 필드 값이 7이면, 콘텐트 2 가 파일 매니지먼트 데이터(File Management Data)임을 나타낸다.
상기 application_type 필드 값이 8이면, 콘텐트 2 가 웹 콘텐트(Web content)임을 나타낸다.
상기 application_type 필드 값이 9이면, 콘텐트 2 가 스틸 이미지임을 나타낸다.
상기 application_type 필드 값이 10이면, 콘텐트 2 가 유지 데이터(Maintenance data)임을 나타낸다.
상기 user_control_flag 필드(1 비트)는 콘텐트 2가 방송 수신기에 저장되었을 때, 상기 콘텐트 2를 구성하는 파일에 대한 접근 및 명령 수행(deletion, move, update 등)을 사용자가 임의로 수행 가능한지를 나타낸다.
상기 storage_requirement 필드(31비트)는 콘텐트 2 의 크기를 바이트 수로 나타낸다.
상기 num_video_elements 필드(4 비트)는 콘텐트 2 또는 콘텐트 2에 포함된 파일들이 서로 다른 비디오 코덱(video codec)을 사용할 때, 서로 다른 비디오 코덱 종류의 개수를 나타낸다.
상기 num_audio_elements 필드(4 비트)는 콘텐트 2 또는 콘텐트 2에 포함된 파일들이 서로 다른 오디오 코덱(audio codec)을 사용할 때, 서로 다른 오디오 코덱 종류의 개수를 나타낸다.
그리고 상기 num_video_elements 필드 값에 해당하는 비디오 코덱 개수만큼 'for' 루프가 수행되어 해당 비디오 코덱 타입(video_codec_type)을 제공하고, 상기 num_audio_elements 필드 값에 해당하는 오디오 코덱 개수만큼 'for' 루프가 수행되어 해당 오디오 코덱 타입(audio_codec_type)을 제공한다.
상기 encapsulation_type 필드(8비트)는 콘텐트 2의 오디오/비디오 스트림을 다중화하기 위해 사용된 인캡슐레이션 포맷(encapsulation format)을 나타낸다.
상기 web_content_type 필드(8비트)는 상기 application_type필드 값이 8 즉, 웹 콘텐트(web content)인 경우에 웹 브라우저의 호환성을 판단하기 위한 값을 표시한다.
상기 expiration_type 필드(8비트)는 콘텐트 2를 저장했을 때, 상기 저장된 콘텐트 2에 대한 유효 기간의 타입을 표시한다. 상기 expiration_type 필드 값에 따라 뒤에 오는 expiration_value 필드에 명시된 값에 대한 해석이 달라진다.
예를 들어, 상기 expiration_type 필드 값으로 재생 회수에 의해 유효 기간을 제어(Expiration control by number of playbacks)하는 값이 표시되면, 상기 expiration_value 필드 값은 재생 회수를 나타낸다. 즉, 재생 회수에 따라 콘텐트 2 의 저장 관리를 수행한다.
만일 상기 expiration_type 필드 값으로 날짜에 의해 유효 기간을 제어(Expiration control by date)하는 값이 표시되면, 상기 expiration_value 필드 값은 날짜 및 시간 정보를 나타낸다. 즉, 특정 시간을 명시하여 저장된 콘텐트 2 의 유효 기간을 관리한다.
상기 expiration_type 필드에 유효 기간을 제어(Expiration control)하는 값이 표시되지 않으면, 상기 expiration_value 필드 값은 의미가 없다. 본 발명은 특별히 유효 기간을 설정하지 않으면, 이때의 expiration_value 필드 값은 0으로 설정하는 것을 일 실시예로 한다. 다른 실시 예에 따르면, 상기 expiration_type 필드를 사용하지 않고, expiration_value가 0일 때에는 유효 기간 없음(no expiration)으로 해석할 수도 있다.
controlled_rendering_flag 필드(1 비트)는 콘텐트 2의 비디오를 출력할 때, 해당 데이터에 대한 디스플레이 제어 정보가 제공되는지 여부를 표시한다. 상기 controlled_rendering_flag 필드 값이 '1'이면, 해당 데이터에 대한 디스플레이 제어 정보가 제공되는 것을 일 실시예로 한다.
본 발명에서 콘텐트 2는 풀 화면으로 제공될 수도 있고, 서브 화면으로 제공될 수도 있다. 여기서 서브 화면은 풀 화면보다 작은 화면 크기를 말하며, PIP(Picture In Picture), POP(Picture Of Picture) 화면, 더블 윈도우 화면 등이 될 수 있다. 본 발명은 일 실시예로, 하나의 NRT 서비스에 콘텐트 1과 콘텐트 2가 포함된다고 가정할 때, 콘텐트 1과 콘텐트 2를 동시에 한 화면으로 출력할 수도 있다.
본 발명은 controlled_rendering_flag 필드를 이용하여 콘텐트 2가 풀 화면으로 제공되는지, 서브 화면으로 제공되는지를 지시한다.
상기 콘텐트 2가 풀 화면으로 제공되는 경우, 상기 controlled_rendering_flag 필드 값은 '0'로 설정되고, 서브 화면으로 제공되는 경우 상기 controlled_rendering_flag 필드 값은 '1'로 설정되는 것을 일 실시예로 한다. 본 발명은 상기 controlled_rendering_flag 필드 값이 '1'이면, 콘텐트 2를 재생할 때, 비디오 출력에 대한 제어는 현재 NRT_service_info_descriptor()에서 제공하는 디스플레이 제어 정보를 따르는 것을 일 실시예로 한다.
그리고 상기 controlled_rendering_flag 필드 값이 '1'로 설정되는 경우, target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 이용하여 디스플레이 제어 정보를 제공하는 것을 일 실시예로 한다. 즉, 상기 콘텐트 2가 디스플레이될 화면 내 위치와 크기 정보를 제공한다.
상기 target_window_position_horizontal 필드(16비트)와 target_window_position_vertical 필드(16비트)는 콘텐트 2의 비디오가 출력되는 디스플레이 상에서의 수평, 수직 좌표를 표시한다. 예를 들어, 상기 target_window_position_horizontal 필드 값과 target_window_position_vertical 필드 값은 출력되는 비디오의 top left-most pixel의 위치를 표시한다.
상기 target_window_length_horizontal 필드(16비트)와 target_window_length_vertical 필드(16비트)는 콘텐트 2의 비디오가 출력되는 디스플레이 상에서의 윈도우의 가로 및 세로 크기를 픽셀 단위로 나타낸다. 즉, 풀 화면 내에서 상기 콘텐트 2 가 디스플레이될 서브 화면의 가로/세로 크기를 나타낸다.
그리고, 도 16의 (a) 내지 (d)에서 NRT 서비스 대신 콘텐트 2가 디스플레이될 때에도 전술한 방법들 중 하나를 이용하여 주/부 전환을 수행할 수 있다.
도 20은 본 발명에 따른 Fixed NRT 서비스를 위한 방송 수신기의 일 실시예를 보인 구성 블록도이다.
도 20의 방송 수신기는 오퍼레이션 제어기(100), 베이스밴드 처리부(110), 서비스 역다중화기(120), 스트림 콤포넌트 핸들러(130), 미디어 핸들러(140), 파일 핸들러(150), 서비스 매니저(160), PVR 매니저(170), 제1 저장부(180), SG 핸들러(190), EPG 핸들러(200), NRT 서비스 매니저(210), 어플리케이션 매니저(220), 미들웨어 엔진(230), 프리젠테이션 매니저(240), 및 UI(User Interface) 매니저(250)를 포함할 수 있다.
상기 베이스밴드 처리부(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)를 포함할 수 있다.
이와 같이 구성된 도 20에서, 튜너(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의 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를 디코딩하여 압축 이전의 상태로 복원한 후 프리젠테이션 매니저(240)로 출력한다. 이때 상기 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 첵섬을 제거하여 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 서비스 시그널링 데이터로부터 도 10, 도 11과 같은 NST, 도 18, 도 19와 같은 NRT-IT를 복원하고 파싱하여 서비스 매니저(160)로 출력한다. 상기 NST를 파싱하면 NRT 서비스를 구성하는 콘텐트 아이템/파일들을 전송하는 FLUTE 세션의 접속 정보를 얻을 수 있다. 상기 NRT-IT를 파싱하면 각 콘텐트 아이템의 상세 정보를 얻을 수 있다.
상기 NST와 NRT-IT로부터 파싱된 정보는 서비스 매니저(160)에 의해 수집되어 제1 저장부(180)에 저장된다. 상기 서비스 매니저(160)는 상기 NST와 NRT-IT에서 추출된 정보를 서비스 맵 및 가이드 데이터 형태로 상기 제1 저장부(180)에 저장한다. 다른 실시예로, 상기 서비스 매니저(160)의 역할을 NRT 서비스 매니저(210)에서 수행할 수도 있다. 즉, 상기 NST와 NRT-IT로부터 파싱된 정보는 NRT 서비스 매니저(210)에 의해 수집되어 제1 저장부(180)에 저장될 수도 있다.
본 발명은 일 실시예로, NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()가 NST에 포함되어 수신된다고 가정하자
이 경우, 상기 서비스 매니저(160) 또는 NRT 서비스 매니저(210)는 상기 NST의 NRT 서비스 루프로부터 도 14와 같은 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor를 추출하여, 해당 NRT 서비스의 서비스 정보를 획득한다. 이러한 과정을 상기 NST에 포함된 모든 NRT 서비스에 대해 수행하면, 각 NRT 서비스 단위로 서비스 정보 즉, application type 및 기타 requirement 정보를 얻을 수 있다. 그리고 프리젠테이션 매니저(240)를 통해 NRT 서비스 가이드 출력 화면에 각 NRT 서비스에 대해 서비스 종류를 표시한다. 또한 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor의 다른 필드들을 이용하여 상기 NRT 서비스의 상세 정보를 표시한다. 그리고 상기 NRT 서비스를 화면으로 디스플레이할 때, controlled_rendering_flag 필드 값이 '1'이면 target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 이용하여 상기 NRT 서비스를 서브 화면으로 디스플레이한다. 만일 상기 NRT 서비스의 어플리케이션 타입이 현재 방송 수신기에서 지원이 되지 않는 경우에는 OSD(On Screen Display) 처리된 메시지를 출력하여 해당 사항을 사용자가 알 수 있도록 한다.
또한 어플리케이션 타입이 Maintenance Data 이거나 Targeted Advertisement인 경우에는 사용자의 개입 없이 다운로드가 이루어질 수 있으므로 해당 NRT 서비스는 가이드 출력시에 생략할 수 있다.
그리고 상기 NRT 서비스 매니저(210)는 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()로부터 획득한 서비스 정보에 따라 해당 NRT 서비스의 처리를 제어한다. 예를 들어, application_type 필드 값이 3 즉, 타겟 광고임을 지시하고, user_control_flag 필드 값이 '1'이라고 가정하자. 이 경우 사용자는 임의로 상기 NRT 서비스를 삭제할 수 없다. 또한 expiration_type 필드와 expiration_value 필드 값이 유효 기간을 2번의 재생으로 제한하였다면, 상기 NRT 서비스는 2번 재생되면 저장 매체로부터 자동 삭제된다.
상기 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 서비스 매니저(210)의 제어를 받는다. 이때 상기 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 서비스 매니저(210)의 제어를 받는다.
상기 SG 핸들러(190)는 XML 구조로 전송되는 서비스 가이드를 위한 데이터를 수집하고 분석하여 EPG 매니저(200)로 출력한다.
상기 파일 디코더(157)는 상기 파일 재건 버퍼(152)로부터 출력되는 파일 또는 디콤프레서(155)로부터 출력되는 파일 또는 제3 저장부(156)로부터 업로드된 파일을 기 설정된 알고리즘으로 디코딩하여 미들웨어 엔진(230)으로 출력하거나, A/V 디코더(141)로 출력한다. 상기 파일은 NRT 서비스를 구성하는 파일인 것을 일 실시예로 한다.
상기 미들웨어 엔진(230)은 NRT 서비스와 같은 파일 구조의 데이터 즉, 어플리케이션을 해석하여 실행시킨다. 그리고 상기 어플리케이션을 프리젠테이션 매니저(240)를 통해 화면이나 스피커와 같은 출력 장치로 출력할 수도 있다. 상기 미들웨어 엔진(230)은 자바(JAVA) 기반의 미들웨어 엔진인 것을 일 실시예로 한다.
상기 EPG 매니저(200)는 유저의 입력에 따라 SG 핸들러(190)로부터 서비스 가이드 데이터를 입력받아 디스플레이 포맷으로 변환한 후 프리젠테이션 매니저(240)로 출력한다. 상기 어플리케이션 매니저(220)는 상기 파일 등의 형태로 수신되는 어플리케이션 데이터의 처리에 관한 전반적인 관리를 수행한다.
상기 서비스 매니저(160)는 PSI/PSIP 테이블 데이터 또는 NRT 서비스 시그널링 채널로 전송되는 NRT 서비스 시그널링 데이터를 수집하고 분석하여 서비스 맵을 만든 후 제1 저장부(125)에 저장한다. 또한 상기 서비스 매니저(160)는 사용자가 원하는 NRT 서비스에 대한 접속 정보를 제어하며, 튜너(111), 복조기(112), IP 데이터그램 핸들러(136) 등에 대한 제어를 수행한다.
상기 오퍼레이션 제어기(100)는 UI 매니저(250)를 통해 입력되는 유저의 명령에 따라 상기 서비스 매니저(160), PVR 매니저(170), EPG 매니저(200), NRT 서비스 매니저(210), 어플리케이션 매니저(220), 프리젠테이션 매니저(240) 중 적어도 하나를 제어하여, 상기 유저의 명령에 따른 기능이 수행되도록 한다.
상기 NRT 서비스 매니저(210)는 IP 계층 상에서 FLUTE 세션을 통하여 콘텐트/파일 형태로 전송되는 NRT 서비스에 대한 전반적인 관리를 수행한다. 이때 상기 NRT 서비스를 구성하는 파일들은 상기 NRT 서비스 매니저(210)의 제어에 의해 제2, 제3 저장부(125,156) 중 어느 하나에 저장된다.
상기 UI 매니저(250)는 UI를 통해 유저의 입력을 오퍼레이션 제어기(100)로 전달한다.
상기 프리젠테이션 매니저(240)는 A/V 디코더(141)에서 출력되는 오디오 및 비디오 데이터, 미들웨어 엔진(230)에서 출력되는 파일 데이터(NRT 서비스 데이터 포함), EPG 매니저(210)에서 출력되는 서비스 가이드 데이터 중 적어도 하나를 스피커 및/또는 화면을 통해 유저에게 제공한다.
지금까지는 Fixed NRT 서비스에 적용되는 서비스 정보에 대해 설명하였다.
Mobile NRT 서비스
이하에서는 Nobile NRT 서비스에 적용되는 서비스 정보에 대해 설명하기로 한다.
본 발명에 따른 모바일 NRT 서비스와 관련되어 사용되는 용어 중 메인 서비스 데이터는 고정형 수신 시스템에서 수신할 수 있는 데이터로서, 오디오/비디오(A/V) 데이터를 포함할 수 있다. 즉, 상기 메인 서비스 데이터에는 HD(High Definition) 또는 SD(Standard Definition)급의 A/V 데이터가 포함될 수 있으며, 데이터 방송을 위한 각종 데이터가 포함될 수도 있다. 그리고 기지(Known) 데이터는 송/수신측의 약속에 의해 미리 알고 있는 데이터이다.
본 발명에서 사용되는 용어 중 M/H(또는 MH)는 모바일(Mobile)와 핸드헬드(Handheld) 각각의 첫 글자이며, 고정형에 반대되는 개념이다. 그리고 M/H 서비스 데이터는 모바일(Mobile) 서비스 데이터, 핸드헬드(Handheld) 서비스 데이터 중 적어도 하나를 포함하며, 설명의 편의를 위해 본 발명에서는 M/H 서비스 데이터를 모바일 서비스 데이터라 하기도 한다. 이때 상기 모바일 서비스 데이터에는 M/H 서비스 데이터뿐만 아니라, 이동이나 휴대를 의미하는 서비스 데이터는 어느 것이나 포함될 수 있으며, 따라서 상기 모바일 서비스 데이터는 상기 M/H 서비스 데이터로 제한되지 않을 것이다.
상기와 같이 정의된 모바일 서비스 데이터는 프로그램 실행 파일, 주식 정보 등과 같이 정보를 갖는 데이터일 수도 있고, A/V 데이터일 수도 있다. 특히 상기 모바일 서비스 데이터는 휴대용이나 이동형 단말기(또는 방송 수신기)를 위한 서비스 데이터로서 메인 서비스 데이터에 비해서 작은 해상도와 작은 데이터 율을 가지는 A/V 데이터가 될 수도 있다. 예를 들어, 기존 메인 서비스를 위해 사용하는 A/V 코덱(Codec)이 MPEG-2 코덱(Codec)이라면, 모바일 서비스를 위한 A/V 코덱(Codec)으로는 보다 영상 압축 효율이 좋은 MPEG-4 AVC(Advanced Video Coding), SVC(Scalable Video Coding) 등의 방식이 사용될 수도 있다. 또한 상기 모바일 서비스 데이터로 어떠한 종류의 데이터라도 전송될 수 있다. 일례로 실시간으로 교통 정보를 방송하기 위한 TPEG(Transport Protocol Expert Group) 데이터가 모바일 서비스 데이터로 전송될 수 있다.
또한 상기 모바일 서비스 데이터를 이용한 데이터 서비스로는 날씨 서비스, 교통 서비스, 증권 서비스, 시청자 참여 퀴즈 프로그램, 실시간 여론 조사, 대화형 교육 방송, 게임 서비스, 드라마의 줄거리, 등장인물, 배경음악, 촬영장소 등에 대한 정보 제공 서비스, 스포츠의 과거 경기 전적, 선수의 프로필 및 성적에 대한 정보 제공 서비스, 상품 정보 및 이에 대한 주문 등이 가능하도록 하는 서비스별, 매체별, 시간별, 또는 주제별로 프로그램에 대한 정보 제공 서비스 등이 될 수 있으며, 본 발명은 이에 한정하지는 않는다.
도 21은 모바일 NRT 서비스를 제공하기 위한 프로토콜 스택의 일 예를 보이고 있다. 도 21 은 IP 계층과 물리 계층 사이에 적응 계층(Adaption Layer)을 포함시켜, MPEG-2 TS 포맷을 사용하지 않으면서 모바일 서비스 데이터의 IP 데이터그램과 시그널링 정보의 IP 데이터그램을 전송할 수 있도록 하는데 있다.
즉, 방송국에서는 도 21 에서 파일 전송 프로토콜(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 서비스 가이드 정보도 상기 NRT 콘텐트/파일과 동일한 과정을 거쳐 IP 데이터그램을 구성할 수 있다.
또한 상기 NRT 콘텐트 아이템/파일들을 수신하기 위해 필요한 NRT 서비스 시그널링 정보는 NRT 서비스 시그널링 채널을 통해 전송되는데, 상기 NRT 서비스 시그널링 채널은 UDP(User Datagram protocol) 방식에 따라 패킷화되고, 상기 패킷화된 UDP 데이터는 다시 IP 방식에 따라 패킷화되어 UDP/IP 데이터가 된다. 상기 UDP/IP 데이터도 본 발명에서는 설명의 편의를 위해 IP 데이터그램이라 한다. 이때 상기 NRT 서비스 시그널링 채널은 Well-known IP desination address와 well-known desination UDP port number를 가지는 IP 데이터그램에 인캡슐레이션되어 멀티캐스트(Multicast)되는 것을 일 실시예로 한다.
그리고, 모바일 서비스를 위한 A/V 스트리밍은 RTP 헤더, UDP 헤더, IP 헤더가 순차적으로 더해져 하나의 IP 데이터그램을 구성한다.
적응 계층에서 상기 NRT 서비스, NRT 서비스 시그널링 채널, 모바일 서비스 데이터의 IP 데이터그램들을 모아 RS 프레임을 생성한다. 상기 RS 프레임에 OMA BCAST 서비스 가이드의 IP 데이터그램도 포함될 수 있다.
상기 RS 프레임에서 컬럼의 길이(즉, 로우의 개수)는 187 바이트로 정해지며, 로우의 길이(즉, 컬럼의 개수)는 N바이트이고, 상기 N은 전송 파라미터(또는 TPC 데이터)와 같은 시그널링 정보에 따라 달라질 수 있다.
상기 RS 프레임은 모바일 물리 계층(mobile physical layer)에서 기 정해진 전송 방식 예를 들면, VSB 전송 방식으로 변조되어 수신 시스템으로 전송된다.
이때 모바일 NRT 서비스를 위해 NRT 서비스 시그널링 채널로 전송되는 NRT 서비스 시그널링 데이터는 서비스 맵 테이블(SMT)를 포함한다. 상기 SMT는 모바일 방송에 포함되어 수신되는 RT 서비스 또는 NRT 서비스 및 각 서비스에 포함된 콤포넌트(또는 콘텐트 아이템)의 접속 정보를 제공한다. 본 발명은 상기 SMT를 모바일 NRT 서비스를 위한 시그널링 정보 테이블이라 하기도 한다.
상기 SMT는 Fixed NRT 서비스의 NST에 대응되는 시그널링 정보 테이블이다. 만일 모바일 방송에 포함된 서비스가 NRT 서비스이면, 상기 SMT로부터 NRT 서비스를 구성하는 콘텐트 아이템/파일들을 전송하는 FLUTE 세션의 접속 정보를 포함하는 시그널링 정보를 추출할 수 있다. 그리고 OMA BCAST 서비스 가이드(SG) 정보로부터 상기 NRT 서비스를 구성하는 콘텐트 아이템들의 상세 정보를 추출할 수 있다.
한편, 본 발명의 실시 예에 따른 모바일 방송 기술에서 사용하고 있는 데이터 구조는 데이터 그룹 구조와 RS 프레임 구조가 있다. 이를 상술하면 다음과 같다.
도 22는 본 발명에 따른 데이터 그룹의 구조에 대한 일 실시 예를 보인 도면이다.
도 22에 따른 데이터 구성에서 데이터 그룹을 10개의 M/H 블록(M/H block B1∼B10)으로 구분하는 예를 보이고 있다. 그리고 각 M/H 블록은 16 세그먼트의 길이를 갖는 것을 일 실시 예로 한다. 도 22에서 M/H 블록 B1의 앞 5 세그먼트와 M/H 블록 B10 뒤의 5 세그먼트는 일부에 RS 패리티 데이터만 할당하며, 데이터 그룹의 A 영역 내지 D 영역에서 제외하는 것을 일 실시 예로 한다.
즉, 하나의 데이터 그룹을 A, B, C, D 영역으로 구분한다고 가정하면, 데이터 그룹 내 각 M/H 블록의 특성에 따라 각 M/H 블록을 A 영역 내지 D 영역 중 어느 하나의 영역에 포함시킬 수 있다. 이때 메인 서비스 데이터의 간섭 정도에 따라 각 M/H 블록을 A 영역 내지 D 영역 중 어느 하나의 영역에 포함시키는 것을 일 실시 예로 한다.
여기서, 상기 데이터 그룹을 다수개의 영역으로 구분하여 사용하는 이유는 각각의 용도를 달리하기 위해서이다. 즉, 메인 서비스 데이터의 간섭이 없거나 적은 영역은 그렇지 않은 영역보다 강인한 수신 성능을 보일 수 있기 때문이다. 또한, 송/수신 측의 약속에 의해 알고 있는 기지(known) 데이터를 데이터 그룹에 삽입하여 전송하는 시스템을 적용하는 경우, 모바일 서비스 데이터에 연속적으로 긴 기지 데이터를 주기적으로 삽입하고자 할 때, 메인 서비스 데이터의 간섭이 없는 영역(즉, 메인 서비스 데이터가 섞이지 않는 영역)에는 일정 길이의 기지 데이터를 주기적으로 삽입하는 것이 가능하다. 그러나 메인 서비스 데이터의 간섭이 있는 영역에는 메인 서비스 데이터의 간섭으로 기지 데이터를 주기적으로 삽입하는 것이 곤란하고 연속적으로 긴 기지 데이터를 삽입하는 것도 곤란하다.
도 22의 데이터 그룹 내 M/H 블록 B4 내지 M/H 블록 B7은 메인 서비스 데이터의 간섭이 없는 영역으로서 각 M/H 블록의 앞뒤에 긴 기지 데이터 열이 삽입된 예를 보이고 있다. 본 발명에서는 상기 M/H 블록 B4 내지 M/H 블록 B7을 포함하여 A 영역(=B4+B5+B6+B7)이라 하기로 한다. 상기와 같이 각 M/H 블록마다 앞뒤로 기지 데이터 열을 갖는 A 영역의 경우, 수신 시스템에서는 기지 데이터로부터 얻을 수 있는 채널 정보를 이용하여 등화를 수행할 수 있으므로, A 영역 내지 D 영역 중 가장 강인한 등화 성능을 얻을 수가 있다.
도 22의 데이터 그룹 내 M/H 블록 B3과 M/H 블록 B8은 메인 서비스 데이터의 간섭이 적은 영역으로서, 두 M/H 블록 모두 한쪽에만 긴 기지 데이터 열이 삽입된 예를 보이고 있다. 즉, 메인 서비스 데이터의 간섭으로 인해 M/H 블록 B3은 해당 M/H 블록의 뒤에만 긴 기지 데이터 열이 삽입되고, M/H 블록 B8은 해당 M/H 블록의 앞에만 긴 기지 데이터 열이 삽입될 수 있다. 본 발명에서는 상기 M/H 블록 B3과 M/H 블록 B8을 포함하여 B 영역(=B3+B8)이라 하기로 한다. 상기와 같이 각 M/H 블록마다 어느 한쪽에만 기지 데이터 열을 갖는 B 영역의 경우, 수신 시스템에서는 기지 데이터로부터 얻을 수 있는 채널 정보를 이용하여 등화를 수행할 수 있으므로, C/D 영역보다 더 강인한 등화 성능을 얻을 수가 있다.
도 22의 데이터 그룹 내 M/H 블록 B2와 M/H 블록 B9는 메인 서비스 데이터의 간섭이 B 영역보다 더 많으며, 두 M/H 블록 모두 앞뒤로 긴 기지 데이터 열을 삽입할 수 없다. 본 발명에서는 상기 M/H 블록 B2와 M/H 블록 B9를 포함하여 C 영역(=B2+B9)이라 하기로 한다.
도 22의 데이터 그룹 내 M/H 블록 B1과 M/H 블록 B10은 메인 서비스 데이터의 간섭이 C 영역보다 더 많으며, 마찬가지로 두 M/H 블록 모두 앞뒤로 긴 기지 데이터 열을 삽입할 수 없다. 본 발명에서는 상기 M/H 블록 B1과 M/H 블록 B10을 포함하여 D 영역(=B1+B10)이라 하기로 한다. 상기 C/D 영역은 기지 데이터 열로부터 많이 떨어져 있기 때문에 채널이 빠르게 변하는 경우에는 수신 성능이 안 좋을 수가 있다.
또한, 상기 데이터 그룹은 시그널링 데이터(또는 시그널링 정보)가 할당되는 시그널링 정보 영역을 포함한다.
본 발명은 데이터 그룹 내 M/H 블록 B4의 첫 번째 세그먼트부터 두 번째 세그먼트의 일부를 시그널링 정보 영역으로 이용할 수 있다.
본 발명은 각 데이터 그룹의 M/H 블록 B4의 276(=207+69) 바이트를 시그널링 정보 영역으로 이용하는 것을 일 실시 예로 한다. 즉, 시그널링 정보 영역은 M/H 블록 B4의 첫 번째 세그먼트인 207 바이트와 두 번째 세그먼트의 처음 69 바이트로 구성된다. 상기 M/H 블록 B4의 첫 번째 세그먼트는 VSB 필드의 17번째 또는 173번째 세그먼트에 해당한다.
상기 시그널링 정보 영역으로 전송되는 시그널링 데이터는 크게 두 종류의 시그널링 채널 데이터로 구분할 수 있다. 하나는 전송 파라미터 채널(Transmission Parameter Channel; TPC) 데이터이고, 다른 하나는 고속 정보 채널(Fast Information Channel; FIC) 데이터이다.
그리고 상기 TPC 데이터는 주로 물리적 계층(Physical layer) 모듈에서 사용되는 파라미터들을 포함하며, 인터리빙이 되지 않고 전송되므로, 수신 시스템에서는 슬롯별로 억세스가 가능하다.
상기 FIC 데이터는 수신기에서 빠른 서비스 획득(fast service acquisition)이 가능하도록 하기 위해 제공되며, 물리 계층과 상위 계층 사이의 크로스 계층 정보를 포함한다. 상기 FIC 데이터는 서브 프레임 단위로 인터리빙되어 전송된다.
예를 들어, 상기 데이터 그룹이 도 22에서와 같이 6개의 기지 데이터 열을 포함하는 경우, 상기 시그널링 정보 영역은 제 1 기지 데이터 열과 제2 기지 데이터 열 사이에 위치한다. 즉, 제1 기지 데이터 열은 데이터 그룹 내 M/H 블록 B3의 마지막 2 세그먼트에 삽입되고, 제2 기지 데이터 열은 M/H 블록 B4의 두 번째와 세 번째 세그먼트에 삽입된다. 그리고 제3 내지 제6 기지 데이터 열은 M/H 블록 B4, B5, B6, B7의 마지막 2 세그먼트에 각각 삽입된다. 상기 제1, 제3 내지 제 6 기지 데이터 열은 16 세그먼트만큼 떨어져 있다.
도 23은 본 발명의 일 실시 예에 따라 모바일 NRT 서비스를 포함한 RS 프레임의 구조를 도시한 것이다.
상기 RS 프레임은 타임 슬라이싱 모드로 전환된 상태에서 각 M/H 프레임마다 수신하게 된다. 하나의 RS 프레임에는 각 모바일 서비스 데이터 또는 시그널링 데이터의 IP 스트림들이 포함되며, 또한 모든 RS 프레임에는 SMT(service map table) 섹션의 IP 데이터 그램이 포함된다. 상기 SMT 섹션 데이터는 IP 스트림 형태일 수도 있고, 다른 형태일 수도 있다. 또한 상기 RS 프레임의 데이터는 NRT 서비스를 위한 NRT 콘텐트/파일, OMA BCAST 서비스 가이드 데이터 등의 IP 데이터그램이 포함될 수 있다.
일 실시예로, 상기 SMT 또는 상기 SMT를 전송하는 NRT 서비스 시그널링 채널은 Well-known IP desination address와 well-known desination UDP port number를 가지는 IP 데이터그램이 해당 RS 프레임에 포함되어 수신되는 것을 일 실시예로 한다.
상기 RS 프레임의 데이터는 복수 개의 데이터 그룹의 해당 영역에 할당되어 전송된다.
본 발명의 일 실시 예에 따른 RS 프레임은 적어도 하나의 M/H TP(Transport Packet)으로 이루어져 있다. 이러한 M/H TP는 M/H 헤더와 M/H 페이로드로 이루어져 있다.
상기 M/H 페이로드에는 모바일 서비스 데이터와 NRT 서비스 데이터 중 적어도 하나의 IP 데이터그램이 포함될 수 있다. 상기 M/H 페이로드에는 SMT의 데이터그램이 포함될 수 있다. 상기 M/H 프레임에는 OMA BCAST 서비스 가이드 데이터의 IP 데이터그램이 포함될 수 있다.
상기 도 22의 RS 프레임은, SMT를 위한 IP 데이터그램(IP Datagram 1), 두 종류의 NRT 서비스를 위한 IP 데이터그램(즉, IP Datagram 2, IP Datagram 3)이 할당된 예를 보이고 있다.
도 24는 본 발명에 따른 모바일 서비스 데이터의 송/수신을 위한 M/H 프레임 구조의 일 예를 보인 도면이다.
도 24는 하나의 M/H 프레임이 5개의 서브 프레임으로 구성되고, 하나의 서브 프레임이 16개의 슬롯으로 구성되는 예를 보이고 있다. 이 경우 하나의 M/H 프레임은 5개의 서브 프레임, 80개의 슬롯을 포함함을 의미한다.
그리고 하나의 슬롯은 패킷 레벨에서는 156개의 데이터 패킷(즉, 트랜스포트 스트림 패킷)으로, 심볼 레벨에서는 156개의 데이터 세그먼트로 구성된다. 또는 VSB 필드의 반에 해당되는 크기를 갖는다. 즉, 207 바이트의 한 데이터 패킷이 한 개의 데이터 세그먼트와 동일한 데이터 양을 가지므로 데이터 인터리빙되기 전의 데이터 패킷이 데이터 세그먼트의 개념으로 사용될 수 있다. 이때 두 개의 VSB 필드가 모여 하나의 VSB 프레임을 구성한다.
하나의 VSB 프레임은 두 개의 VSB 필드(즉, odd 필드, even 필드)로 구성된다. 그리고 각 VSB 필드는 하나의 필드 동기 세그먼트와 312개의 데이터 세그먼트로 구성된다.
상기 슬롯은 모바일 서비스 데이터와 메인 서비스 데이터의 다중화를 위한 기본 시간 단위이다. 하나의 슬롯은 모바일 서비스 데이터를 포함할 수도 있고, 메인 서비스 데이터로만 구성될 수도 있다.
만일 슬롯 내 처음 118 데이터 패킷들이 하나의 데이터 그룹에 해당되면, 나머지 38 패킷들은 메인 서비스 데이터 패킷이 된다. 또 다른 예로, 하나의 슬롯에 데이터 그룹이 없다면, 해당 슬롯은 156개의 메인 서비스 데이터 패킷들로 구성된다.
한편, 하나의 RS 프레임 내 모바일 서비스 데이터는 데이터 그룹 내 A/B/C/D 영역에 모두 할당될 수도 있고, A/B/C/D 영역 중 적어도 하나의 영역에 할당될 수도 있다. 본 발명은 하나의 RS 프레임 내 모바일 서비스 데이터를 A/B/C/D 영역에 모두 할당하거나, A/B 영역과 C/D 영역 중 어느 하나에만 할당하는 것을 일 실시예로 한다. 즉, 후자의 경우, 데이터 그룹 내 A/B 영역에 할당되는 RS 프레임과 C/D 영역에 할당되는 RS 프레임이 다르다. 본 발명의 일실시예에 따르면, 데이터 그룹 내 A/B 영역에 할당되는 RS 프레임을 프라이머리 RS 프레임(Primary RS frame)이라 하고, C/D 영역에 할당되는 RS 프레임을 세컨더리 RS 프레임(Secondary RS frame)이라 하기로 한다. 그리고 프라이머리 RS 프레임과 세컨더리 RS 프레임이 하나의 퍼레이드(parade)를 구성한다. 즉, 하나의 RS 프레임 내 모바일 서비스 데이터가 데이터 그룹 내 A/B/C/D 영역에 모두 할당된다면, 하나의 퍼레이드는 하나의 RS 프레임을 전송한다. 이에 반해, 하나의 RS 프레임 내 모바일 서비스 데이터가 데이터 그룹 내 A/B 영역에 할당되고, 다른 하나의 RS 프레임 내 모바일 서비스 데이터가 해당 데이터 그룹 내 C/D 영역에 할당된다면, 하나의 퍼레이드는 두 개의 RS 프레임까지 전송할 수 있다.
즉, RS 프레임 모드(mode)는 하나의 퍼레이드가 하나의 RS 프레임을 전송하는지, 두 개의 RS 프레임을 전송하는지를 지시한다. 이러한 RS 프레임 모드는 TPC 데이터로서 전송된다.
다음의 표 2는 RS 프레임 모드의 일 예를 보인다.
상기 표 2는 RS 프레임 모드를 표시하기 위해 2비트가 할당되는 것을 일 실시예로 하고 있다. 상기 표 2를 보면, RS 프레임 모드 값이 00이면, 하나의 퍼레이드가 하나의 RS 프레임을 전송함을 지시하고, RS 프레임 모드 값이 01이면, 하나의 퍼레이드가 두 개의 RS 프레임 즉, 프라이머리 RS 프레임과 세컨더리 RS 프레임을 전송함을 지시한다. 즉, 상기 RS 프레임 모드 값이 01이면, A/B 영역을 위한 프라이머리 RS 프레임(Primary RS frame for region A/B)의 데이터는 데이터 그룹의 A/B 영역에 할당되어 전송되고, C/D 영역을 위한 세컨더리 RS 프레임(Secondary RS frame for region C/D)의 데이터는 해당 데이터 그룹의 C/D 영역에 할당되어 전송됨을 지시한다.
상기 데이터 그룹의 할당과 마찬가지로, 퍼레이드들도 서브 프레임 내에서 가능한 서로 멀리 떨어져 할당하는 것을 일 실시 예로 한다. 이렇게 함으로써 하나의 서브 프레임 내에서 발생할 수 있는 버스트 에러에 대해 강력하게 대응할 수 있게 된다.
그리고 퍼레이드들의 할당 방법은 M/H 프레임마다 다르게 적용할 수 있고, 모든 M/H 프레임에 동일하게 적용할 수도 있다. 또한 하나의 M/H 프레임 내 모든 서브 프레임에 동일하게 적용할 수도 있고, 각 서브 프레임마다 다르게 적용할 수도 있다. 본 발명은 M/H 프레임마다 달라질 수 있으며, 하나의 M/H 프레임 내 모든 서브 프레임에는 동일하게 적용하는 것을 일 실시 예로 한다. 즉, M/H 프레임 구조는 M/H 프레임 단위로 달라질 수 있으며, 이것은 앙상블 데이터 율을 탄력적으로 조정할 수 있게 한다.
즉, 본 발명의 실시 예에서는 앙상블(Ensemble) 개념을 도입하여, 서비스의 집합을 정의한다. 하나의 M/H 앙상블은 동일한 QoS를 가지며, 동일한 FEC 코드로 코딩된다. 또한 하나의 앙상블은 같은 고유 식별자(즉, ensemble id)를 가지며 연속하는 RS 프레임에 대응된다.
도 25는 본 발명의 일 실시예에 따른 물리적 계층에서의 데이터 전송 구조를 도시한 도면으로, 각 데이터 그룹 내에 FIC 데이터가 포함되어 전송되는 예를 보이고 있다.
상기에서 설명한 바와 같이, 약 0.968 초 동안의 M/H 프레임은 5개의 서브 프레임으로 분할되고, 각각의 서브 프레임 내에 여러 개의 앙상블에 해당하는 데이터 그룹들이 섞여 존재하며, 각각의 앙상블에 해당하는 데이터 그룹들이 M/H 프레임 단위로 인터리빙되어 하나의 앙상블에 속하는 RS 프레임을 구성하게 된다. 도 24에서는 2개의 앙상블(NoG=4, NoG=3)이 존재한다. 또한 각각의 데이터 그룹의 일정 부분(e.g. 37 bytes/데이터 그룹)은 RS 프레임 데이터 채널과는 별도로 인코딩이 적용된 FIC 데이터를 전달하는 용도로 사용된다. 각각의 데이터 그룹에 할당되는 FIC 영역은 하나의 FIC 세그먼트를 이루며, 이 FIC 세그먼트들은 서브 프레임 단위로 인터리빙된다. 예를 들어, 상기 RS 프레임의 데이터에 RS 인코딩과 serial concatenated convolution code (SCCC) 인코딩이 적용되고, 상기 FIC 데이터에 대해 RS 인코딩과 parallel concatenated convolution code (PCCC) 인코딩이 적용되는 것을 일 실시예로 한다. 한편 TPC 데이터도 상기 FIC 데이터와 마찬가지로 RS 인코딩과 parallel concatenated convolution code (PCCC) 인코딩이 적용된다. 이때 상기 RS 프레임의 데이터는 (187+P,187)-RS 인코딩이 적용되고, 상기 FIC 데이터는 (51,37)-RS 인코딩이 적용되며, 상기 TPC 데이터는 (18,10)-RS 인코딩이 적용되는 것을 일 실시예로 한다. 여기서, P는 패리티 바이트의 개수이다.
도 26은 도 23의 RS 프레임에 포함되어 전송되는 NRT 서비스 데이터에 대한 시그널링 정보를 제공하는 SMT 섹션의 비트 스트림 신택스 구조에 대한 일 실시예를 보이고 있다.
여기서, 해당 신택스는 이해를 돕기 위하여 MPEG-2 프라이빗 섹션(Private section) 형태로 작성되었으나, 해당 데이터의 포맷은 어떠한 형태가 되어도 무방하다.
상기 SMT는 SMT가 전송되는 앙상블(Ensemble) 내의 모바일 서비스의 시그널링 정보(또는 NRT 서비스의 시그널링 정보) 및 IP 접속 정보를 기술한다. 상기 SMT는 또한 각 서비스가 속하는 방송 스트림(Broadcast stream)의 인식자인 Transport_Stream_ID를 이용, 해당 서비스의 방송 스트림 정보를 제공한다. 그리고 본 발명의 실시예에 따른 SMT는 하나의 앙상블 내의 각 모바일 서비스(또는 NRT 서비스)의 서술(Description) 정보를 포함하며, 디스크립터(Descriptor) 영역에 기타 부가 정보들이 포함될 수 있다.
도 26에서 상술한 바와 같이, SMT 섹션은 RS 프레임 내의 IP 스트림 형태로 포함되어 전송될 수 있다. 이 경우, 후술할 수신기의 RS 프레임 디코더들은 입력된 RS 프레임을 디코딩하고, 디코딩된 RS 프레임은 해당 RS 프레임 핸들러로 출력한다. 그리고 각 RS 프레임 핸들러는 입력된 RS 프레임을 로우(row) 단위로 구분하여 M/H TP를 구성하여 M/H TP 핸들러로 출력한다.
한편, SMT를 통해 전송될 수 있는 필드들의 예를 들면 다음과 같다.
table_id 필드(8비트)는 테이블의 타입을 구분시키기 위한 필드로서, 이를 통해 본 테이블 섹션이 SMT 내 테이블 섹션임을 알 수 있다(table_id: An 8-bit unsigned integer number that indicates the type of table section being defined in Service Map Table (SMT)).
section_syntax_indicator 필드(1비트)는 SMT의 섹션 형식을 정의하는 지시자로서, 섹션 형식은 예를 들어, MPEG의 short-form 신택스('0') 등이 될 수 있다(section_syntax_indicator: This 1-bit field shall be set to '0' to always indicate that this table is derived from the "short" form of the MPEG-2 private section table).
private_indicator 필드(1비트)는 SMT가 프라이빗 섹션을 따르는지 여부를 나타낸다(private_indicator: This 1-bit field shall be set to '1').
section_length 필드(12비트)는 해당 필드 이후의 나머지 SMT의 섹션 길이를 나타낸다(section_length: A 12-bit field. It specifies the number of remaining bytes this table section immediately following this field. The value in this field shall not exceed 4093 (0xFFD)).
table_id_extension 필드(16비트)는 테이블 종속적이고, 남은 필드들의 범위를 제공하는 table_id 필드의 논리적인 부분이 된다(table_id_extension: This is a 16-bit field and is table-dependent. It shall be considered to be logically part of the table_id field providing the scope for the remaining fields). 여기서, table_id_extension 필드는 SMT_protocol_version 필드를 포함한다.
SMT_protocol_version 필드(8비트)는 현재 프로토콜 내에서 정의된 것들과 다른 구조를 가지는 파라미터들이 전송하는 SMT를 허락하기 위한 프로토콜 버전을 알려준다(SMT_protocol_version: An 8-bit unsigned integer field whose function is to allow, in the future, this SMT to carry parameters that may be structured differently than those defined in the current protocol. At present, the value for the SMT_protocol_version shall be zero. Non-zero values of SMT_protocol_version may be used by a future version of this standard to indicate structurally different tables).
ensemble_id 필드(8비트)는 해당 앙상블과 관련된 ID값으로, '0x00'에서 '0x3F'의 값들이 할당될 수 있다. 본 필드의 값은 TPC 데이터의 parade_id로부터 도출되는 것이 바람직하다. 만약 해당 앙상블이 프라이머리 RS 프레임을 통해 전송될 경우에는 가장 상위 비트(MSB)는 '0'으로 설정되며, 나머지 7비트는 해당 퍼레이드의 parade_id의 값으로 이용한다. 한편, 만약 해당 앙상블이 세컨더리 RS 프레임을 통해 전송될 경우에는 가장 상위 비트(MSB)는 '1'로 설정되며, 나머지 7비트는 해당 퍼레이드의 parade_id의 값으로 이용한다(ensemble_id: This 8-bit unsigned integer field in the range 0x00 to 0x3F shall be the Ensemble ID associated with this Ensemble. The value of this field shall be derived from the parade_id carried from the baseband processor of physical layer subsystem, by using the parade_id of the associated Parade for the least significant 7 bits, and using '0' for the most significant bit when the Ensemble is carried over the Primary RS frame, and using '1' for the most significant bit when the Ensemble is carried over the Secondary RS frame.).
version_number 필드(5비트)는 SMT의 버전 번호를 나타낸다.
current_next_indicator 필드(1비트)는 전송된 SMT 테이블 섹션이 현재 적용 가능한지 여부를 지시한다(current_next_indicator: A one-bit indicator, which when set to '1' shall indicate that the Service Map Table sent is currently applicable. When the bit is set to '0', it shall indicate that the table sent is not yet applicable and will be the next table to become valid. This standard imposes no requirement that "next" tables (those with current_next_indicator set to '0') must be sent. An update to the currently applicable table shall be signaled by incrementing the version_number field).
section_number 필드(8비트)는 현재 SMT 섹션의 번호를 표시한다(section_number: This 8-bit field shall give the section number of this NRT Service Signaling table section. The section_number of the first section in an NRT Service Signaling table shall be 0x00. The section_number shall be incremented by 1 with each additional section in the NRT Service Signaling table).
last_section_number 필드(8비트)는 SMT 테이블을 구성하는 마지막 섹션 번호를 나타낸다(last_section_number: This 8-bit field shall give the number of the last section (i.e., the section with the highest section_number) of the Service Signaling table of which this section is a part).
num_services 필드(8비트)는 SMT 섹션 내의 서비스의 개수를 지시한다. (num_services: This 8 bit field specifies the number of services in this SMT section.). 상기 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 필드 값은 일정 시간이 경과할 때까지 사용하지 않을 수 있다(The service_id of a service shall not change throughout the life of the service. To avoid confusion, it is recommended that if a service is terminated, then the service_id for the service should not be used for another service until after a suitable interval of time has elapsed.). 여기서, 상기 서비스가 NRT 서비스라면, 상기 service_id는 상기 NRT 서비스를 식별할 것이다
Multi_ensemble_service 필드(2비트)는 해당 서비스가 하나 이상의 앙상블을 통해 전송되는지 여부를 식별한다. 또한, 해당 필드는 단지 서비스가 해당 앙상블을 통해 전송되는 서비스의 부분으로서 표현되는지 여부를 식별한다. 즉, 상기 서비스가 NRT 서비스라면, 상기 필드는 NRT 서비스가 하나 이상의 앙상블을 통해 전송되는지 여부를 식별한다(multi_ensemble_service: A two-bit enumerated field that shall identify whether the Service is carried across more than one Ensemble. Also, this field shall identify whether or not the Service can be rendered only with the portion of Service carried through this Ensemble.).
service_status 필드(2비트)는 해당 서비스의 상태를 식별한다. 여기서, MSB는 해당 서비스가 액티브('1')인지 아니면 인액티브('0')인지 지시하고, LSB는 해당 서비스가 히든('1')인지 아닌지('0')를 지시한다. 여기서, 상기 서비스가 NRT 서비스라면, 상기 service_status 필드의 MSB는 해당 NRT 서비스가 액티브('1')인지 아니면 인액티브('0')인지 지시하고, LSB는 해당 NRT 서비스가 히든('1')인지 아닌지('0')를 지시한다.
SP_indicator 필드(1비트)는 해당 서비스의 서비스 보호(service protection) 여부를 나타낸다. 만일 SP_indicator 필드 값이 1이면, 서비스 보호가 해당 서비스의 의미 있는 프리젠테이션을 제공하기 위해 요구되는 콤포넌트들 중 적어도 하나에 적용된다(상기 (A 1-bit field that indicates, when set to 1, service protection is applied to at least one of the components needed to provide a meaningful presentation of this Service).
short_service_name_length 필드 (3비트)는 short_service_name 필드에 서술되는 숏 서비스 네임의 길이를 바이트 단위로 표시한다.
short_service_name 필드는 해당 서비스의 숏 네임을 나타낸다(short_service_name: The short name of the Service, each character of which shall be encoded per UTF-8 [29]. When there is an odd number of bytes in the short name, the second byte of the last of the byte pair per the pair count indicated by the short_service_name_length field shall contain 0x00). 예를 들어, 서비스가 모바일 서비스이면 모바일 서비스의 숏 네임을, NRT 서비스이면 NRT 서비스의 숏 네임을 표시한다.
service_category 필드(6비트)는, 하기의 표 3에서 규정된 바와 같이, 해당 서비스의 타입 카테고리를 식별한다. 해당 필드의 값이 "Informative only"를 지시하는 값으로 설정되면, 해당 필드의 값은 상기 서비스의 카테고리에 대한 인포머티브 디스크립션으로 다루어진다. 그리고 수신기는 수신되는 서비스의 실제 카테고리를 식별하기 위해 SMT의 component_level_descriptors() 필드를 검사하는 것이 요구된다. 비디오 및/또는 오디오 콤포넌트를 가진 서비스들을 위해 그것들은 NTP 타임 베이스 콤포넌트를 가진다.
특히, 본 발명과 관련하여, service_category 필드의 값이 예를 들어, '0x0E'의 값을 가진 경우에는 해당 서비스는 NRT 서비스임을 지시한다. 이 경우, SMT 섹션에서 현재 서술하는 서비스의 시그널링 정보는 NRT 서비스의 시그널링 정보임을 알 수 있다.
num_components 필드(5비트)는 해당 서비스 내 IP 스트림 콤포넌트의 개수를 표시한다(num_components: This 5-bit field specifies the number of IP stream components in this Service).
IP_version_flag 필드(1비트)는 '1'로 설정된 경우에는 source_IP_address 필드, service_destination_IP_address 필드 및 component_destination_IP_address 필드가 IPv6 어드레스임을 지시하고, '0'으로 설정된 경우에는 source_IP_address 필드, service_destination_IP_address 필드, component_destination_IP_address 필드가 IPv4 어드레스임을 지시한다(IP_version_flag: A 1-bit indicator, which when set to '0' shall indicate that source_IP_address, service_destination_IP_address, and component_destination_IP_address fields are IPv4 addresses. The value of '1' for this field is reserved for possible future indication that source_IP_address, service_destination_IP_address, and component_destination_IP_address fields are for IPv6. Use of IPv6 addressing is not currently defined).
source_IP_address_flag 필드(1비트)가 설정된 경우에는 해당 서비스를 위한 소스 IP 어드레스 값이 소스 특정 멀티캐스트를 지시하기 위해 존재함을 지시하는 플래그이다(source_IP_address_flag: A 1-bit Boolean flag that shall indicate, when set, that a source IP address value for this Service is present to indicate a source specific multicast).
service_destination_IP_address_flag 필드(1비트)가 설정된 경우에는 해당 IP 스트림 콤포넌트가 service_destination_IP_address와는 다른 target IP 어드레스를 갖는 IP 데이터그램을 통해 전송됨을 지시한다. 따라서 본 플래그가 설정된 경우에는 수신 시스템은 해당 IP 스트림 콤포넌트에 접근하기 위해서 component_destination_IP_address을 destination_IP_address로 사용하고, num_channels 루프 내의 service_destination_IP_address 필드를 무시한다(service_destination_IP_address_flag: A 1-bit Boolean flag that indicates, when set to '1', that a service_destination_IP_address value is present, to serve as the default IP address for the components of this Service).
source_IP_address 필드(32 또는 128비트)는 source_IP_address_flag가 '1'로 설정된 경우에는 해석될 필요가 있지만, source_IP_address_flag가 '0'로 설정되지 않은 경우에는 해석될 필요가 없다. source_IP_address_flag가 '1'로 설정되고 IP_version_flag 필드가 '0'으로 설정된 경우, 본 필드는 해당 가상 채널의 소스를 나타내는 32비트 IPv4 어드레스를 지시한다. 만약 IP_version_flag 필드가 '1'로 설정된 경우에는 본 필드는 해당 가상 채널의 소스를 나타내는 32비트 IPv6 어드레스를 지시한다(source_IP_address: This field shall be present if the source_IP_address_flag is set to '1' and shall not be present if the source_IP_address_flag is set to '0'. If present, this field shall contain the source IP address of all the IP datagrams carrying the components of this Service. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined).
만일 상기 서비스가 NRT 서비스이면, 상기 Source_IP_address 필드는 FLUTE 세션의 모든 채널을 전송하는 동일한 서버의 소스 IP 어드레스(source IP address)가 된다.
service_destination_IP_address 필드(32 또는 128비트)는 service_destination_IP_address_flag 가 '1'로 설정된 경우에는 해석될 필요가 있지만, service_destination_IP_address_flag 가 '0'으로 설정된 경우에는 해석될 필요가 없다. service_destination_IP_address_flag 가 '1'로 설정되고, IP_version_flag 필드가 '0'으로 설정된 경우, 본 필드는 해당 가상 채널에 대한 32비트 데스트네이션 IPv4 어드레스를 나타낸다. service_destination_IP_address_flag 가 '1'로 설정되고, IP_version_flag 필드가 '1'로 설정된 경우, 본 필드는 해당 가상 채널에 대한 64비트 데스트네이션 IPv6 어드레스를 나타낸다. 만약 해당 service_destination_IP_address를 해석할 수 없다면, num_components 루프 내의 component_destination_IP_address 필드가 해석되어야 하고, 수신 시스템은 IP 스트림 콤포넌트에 접근하기 위해서, component_destination_IP_address를 사용해야 한다(service_destination_IP_address: This field shall be present if the service_destination_IP_address_flag is set to '1' and shall not be present if the service_destination_IP_address_flag is set to '0'. If this service_destination_IP_address is not present, then the component_destination_IP_address field shall be present for each component in the num_components loop. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined). 만일 상기 서비스가 NRT 서비스이면, 상기 service_destination_IP_Address 필드는 이 FLUTE 세션의 세션 레벨의 데스트네이션 IP 어드레스(destination IP address)가 있으면 시그널링 된다.
한편, 본 실시 예에 따른 SMT는, for loop를 사용하여 복수의 콤포넌트에 대한 정보를 제공한다.
이후 상기 num_components 필드 값에 해당하는 콤포넌트 개수만큼'for' 루프(또는 콤포넌트 루프라 함)가 수행되어 복수의 콤포넌트에 대한 접속 정보를 제공한다. 즉, 해당 서비스에 포함되는 각 콤포넌트의 접속 정보를 제공한다. 이때 각 콤포넌트에 대해 다음과 같은 필드 정보를 제공할 수 있다. 여기서, 하나의 콤포넌트는 하나의 FLUTE 세션에 대응되는 것을 일 실시예로 한다.
essential_component_indicator 필드(1비트)는, '1'로 설정되어 있으면 해당 콤포넌트는 모바일 서비스를 위한 필수 콤포넌트 임을 지시한다. 그렇지 않으면, 해당 콤포넌트는 선택적인 콤포넌트임을 지시한다(essential_component_indicator: A one-bit indicator which, when set to '1', shall indicate that this component is an essential component for the service. Otherwise, this field indicates that this component is an optional component).
component_destination_IP_address_flag 필드(1비트)는 '1'로 설정되어 있으면 해당 콤포넌트를 위해 component_destination_IP_address 필드가 존재함을 지사하는 플래그이다(component_destination_IP_address_flag: A 1-bit Boolean flag that shall indicate, when set to '1', that the component_destination_IP_address is present for this component).
port_num_count 필드(6비트)는 해당 UDP/IP 스트림 콤포넌트와 관련된 UDP 포트의 넘버를 지시한다. 데스트네이션 UDP 포트 넘버 값은 destination_UDP_port_num 필드 값으로부터 시작해서 1씩 증가한다. RTP 스트림을 위해서는, 데스트네이션 UDP 포트 넘버는 destination_UDP_port_num 필드 값으로부터 시작해서 2씩 증가하며, 이는 RTP 스트림과 관련된 RTCP 스트림을 포함하기 위해서이다(port_num_count: This field shall indicate the number of destination UDP ports associated with this UDP/IP stream component. The values of the destination UDP port numbers shall start from the component_destination_UDP_port_num field and shall be incremented by one, except in the case of RTP streams, when the destination UDP port numbers shall start from the component_estination_UPD_port_num field and shall be incremented by two, to allow for the RTCP streams associated with the RTP streams).
destination_UDP_port_num 필드(16비트)는 해당 IP 스트림 콤포넌트를 위한 데스트네이션 UDP 포트 넘버를 나타낸다. RTP 스트림을 위해서는 destination_UDP_port_num의 값은 짝수이고, 다음 높은 값은 관련된 RTCP 스트림의 데스트네이션 UDP 포트 넘버를 나타낸다(component_destination_UDP_port_num: A 16-bit unsigned integer field, that represents the destination UDP port number for this UDP/IP stream component. For RTP streams, the value of component_estination_UDP_port_num shall be even, and the next higher value shall represent the destination UDP port number of the associated RTCP stream).
component_destination_IP_address 필드(32 또는 128비트)는 IP_version_flag 필드가 '0'으로 설정된 경우에는 본 필드는 해당 IP 스트림 콤포넌트를 위한 32비트 데스트네이션 IPv4 어드레스를 지시한다. 그리고 IP_version_flag 필드가 '1'로 설정된 경우에는 본 필드는 해당 IP 스트림 콤포넌트를 위한 128비트 데스트네이션 IPv6 어드레스를 지시한다(component_destination_IP_address: This field shall be present if the component_destination_IP_address_flag is set to '1' and shall not be present if the component_destination_IP_address_flag is set to '0'. When this field is present, the destination address of the IP datagrams carrying this component of the M/H Service shall match the address in this field. When this field is not present, the destination address of the IP datagrams carrying this component shall match the address in the M/H_service_destination_IP_address field. The conditional use of the 128 bit-long address version of this field is to facilitate possible use of IPv6 in the future, although use of IPv6 is not currently defined).
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()들이 포함되어, 상기 앙상블에 대한 부가 정보를 제공한다.
한편, 도 26의 SMT에서도 component_level_descriptors()로서 도 12와 같은 component_descriptor()가 제공될 수 있다.
싱기 component_descriptor()는 SMT의 콤포넌트 레벨 디스크립터component_level_descriptors()의 하나로서 사용되며, 해당 콤포넌트의 부가적인 시그널링 정보를 서술한다.
따라서, 모바일 NRT 서비스에서도 해당 FULTE 세션을 수신하기 위하여 필요한 시그널링 정보들은 도 12의 component_descriptor() 디스크립터를 사용하여 제공할 수 있다.
예를 들어, 도 12 의 component_descriptor()의 component_type 필드 값이 38이면 component_data(component_type) 필드는 도 13과 같은 FLUTE 파일 딜리버리를 위한 데이터를 제공한다. 도 12, 도 13의 각 필드의 설명은 앞에서 했으므로 여기서는 생략하기로 한다.
한편, 본 발명은 전술한 바와 같이 모바일 방송 환경에서 Mobile NRT 서비스를 수신할 때, 시그널링 테이블(예, SMT)의 service_category 필드를 이용하여 해당 RS 프레임으로 NRT 서비스가 수신됨을 확인하고 있다.
예를 들어, Mobile NRT 서비스의 경우, 표 3에서와 같이 SMT의 서비스 카테고리(service category) 필드 값이 0x0E(즉, NRT service)인 경우, 상기 RS 프레임으로 NRT 서비스가 수신된다고 판단한다.
하지만 상기 서비스 카테고리 필드만으로는 다양한 NRT의 쓰임새(use case)에 대응하기 어렵다.
따라서 본 발명은 모바일 NRT 서비스에 대해서도 서비스 타입(또는 어플리케이션 타입이라 함) 정보와 상기 서비스 타입에 따른 상세 정보를 포함하는 서비스 정보를 시그널링하여 전송하고, 방송 수신기에서는 이 서비스 정보에 따라 해당 NRT 서비스(또는 콘텐트)의 처리를 제어할 수 있도록 하는데 있다. 다시 말해, 본 발명은 서비스 타입과 서비스 타입에 대한 구체적인 정보를 포함하는 서비스 정보를 이용하여 해당 NRT 서비스 또는 상기 NRT 서비스를 구성하는 콘텐트를 효과적으로 처리할 수 있도록 한다. 또한 NRT 서비스를 수신하여 저장 매체에 저장하기 전에 해당 NRT 서비스를 처리 가능한지 여부를 판단하기 위한 근거로 상기 서비스 정보를 이용할 수 있다.
예를 들어, 방송 수신기는 상기 서비스 정보를 이용하여 해당 NRT 서비스의 처리 방법을 결정할 수 있다. 또한, 상기 서비스 정보를 이용하여 NRT서비스를 유저에게 어떻게 제공할지를 결정할 수도 있으며, 관련된 어플리케이션 모듈 동작을 결정할 수도 있다.
상기 서비스 정보는 SMT에 필드 형태 또는 디스크립터 형태로 포함될 수 있다.
상기 서비스 정보가 SMT에 디스크립터 형태로 포함된다면, 상기 서비스 정보는 SMT의 서비스 레벨 디스크립터의 하나로서 포함되는 것을 일 실시예로 한다. 이 경우, 상기 서비스 정보는 NRT 서비스에 개별적으로 적용된다.
예를 들어, 하나의 NRT 서비스가 콘텐트 1, 콘텐트 2로 구성된다고 가정하자. 이때 상기 서비스 정보는 상기 NRT 서비스를 구성하는 콘텐트 1,2에 동시에 적용된다.
모바일 NRT 서비스를 위해, 서비스 정보를 기술하는 디스크립터는 도 14의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()를 적용하는 것을 일 실시예로 한다.
또한 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor() 내 application_type 필드 값에 따라 정의되는 의미들은 도 15을 적용하는 것을 일 실시예로 한다.
따라서 모바일 NRT 서비스를 위해 SMT에 포함되는 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()의 각 필드 설명은 전술한 도 14, 도 15를 참조하기로 하고, 여기서는 생략하기로 한다.
즉, NRT 서비스 시그널링 채널로부터 테이블 식별자를 이용하여 SMT를 추출하고, 상기 SMT의 서비스 루프로부터 도 14와 같은 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor를 추출하여, 해당 NRT 서비스의 서비스 정보를 획득한다. 그리고 NRT 서비스 가이드 출력 화면에 상기 추출된 서비스 정보를 표시한다. 예를 들어, 해당 NRT 서비스의 application_type 필드 값이 0이면, 상기 NRT 서비스가 일반적인 오디오/비디오 클립임을 표시한다. 또한 상기 NRT 서비스의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()의 다른 필드들을 이용하여 상기 NRT 서비스의 상세 정보를 표시한다. 예를 들어, 상기 NRT 서비스의 용량, 권한 정보, 코덱 정보, 인캡슐레이션 포맷 정보, 유효 기간 등을 표시할 수 있다. 그리고 상기 NRT 서비스를 화면에 디스플레이할 때, controlled_rendering_flag 필드 값이 '1'이면 target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 기초하여 상기 NRT 서비스를 서브 화면에 디스플레이한다.
만일 상기 NRT 서비스의 어플리케이션 타입이 현재 방송 수신기에서 지원이 되지 않는 경우에는 OSD(On Screen Display) 처리된 메시지를 출력하여 해당 사항을 사용자가 알 수 있도록 한다.
또한 어플리케이션 타입이 Maintenance Data 이거나 Targeted Advertisement인 경우에는 사용자의 개입 없이 다운로드가 이루어질 수 있으므로 해당 NRT 서비스는 가이드 출력시에 생략할 수 있다.
이상에서와 같이 도 14의 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()는 Fixed NRT 서비스를 위해 NST의 서비스 레벨 디스크립터에 포함되거나, NRT-IT의 콘텐트 레벨 디스크립터에 포함된다. 또한 Mobile NRT서비스를 위해 SMT의 서비스 레벨 디스크립터에 포함된다.
도 27은 모바일 NRT 서비스를 위한 NRT 콘텐트를 수신하여 저장 및 재생할 수 있는 수신 시스템의 일 실시예이다. 도 27에서 실선 화살표는 데이터 패스(Data path)를, 점선 화살표는 컨트롤 시그널 패스(Control signal path)를 나타낸다.
도 27의 수신 시스템은 시스템 전체를 제어하는 오퍼레이션 제어기(2100), 튜너(2111), 복조기(2112), 등화기(2113), 기지 데이터 검출기(2114), 블록 디코더(2115), 프라이머리 RS 프레임 디코더(2116), 세컨더리 RS 프레임 디코더(2117), 시그널링 디코딩더(2118) 및 베이스밴드 제어기(2119)를 포함한다. 여기서, 상기 수신 시스템은 FIC 핸들러(2121), 서비스 매니저(2122), 서비스 시그널링 핸들러(2123) 및 제1 저장부(2124)를 더 포함할 수 있다. 그리고 상기 수신 시스템은, 프라이머리 RS 프레임 버퍼(2131), 세컨더리 RS 프레임 버퍼(2132), 및 트랜스포트 패킷(TP) 핸들러(2133)를 더 포함할 수 있다. 또한, 상기 수신 시스템은, IP(Internet Protocol) 데이터그램 핸들러(2141), 디스크램블러(2142), UDP(User Datagram Protocol) 데이터그램 핸들러(2143), RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol) 데이터그램 핸들러(2144), NTP(Network Time Protocol) 데이터그램 핸들러(2145), 서비스 보호(service protection) 스트림 핸들러(2146), 제2 저장부(2147), ALC/LCT(Asynchronous Layered Coding/Layered Coding Transport) 스트림 핸들러(2148), 디콤프레서(decompressor)(2149), XML(Extensible Mark-up Language) 파서(2150) 및 FDT(Field Device Tool) 핸들러(2151)를 더 포함할 수 있다. 그리고 상기 수신 시스템은, A/V 디코더(2161), 파일 디코더(2162), 제3 저장부(2163), 미들웨어 엔진(2164) 및 SG 핸들러(2165)를 더 포함할 수 있다. 또한, 상기 수신 시스템은, EPG 매니저(2171), 어플리케이션 매니저(2172) 및 UI(User Interface) 매니저(2173)를 더 포함할 수 있다.
이하 본 명세서에서는 설명의 편의를 위해, 튜너(2111), 복조기(2112), 등화기(2113), 기지 데이터 검출기(2114), 블록 디코더(2115), 프라이머리 RS 프레임 디코더(2116), 세컨더리 RS 프레임 디코더(2117), 시그널링 디코더(2118) 및 베이스밴드 제어기(2119)를 포함하여 베이스밴드 프로세서(2110)라 칭하고, FIC 핸들러(2121), 서비스 매니저(2122), 서비스 시그널링 핸들러(2123) 및 제1 저장부(2124)를 포함하여 서비스 디멀티플렉서(2120)라 칭한다. 또한, 프라이머리 RS 프레임 버퍼(2131), 세컨더리 RS 프레임 버퍼(2132) 및 트랜스포트 패킷 핸들러(2133)를 포함하여 IP 어뎁테이션 모듈(2130)이라 칭하고, IP 데이터그램 핸들러(2141), 디스크램블러(2142), UDP 데이터그램 핸들러(2143), RTP/RTCP 데이터그램 핸들러(2144), NTP 데이터그램 핸들러(2145), 서비스 보호(service protection) 스트림 핸들러(2146), 제2 저장부(2147), ALC/LCT 스트림 핸들러(2148), 디콤프레서(decompressor)(2149), XML 파서(2150) 및 FDT 핸들러(2151)를 포함하여 커먼 IP 모듈(2140)이라 칭한다. 또한, 상기 A/V 디코더(2161), 파일 디코더(2162), 제3 저장부(2163), 미들웨어 엔진(2164) 및 SG 핸들러(2165)를 포함하여 어플리케이션 모듈(2160)이라 칭한다.
도 27에서 사용되는 용어는 현재 널리 사용되는 일반적인 용어를 선택하였으나, 새로운 기술의 출현에 따라 본 발명에서 출원인이 가장 적합하다고 판단한 용어도 임의로 사용하였으며, 이에 대해서는 해당 설명부분에서 용어의 의미를 명확히 설명하기로 한다. 따라서, 본 발명을 이해함에 있어 단순한 용어의 명칭이 아닌 용어가 가지는 의미로서 본 발명을 파악하여야 됨을 밝혀 두고자 한다.
이와 같이 구성된 도 27에서 베이스밴드 제어기(2119)는 상기 베이스밴드 프로세서(2110)의 각 블록의 동작을 제어한다.
튜너(2111)는 특정 물리 채널(또는 물리 전송 채널, physical transmission channel, PTC)의 주파수로 수신 시스템을 튜닝하여 고정형 방송 수신장치를 위한 방송 신호인 메인 서비스 데이터와 이동형 방송 수신장치를 위한 방송 신호인 모바일 서비스 데이터를 수신한다. 상기 튜너(2111)는 튜닝된 특정 채널의 주파수를 중간주파수(IF: Intermediate Frequency) 신호로 다운 컨버전하여 복조기(2112)와 기지 데이터 검출기(2114)로 출력한다. 이때 상기 튜너(2111)는 실시간 데이터인 메인 서비스 데이터와 모바일 서비스 데이터를 수신할 수도 있고, 비실시간(NRT) 서비스 데이터를 수신할 수도 있다.
복조기(2112)는 튜너(2111)로부터 입력되는 통과 대역의 디지털 IF 신호에 대해 자동 이득 제어, 반송파 복구 및 타이밍 복구 등을 수행하여 기저대역 신호로 만든 후 등화기(2113)와 기지 데이터 검출기(2114)로 출력한다. 상기 복조기(2112)는 타이밍 복원이나 반송파 복구 시에 상기 기지 데이터 검출기(2114)로부터 입력 받는 기지 데이터 심볼 열을 이용하여 복조 성능을 향상 시킬 수 있다.
등화기(2113)는 복조기(2112)에서 복조된 신호에 포함된 채널상의 왜곡을 보상한 후 블록 디코더(2115)로 출력한다. 상기 등화기(2113)는 기지 데이터 검출기(2114)로부터 입력 받는 기지 데이터 심볼 열을 이용함으로써, 등화 성능을 향상 시킬 수 있다. 또한, 상기 등화기(2113)는 상기 블록 디코더(2115)의 디코딩 결과를 피드백 받아 등화 성능을 향상시킬 수도 있다.
기지 데이터 검출기(2114)는 복조기(2112)의 입/출력 데이터 즉, 복조가 이루어지기 전의 데이터 또는 복조가 일부 이루어진 데이터로부터 송신 측에서 삽입한 기지 데이터 위치를 검출하고 위치 정보와 함께 그 위치에서 발생시킨 기지 데이터의 시퀀스(Sequence)를 복조기(2112), 등화기(2113) 및 베이스밴드 제어기 (2119)로 출력한다. 또한, 상기 기지데이터 검출기(2114)는 송신 측에서 추가적인 부호화를 거친 모바일 서비스 데이터와 추가적인 부호화를 거치지 않은 메인 서비스 데이터를 블록 디코더(2115)에서 구분할 수 있도록 하기 위한 정보를 블록 디코더(2115)로 출력한다.
상기 블록 디코더(2115)는 등화기(2113)에서 채널 등화된 후 입력되는 데이터가 송신 측에서 serial concatenated convolution code (SCCC) 방식의 블록 인코딩과 트렐리스 인코딩이 모두 수행된 데이터(즉, RS 프레임 내 데이터, 시그널링 데이터)이면 송신 측의 역으로 트렐리스 디코딩 및 블록 디코딩을 수행하고, 블록 인코딩은 수행되지 않고 트렐리스 인코딩만 수행된 데이터(즉, 메인 서비스 데이터)이면 트렐리스 디코딩만을 수행한다.
상기 시그널링 디코더(2118)는 등화기(2113)에서 채널 등화된 후 입력되는 시그널링 데이터의 디코딩을 수행한다. 상기 시그널링 디코더(2118)로 입력되는 시그널링 데이터(또는 시그널링 정보)는 송신 시스템에서 블록 인코딩과 트렐리스 인코딩이 모두 수행된 데이터라고 가정한다. 이러한 시그널링 데이터로는 TPC(Transmission Parameter Channel) 데이터와 FIC(Fast Information Channel) 데이터를 일 예로 들 수 있다. 예를 들면, 상기 시그널링 디코더(2118)는 입력되는 데이터 중 시그널링 정보 영역의 데이터에 대해 parallel concatenated convolution code (PCCC) 방식의 회귀적 터보 디코딩을 수행한 후, 터보 디코딩된 시그널링 데이터로부터 FIC 데이터와 TPC 데이터를 분리한다. 또한, 상기 시그널링 디코더(2118)는 상기 분리된 TPC 데이터에 대해 송신 측의 역으로 RS 디코딩을 수행하여 베이스밴드 제어기(2119)로 출력한다. 그리고 상기 시그널링 디코더(2118)는 상기 분리된 FIC 데이터에 대해 서브 프레임 단위로 디인터리빙을 수행하고, 송신 측의 역으로 RS 디코딩을 수행한 후 FIC 핸들러(2121)로 출력한다. 상기 시그널링 디코더(2118)에서 디인터리빙 및 RS 디코딩되어 FIC 핸들러(2121)로 출력되는 FIC 데이터의 전송 단위는 FIC 세그먼트이다.
FIC 핸들러(2121)는 시그널링 디코더(2118)로부터 FIC 데이터를 입력 받아 서비스 획득을 위한 시그널링 정보 즉, 앙상블과 모바일 서비스 간의 매핑 정보를 추출한다. 이를 위해 상기 FIC 핸들러(2121)는 FIC 세그먼트 버퍼, FIC 세그먼트 파서 및 FIC 청크 파서를 포함할 수 있다.
상기 FIC 세그먼트 버퍼는 시그널링 디코더(2118)로부터 입력되는 M/H 프레임 단위의 FIC 세그먼트들을 버퍼링한 후 FIC 세그먼트 파서로 출력한다. 상기 FIC 세그먼트 파서는 상기 FIC 세그먼트 버퍼에 저장된 각 FIC 세그먼트의 헤더를 추출하여 분석하고, 분석 결과에 따라 해당 FIC 세그먼트의 페이로드를 FIC 청크 파서로 출력한다. 상기 FIC 청크 파서는 상기 FIC 세그먼트 파서에서 분석된 결과를 이용하여 FIC 세그먼트 페이로드들로부터 FIC 청크 데이터 구조를 복원하고 분석하여 서비스 획득을 위한 시그널링 정보를 추출한다. 상기 FIC 청크 파서에서 획득된 시그널링 정보는 서비스 매니저(2122)로 출력된다.
한편, 서비스 시그널링 핸들러(2123)는 서비스 시그널링 버퍼와 서비스 시그널링 파서를 포함하여 구성하고, 상기 UDP 데이터그램 핸들러(2143)로부터 전송되는 서비스 시그널링 채널의 테이블 섹션들 예를 들어, SMT 섹션들을 버퍼링한 후 분석하고 처리한다. 상기 서비스 시그널링 핸들러(2123)에서 처리된 SMT 정보도 서비스 매니저(2122)로 출력된다.
상기 SMT 섹션 또는 상기 SMT 섹션을 전송하는 서비스 시그널링 채널은 Well-known IP desination address와 well-known desination UDP port number를 가지는 UDP/IP 패킷 형태로 해당 RS 프레임에 포함되어 수신되는 것을 일 실시예로 한다. 따라서, 수신 시스템에서 별도의 정보를 요구하지 않고 상기 SMT 섹션 및 각 SMT 섹션의 디스크립터들을 파싱할 수 있다.
또한 상기 SMT 섹션은 상기 SMT 섹션이 포함된 앙상블 내 모든 서비스에 대한 시그널링 정보(IP 접속 정보 포함)를 제공한다. 그러므로, 상기 SMT로부터 파싱된 정보를 이용하여 수신을 원하는 서비스에 속한 IP 스트림 콤포넌트를 억세스하여, 사용자에게 해당 서비스를 제공할 수 있다.
만일, 상기 서비스가 NRT 서비스이면, 상기 SMT로부터 NRT 서비스를 구성하는 콘텐트/파일들을 전송하는 FLUTE 세션의 접속 정보를 추출할 수 있다.
상기 SMT로부터 파싱된 정보는 서비스 매니저(2122)에 의해 수집되어 제1 저장부(2124)에 저장된다. 상기 서비스 매니저(2122)는 상기 SMT에서 추출된 정보를 서비스 맵 및 가이드 데이터 형태로 상기 제1 저장부(2124)에 저장한다.
즉, 상기 서비스 매니저(2122)는 FIC 핸들러(2121)와 서비스 시그널링 핸들러(2123)로부터 수집한 시그널링 정보를 이용하여 서비스 맵을 구성하고, 서비스 가이드(SG) 핸들러(2165)로부터 수집한 서비스 가이드(SG)를 이용하여 프로그램 가이드를 작성한다. 그리고 상기 구성된 서비스 맵과 작성된 서비스 가이드를 참조하여 유저(User)가 원하는 모바일 서비스를 수신할 수 있도록 베이스밴드 제어기(2119)를 제어하고 또한, 유저의 입력에 따라 프로그램 가이드가 화면의 적어도 일부에 디스플레이 될 수 있도록 제어한다.
또한 상기 서비스 매니저(2122)는 오퍼레이션 제어기(2100)의 제어에 의해 상기 SMT에 NRT 서비스가 기술된다면, 해당 서비스 루프로부터 도 14와 같은 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor를 추출하여, 해당 NRT 서비스의 서비스 정보 즉, application type 및 기타 requirement 정보를 얻는다. 그리고 프리젠테이션 매니저(2170)를 통해 NRT 서비스 가이드 출력 화면에 상기 NRT 서비스의 서비스 종류를 표시한다. 또한 상기 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor의 다른 필드들을 이용하여 상기 NRT 서비스의 상세 정보를 표시한다. 그리고 상기 NRT 서비스를 화면으로 디스플레이할 때, controlled_rendering_flag 필드 값이 '1'이면 target_window_position_horizontal 필드, target_window_position_vertical 필드, target_window_length_horizontal 필드, 및 target_window_length_vertical 필드를 이용하여 상기 NRT 서비스를 서브 화면으로 디스플레이한다. 만일 상기 NRT 서비스의 어플리케이션 타입이 현재 방송 수신기에서 지원이 되지 않는 경우에는 OSD(On Screen Display) 처리된 메시지를 출력하여 해당 사항을 사용자가 알 수 있도록 한다.
또한 어플리케이션 타입이 Maintenance Data 이거나 Targeted Advertisement인 경우에는 사용자의 개입 없이 다운로드가 이루어질 수 있으므로 해당 NRT 서비스는 가이드 출력시에 생략할 수 있다.
그리고 상기 서비스 매니저(2122)는 NRT 서비스 정보 디스크립터 NRT_service_info_descriptor()로부터 획득한 서비스 정보에 따라 해당 NRT 서비스의 처리를 제어한다. 예를 들어, application_type 필드 값이 3 즉, 타겟 광고임을 지시하고, user_control_flag 필드 값이 '1'이라고 가정하자. 이 경우 사용자는 임의로 상기 NRT 서비스를 삭제할 수 없다. 또한 expiration_type 필드와 expiration_value 필드 값이 유효 기간을 2번의 재생으로 제한하였다면, 상기 NRT 서비스는 2번 재생되면 저장 매체로부터 자동 삭제된다.
상기 제1 저장부(2124)는 서비스 매니저(2122)에서 작성된 서비스 맵 및 서비스 가이드를 저장한다. 또한, 상기 서비스 매니저(2122) 및 EPG 매니저(2171)의 요청에 의해 상기 제1 저장부(2124)에 저장된 데이터가 추출되어 서비스 매니저(2122) 및/또는 EPG 매니저(2171)로 전달된다.
상기 베이스밴드 제어기(2119)는 기지 데이터 위치 정보 및 TPC 데이터를 입력 받아 M/H 프레임 시간 정보, 선택된 퍼레이드(Parade)의 데이터 그룹 존재 유무, 데이터 그룹 내의 기지 데이터의 위치 정보, 전력 제어 정보 등을 베이스밴드 프로세서(2110)의 각 블록에 전달한다. 상기 TPC 데이터의 상세한 설명은 뒤에서 하기로 한다.
한편, 본 발명에 따르면, 송신 시스템에서는 인코딩 단위로 RS 프레임 개념을 사용하고 있다. 상기 RS 프레임은 프라이머리 RS 프레임(Primary RS Frame)과 세컨더리 RS 프레임(Secondary RS Frame)으로 구분한다. 본 발명에서 프라이머리 RS 프레임과 세컨더리 RS 프레임의 구분은 데이터의 중요도에 따르는 것을 일 실시 예로 한다.
상기 프라이머리 RS 프레임 디코더(2116)는 블록 디코더(2115)의 출력을 입력으로 받는다. 이때, 상기 프라이머리 RS 프레임 디코더(2116)는 RS(Reed Solomon) 인코딩 및/또는 CRC(Cyclic Redundancy Check) 인코딩된 모바일 서비스 데이터 또는 NRT 서비스 데이터를 상기 블록 디코더(2115)로부터 입력 받는 것을 일 실시 예로 한다. 상기 프라이머리 RS 프레임 디코더(2116)는 RS(Reed Solomon) 인코딩 및/또는 CRC(Cyclic Redundancy Check) 인코딩된 SMT 섹션 데이터 또는 OMA BCAST SG 데이터를 상기 블록 디코더(2115)로부터 입력 받을 수 있다.
즉, 프라이머리 RS 프레임 디코더(2116)는 메인 서비스 데이터가 아닌 데이터 예를 들어, 모바일 서비스 데이터, NRT 서비스 데이터, SMT 섹션 데이터, OMA BCAST SG 데이터 중 적어도 하나를 수신한다. 상기 프라이머리 RS 프레임 디코더(2116)는 송신 시스템의 RS 프레임 인코더(미도시)의 역과정을 수행하여, 프라이머리 RS 프레임 내의 에러들을 정정한다. 즉, 상기 프라이머리 RS 프레임 디코더(2116)는 다수의 데이터 그룹을 모아 프라이머리 RS 프레임을 형성한 후, 프라이머리 RS 프레임 단위로 에러 정정을 수행한다. 다시 말해, 상기 프라이머리 RS 프레임 디코더(2116)는 실제 방송 서비스 등을 위하여 전송되는 프라이머리 RS 프레임을 디코딩한다. 상기 프라이머리 RS 프레임 디코더(2116)에서 디코딩된 프라이머리 RS 프레임은 프라이머리 RS 프레임 버퍼(2131)로 출력된다. 상기 프라이머리 RS 프레임 버퍼(2131)는 상기 프라이머리 RS 프레임을 버퍼링한 후 각 로우(row) 단위로 M/H TP를 구성하여 TP 핸들러(2133)로 출력한다.
상기 세컨더리 RS 프레임 디코더(2117)는 블록 디코더(2115)의 출력을 입력으로 받는다. 이때 상기 세컨더리 RS 프레임 디코더(2117)도 RS(Reed Solomon) 인코딩 및/또는 CRC(Cyclic Redundancy Check) 인코딩된 모바일 서비스 데이터 또는 NRT 서비스 데이터를 상기 블록 디코더(2115)로부터 입력 받는 것을 일 실시 예로 한다. 상기 세컨더리 RS 프레임 디코더(2117)는 RS(Reed Solomon) 인코딩 및/또는 CRC(Cyclic Redundancy Check) 인코딩된 SMT 섹션 데이터 또는 OMA BCAST SG 데이터를 상기 블록 디코더(2115)로부터 입력 받을 수 있다.
즉, 상기 세컨더리 RS 프레임 디코더(2117)는 메인 서비스 데이터가 아닌 데이터 예를 들어, 모바일 서비스 데이터, NRT 서비스 데이터, SMT 섹션 데이터, OMA BCAST SG 데이터 중 적어도 하나를 수신하다. 상기 세컨더리 RS 프레임 디코더(2117)는 송신 시스템의 RS 프레임 인코더(미도시)의 역과정을 수행하여, 세컨더리 RS 프레임 내의 에러들을 정정한다. 즉, 상기 세컨더리 RS 프레임 디코더(2117)는 다수의 데이터 그룹을 모아 세컨더리 RS 프레임을 형성한 후, 세컨더리 RS 프레임 단위로 에러 정정을 수행한다. 다시 말해, 상기 세컨더리 RS 프레임 디코더(2117)는 모바일 오디오 서비스 데이터, 모바일 비디오 서비스 데이터, 가이드 데이터 등을 위하여 전송되는 세컨더리 RS 프레임을 디코딩한다. 상기 세컨더리 RS 프레임 디코더(2117)에서 디코딩된 세컨더리 RS 프레임의 데이터는 세컨더리 RS 프레임 버퍼(2132)로 출력된다. 상기 세컨더리 RS 프레임 버퍼(2132)는 상기 세컨더리 RS 프레임을 버퍼링한 1후 각 로우(row) 단위로 M/H TP를 구성하여 상기 TP 핸들러(2133)로 출력한다.
상기 TP 핸들러(2133)는 TP 버퍼와 TP 파서로 구성되며, 상기 프라이머리 및 세컨더리 RS 프레임 버퍼(2131,2132)로부터 전달받은 M/H TP를 버퍼링한 후, 버퍼링된 M/H TP의 각 헤더를 추출하고 분석하여 해당 M/H TP의 페이로드로부터 IP 데이터그램을 복원한다. 그리고 복원된 IP 데이터그램은 상기 IP 데이터그램 핸들러(2141)로 출력한다.
상기 IP 데이터그램 핸들러(2141)는 IP 데이터그램 버퍼와 IP 데이터그램 파서로 구성되며, 상기 TP 핸들러(2133)로부터 전달받은 IP 데이터그램을 버퍼링한 후, 버퍼링된 IP 데이터그램의 헤더를 추출하고 분석하여 해당 IP 데이터그램의 페이로드로부터 UDP 데이터그램을 복원한다. 그리고 복원된 UDP 데이터그램은 UDP 데이터그램 핸들러(2143)로 출력한다.
이때 상기 UDP 데이터그램이 스크램블되어 있다면, 상기 스크램블된 IP 데이터그램은 디스크램블러(2142)에서 디스크램블된 후 UDP 데이터그램 핸들러(2143)로 출력된다. 일 예로, 상기 디스크램블러(2142)는 수신된 IP 데이터그램 중 UDP 데이터그램에 스크램블이 적용된 경우, 상기 서비스 보호 스트림 핸들러(2146)로부터 인크립션 키(Encryption key) 등을 입력 받아 상기 UDP 데이터그램을 디스크램블한 후 UDP 데이터그램 핸들러(2143)로 출력한다.
상기 UDP 데이터그램 핸들러(2143)는 UDP 데이터그램 버퍼와 UDP 데이터그램 파서로 구성되며, 상기 IP 데이터그램 핸들러(2141) 또는 디스크램블러(2142)로부터 입력되는 UDP 데이터그램을 버퍼링한 후, 버퍼링된 UDP 데이터그램의 헤더를 추출하고 분석하여 해당 UDP 데이터그램의 페이로드로 전송되는 데이터를 복원한다. 이때 복원된 데이터가 RTP/RTCP 데이터그램이면 RTP/RTCP 데이터그램 핸들러(2144)로 출력하고, NTP 데이터그램이면 NTP 핸들러(2145)로 출력된다. 또는 복원된 데이터가 서비스 보호 스트림이면 서비스 보호 스트림 핸들러(2146)로 출력하고, ALC/LCT 스트림이면 ALC/LCT 스트림 핸들러(2148)로 출력한다. 또한 복원된 데이타가 SMT 섹션 데이터이면 서비스 시그널링 섹션 핸들러(2123)로 출력한다.
상기 SMT 섹션 또는 상기 SMT 섹션을 전송하는 서비스 시그널링 채널은 Well-known IP desination address와 well-known desination UDP port number를 가지는 IP 데이터그램이므로, 상기 IP 데이터그램 핸들러(2141)와 UDP 데이터그램 핸들러(2143)는 별도의 정보를 요구하지 않고 상기 SMT 섹션이 포함된 데이터를 상기 서비스 시그널링 섹션 핸들러(2123)로 출력할 수 있다.
상기 RTP/RTCP 데이터그램 핸들러(2144)는 RTP/RTCP 데이터그램 버퍼와 RTP/RTCP 데이터그램 파서로 구성되며, 상기 UDP 데이터그램 핸들러(2143)로부터 출력되는 RTP/RTCP 구조의 데이터를 버퍼링한 후, 버퍼링된 데이터로부터 오디오/비디오 스트림을 추출한다. 그리고 추출된 오디오/비디오 스트림은 오디오/비디오(A/V) 디코더(2161)로 출력한다. 상기 A/V 디코더(2161)는 상기 RTP/RTCP 데이터그램핸들러(2144)로부터 출력되는 오디오 스트림과 비디오 스트림을 각각의 디코딩 알고리즘으로 디코딩한 후 프리젠테이션 매니저(2170)로 출력한다. 일 예로, 오디오 디코딩 알고리즘은 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 디코딩 알고리즘 중 적어도 하나를 적용할 수 있다.
상기 NTP 데이터그램 핸들러(2145)는 NTP 데이터그램 버퍼와 NTP 데이터그램 파서로 구성되며, 상기 UDP 데이터그램 핸들러(2143)로부터 출력되는 NTP 구조의 데이터를 버퍼링한 후, 버퍼링된 데이터로부터 NTP 스트림을 추출한다. 그리고 상기 추출된 NTP 스트림은 상기 A/V 디코더(2161)로 출력되어 디코딩된다.
상기 서비스 보호 스트림 핸들러(2146)는 서비스 보호 스트림 버퍼를 더 포함할 수 있으며, 상기 UDP 데이터그램 핸들러(2143)로부터 출력되는 서비스 보호를 위한 데이터를 버퍼링한 후, 버퍼링된 데이터로부터 디스크램블을 위한 정보를 추출한다. 상기 디스크램블을 위한 정보는 SKTM, LKTM 등과 같은 디스크램블링을 위한 키 값을 포함한다. 상기 디스크램블을 위한 정보는 제2 저장부(2147)에 저장되며, 필요한 경우 상기 디스크램블러(2142)로 출력된다.
상기 ALC/LCT 스트림 핸들러(2148)는 ALC/LCT 스트림 버퍼와 ALC/LCT 스트림 파서로 구성되며, 상기 UDP 데이터그램 핸들러(2143)로부터 출력되는 ALC/LCT 구조의 데이터를 버퍼링한 후, 버퍼링된 데이터로부터 ALC/LCT 세션의 헤더 및 헤더 확장(header extension)을 분석한다. 상기 ALC/LCT 세션의 헤더 및 헤더 확장을 분석한 결과, 상기 ALC/LCT 세션으로 전송되는 데이터가 XML 구조이면 XML 파서(2150)로 출력하고, 파일 구조이면 파일 디코더(2162)로 출력한다.
이때, 상기 ALC/LCT 세션으로 전송되는 데이터가 압축되어 있으면, 상기 압축된 데이터는 디콤프레서(2149)에서 해제된 후 XML 파서(2150) 또는 파일 디코더(2162)로 출력된다.
상기 XML 파서(2150)는 상기 ALC/LCT session을 통하여 전송되는 XML 데이터를 분석하고, 분석된 데이터가 NRT 서비스와 같이 파일 기반 서비스를 위한 데이터이면 FDT 핸들러(2151)로 출력하고, 서비스 가이드를 위한 데이터이면 SG 핸들러(2165)로 출력한다.
상기 FDT 핸들러(2151)는 ALC/LCT session을 통하여 XML 구조로 전송되는 FLUTE 프로토콜의 파일 디스크립션 테이블(File Description Table)을 분석하고 처리한다. 상기 FDT 핸들러(2151)는 수신된 파일이 NRT 서비스를 위한 파일이면 서비스 매니저(2122)의 제어를 받는다.
상기 SG 핸들러(2165)는 XML 구조로 전송되는 서비스 가이드를 위한 데이터를 수집하고 분석하여 서비스 매니저(2122)로 출력한다.
상기 파일 디코더(2162)는 ALC/LCT session을 통하여 전송되는 파일 구조의 데이터를 디코딩하여 미들웨어 엔진(2164)으로 출력하거나, 제3 저장부(2163)에 저장한다. 상기 파일 디코더(2162)에서 디코딩된 파일 구조의 데이터는 NRT 서비스 데이터를 포함하는 것을 일 실시예로 한다.
상기 미들웨어 엔진(2164)은 NRT 서비스와 같은 파일 구조의 데이터 즉, 어플리케이션을 해석하여 실행시킨다. 그리고 상기 어플리케이션을 프리젠테이션 매니저(2170)를 통해 화면이나 스피커와 같은 출력 장치로 출력할 수도 있다. 상기 미들웨어 엔진(2164)은 자바(JAVA) 기반의 미들웨어 엔진인 것을 일 실시 예로 한다.
상기 EPG 매니저(2171)는 유저의 입력에 따라 상기 서비스 매니저(2122) 또는 SG 핸들러(2165)로부터 EPG 데이터를 입력 받아 디스플레이 포맷으로 변환한 후 프리젠테이션 매니저(2170)로 출력한다.
상기 어플리케이션 매니저(2172)는 오브젝트, 파일 등의 형태로 전송되는 어플리케이션 데이터(예를 들어, NRT 서비스 데이터)의 처리에 관한 전반적인 관리를 수행한다.
상기 오퍼레이션 제어기(2100)는 UI 매니저(2173)를 통해 입력되는 유저의 명령에 따라 상기 서비스 매니저(2122), EPG 매니저(2171), 어플리케이션 매니저(2172), 프리젠테이션 매니저(2170) 중 적어도 하나를 제어하여, 상기 유저의 명령에 따른 기능이 수행되도록 한다.
상기 UI 매니저(2173)는 UI를 통해 유저의 입력을 오퍼레이션 제어기(2100)로 전달한다.
상기 프리젠테이션 매니저(2170)는 A/V 디코더(2161)에서 출력되는 오디오 및 비디오 데이터, 미들웨어 엔진(2164)에서 출력되는 파일 데이터, EPG 매니저(2171)에서 출력되는 EPG 데이터 중 적어도 하나를 스피커 및/또는 화면을 통해 유저에게 제공한다.
지금까지 설명한 본 발명은 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가지 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
[발명의 실시를 위한 형태]
발명의 실시를 위한 형태는 발명의 실시를 위한 최선의 형태에서 함께 기술되었다.
[산업상 이용가능성]
본 발명에 따른 신호 송수신 방법 및 신호 송수신 장치의 실시예는 방송 및 통신 분야 등에 이용될 수 있다.
Claims (15)
- 비실시간 서비스의 접속 정보를 포함하는 시그널링 정보 테이블을 수신하여 처리하는 단계;
상기 시그널링 정보 테이블을 기반으로 상기 비실시간 서비스의 데이터를 비실시간으로 수신하여 저장 매체에 저장하는 단계;
상기 시그널링 정보 테이블로부터 상기 비실시간 서비스의 서비스 타입 및 상기 비실시간 서비스의 상세 정보를 포함하는 서비스 정보를 추출하는 단계; 및
상기 추출된 서비스 정보를 기반으로 상기 비실시간 서비스의 처리를 제어하는 단계를 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서,
상기 서비스 정보는 상기 시그널링 정보 테이블의 서비스 레벨에 디스크립터 형태로 포함되는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서, 상기 서비스 정보는
상기 비실시간(NRT) 서비스를 구성하는 파일의 관리에 대한 권한이 있는지 여부를 지시하는 사용자 제어 필드;
상기 NRT 서비스의 코덱 정보를 표시하는 필드; 및
상기 저장 매체에 저장된 NRT 서비스의 유효 기간을 표시하는 필드를 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서, 상기 서비스 정보는
상기 서비스 타입에 의해 해당 NRT 서비스가 웹 서비스로 확인되었을 때, 상기 웹 서비스가 방송 수신기 내의 웹 브라우저에 의해 지원이 가능한지를 지시하는 필드를 더 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서, 상기 서비스 정보는
상기 NRT 서비스의 화면 내 디스플레이 위치와 크기를 제공하는 필드를 더 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서,
상기 서비스 정보에 포함된 상기 NRT 서비스의 서비스 타입 및 상기 NRT 서비스의 상세 정보를 가이드 화면에 출력하는 단계를 더 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 6 항에 있어서, 상기 출력 단계는
상기 NRT 서비스의 서비스 타입이 방송 수신기에서 지원이 되지 않으면, 이를 인식할 수 있는 에러 메시지를 출력하는 단계를 더 포함하는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서,
상기 NRT 서비스가 Fiexed NRT 서비스인 경우, 상기 NRT 서비스를 구성하는 파일과 상기 시그널링 정보 테이블은 IP 패킷화, 어드레서블 섹션 패킷화, MPEG-2 TS 패킷화되어 수신되는 방송 수신기의 비실시간 서비스 처리 방법. - 제 1 항에 있어서,
상기 NRT 서비스가 Mobile NRT 서비스인 경우, 상기 NRT 서비스를 구성하는 파일과 상기 시그널링 정보 테이블은 IP 패킷화되어 하나의 앙상블에 포함되어 수신되는 방송 수신기의 비실시간 서비스 처리 방법. - 비실시간 서비스의 접속 정보를 포함하는 시그널링 정보 테이블을 수신하여 처리하는 제1 처리부;
상기 시그널링 정보 테이블을 기반으로 상기 비실시간 서비스의 데이터를 비실시간으로 수신하여 저장 매체에 저장하는 제2 처리부; 및
상기 시그널링 정보 테이블로부터 상기 비실시간 서비스의 서비스 타입 및 상기 비실시간 서비스의 상세 정보를 포함하는 서비스 정보를 추출하고, 추출된 서비스 정보를 기반으로 상기 비실시간 서비스의 처리를 제어하는 서비스 매니저를 포함하는 방송 수신기. - 제 10 항에 있어서,
상기 서비스 정보는 상기 시그널링 정보 테이블의 서비스 레벨에 디스크립터 형태로 포함되는 방송 수신기. - 제 10 항에 있어서, 상기 서비스 정보는
상기 비실시간(NRT) 서비스를 구성하는 파일의 관리에 대한 권한이 있는지 여부를 지시하는 사용자 제어 필드;
상기 NRT 서비스의 코덱 정보를 표시하는 필드; 및
상기 저장 매체에 저장된 NRT 서비스의 유효 기간을 표시하는 필드를 포함하는 방송 수신기. - 제 10 항에 있어서, 상기 서비스 정보는
상기 서비스 타입에 의해 해당 NRT 서비스가 웹 서비스로 확인되었을 때, 상기 웹 서비스가 방송 수신기 내의 웹 브라우저에 의해 지원이 가능한지를 지시하는 필드를 더 포함하는 방송 수신기. - 제 10 항에 있어서, 상기 서비스 정보는
상기 NRT 서비스의 화면 내 디스플레이 위치와 크기를 제공하는 필드를 더 포함하는 방송 수신기. - 제 10 항에 있어서,
상기 서비스 정보에 포함된 상기 NRT 서비스의 서비스 타입 및 상기 NRT 서비스의 상세 정보를 가이드 화면에 출력하는 프리젠테이션 매니저를 더 포함하는 방송 수신기.
Applications Claiming Priority (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11588808P | 2008-11-18 | 2008-11-18 | |
US61/115,888 | 2008-11-18 | ||
US12118108P | 2008-12-09 | 2008-12-09 | |
US12117808P | 2008-12-09 | 2008-12-09 | |
US61/121,178 | 2008-12-09 | ||
US61/121,181 | 2008-12-09 | ||
US13849408P | 2008-12-17 | 2008-12-17 | |
US61/138,494 | 2008-12-17 | ||
US15398509P | 2009-02-20 | 2009-02-20 | |
US15397309P | 2009-02-20 | 2009-02-20 | |
US61/153,985 | 2009-02-20 | ||
US61/153,973 | 2009-02-20 | ||
US16141609P | 2009-03-19 | 2009-03-19 | |
US61/161,416 | 2009-03-19 | ||
US17900509P | 2009-05-17 | 2009-05-17 | |
US61/179,005 | 2009-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110112806A true KR20110112806A (ko) | 2011-10-13 |
KR101635889B1 KR101635889B1 (ko) | 2016-07-05 |
Family
ID=42198663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117013810A KR101635889B1 (ko) | 2008-11-18 | 2009-11-18 | 비실시간 서비스 처리 방법 및 방송 수신기 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8166192B2 (ko) |
KR (1) | KR101635889B1 (ko) |
CA (1) | CA2744183C (ko) |
WO (1) | WO2010058963A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013058633A1 (ko) * | 2011-10-20 | 2013-04-25 | 엘지전자 주식회사 | 방송 서비스 수신 방법 및 방송 서비스 수신 장치 |
KR20200098537A (ko) * | 2019-02-07 | 2020-08-20 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 송신 방법, 방송 신호 수신 방법 및 방송 신호 수신 장치 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8264493B2 (en) * | 2008-05-12 | 2012-09-11 | Playcast Media Systems, Ltd. | Method and system for optimized streaming game server |
US8321903B2 (en) * | 2008-07-28 | 2012-11-27 | Playcast Media Systems, Ltd. | External services allocation in closed on-demand systems |
WO2010120156A2 (ko) * | 2009-04-17 | 2010-10-21 | 엘지전자 주식회사 | 송/수신 시스템 및 방송 신호 처리 방법 |
US8745671B2 (en) * | 2010-04-13 | 2014-06-03 | Imagine Communications Corp. | Systems and methods for presentation of digital media at a mobile platform |
US8612526B2 (en) * | 2010-07-21 | 2013-12-17 | At&T Intellectual Property I, L.P. | System and method for prioritizing message transcriptions |
US9237328B2 (en) * | 2010-07-27 | 2016-01-12 | Electronics And Telecommunications Research Institute | 3D image processing apparatus and method thereof using connection status and glass type selection icons |
US8879695B2 (en) | 2010-08-06 | 2014-11-04 | At&T Intellectual Property I, L.P. | System and method for selective voicemail transcription |
US9591341B2 (en) * | 2012-07-02 | 2017-03-07 | Sony Corporation | Constraining availability of real time and non-real time content to locality of associated real time broadcast |
US9942601B2 (en) | 2013-01-24 | 2018-04-10 | Saturn Licensing Llc | Storing non-real time content |
US10349314B2 (en) | 2013-06-11 | 2019-07-09 | National Chiao Tung University | System and method for service continuity in heterogeneous wireless networks |
US10880024B2 (en) * | 2014-10-28 | 2020-12-29 | Saturn Licensing Llc | Reception device, transmission device, and data processing method |
WO2016105100A1 (ko) * | 2014-12-22 | 2016-06-30 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US9589313B2 (en) * | 2015-01-09 | 2017-03-07 | Vixs Systems, Inc. | Dynamic range converter with pipelined architecture and methods for use therewith |
US9654755B2 (en) * | 2015-01-09 | 2017-05-16 | Vixs Systems, Inc. | Dynamic range converter with logarithmic conversion and methods for use therewith |
US9860504B2 (en) | 2015-01-09 | 2018-01-02 | Vixs Systems, Inc. | Color gamut mapper for dynamic range conversion and methods for use therewith |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080074599A (ko) * | 2007-02-09 | 2008-08-13 | 엘지전자 주식회사 | 방송 신호 수신 장치 및 방송 신호 송수신 방법 |
KR20080088752A (ko) * | 2007-03-30 | 2008-10-06 | 엘지전자 주식회사 | 방송 신호 처리 방법 및 방송 수신기 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000033019A (ko) | 1998-11-19 | 2000-06-15 | 전주범 | 비실시간형 비디오 온 디맨드 시스템에서의 사용자 인터페이스방법 및 그의 장치 |
KR100428590B1 (ko) | 2001-04-10 | 2004-04-27 | 라인식 | 영상 데이터 분할 전송방법 및 그 시스템 |
US20060193337A1 (en) * | 2005-02-25 | 2006-08-31 | Toni Paila | Device management broadcast operation |
US20070078944A1 (en) * | 2005-09-12 | 2007-04-05 | Mark Charlebois | Apparatus and methods for delivering and presenting auxiliary services for customizing a channel |
US7917644B2 (en) * | 2006-01-11 | 2011-03-29 | Nokia Corporation | Extensions to rich media container format for use by mobile broadcast/multicast streaming servers |
KR100777408B1 (ko) | 2006-01-26 | 2007-11-19 | 주식회사 알티캐스트 | 디지털 멀티미디어 방송망의 유휴 대역폭을 통한 비-실시간전송을 이용하여 다운로드가 요청된 컨텐츠의 효율적 공급방법 및 시스템 |
KR100744331B1 (ko) * | 2006-02-15 | 2007-07-30 | 삼성전자주식회사 | 통신 사업자 데이터를 방송하기 위한 디지털 방송 시스템및 디지털 방송 방법 |
KR20070115123A (ko) * | 2006-05-30 | 2007-12-05 | 엘지전자 주식회사 | Psip에서 현재 이벤트에 관한 정보를 포함하는 방송신호, 상기 방송 신호를 제어하는 방법 및 이를 처리하는방송 수신기 |
DE602006017752D1 (de) * | 2006-08-07 | 2010-12-02 | Ericsson Telefon Ab L M | Technik zur steuerung des herunterladens einer elektronischen dienstanleitung |
US7996868B2 (en) * | 2007-06-06 | 2011-08-09 | Dell Products, Lp | System and method of accessing digital video broadcasts within an information handling system |
KR101581354B1 (ko) * | 2008-03-07 | 2015-12-30 | 엘지전자 주식회사 | 방송 신호 수신 방법 및 방송 신호 수신 장치 |
KR101526967B1 (ko) * | 2008-04-23 | 2015-06-11 | 엘지전자 주식회사 | 방송 송신기, 방송 수신기 및 케이블 방송의 소프트웨어수신 방법 |
KR101062182B1 (ko) * | 2008-09-09 | 2011-09-05 | 삼성전자주식회사 | 권한 객체 자동 갱신 방법 및 장치 |
US8099752B2 (en) | 2008-12-03 | 2012-01-17 | Sony Corporation | Non-real time services |
US8661155B2 (en) * | 2008-12-30 | 2014-02-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Service layer assisted change of multimedia stream access delivery |
US9781181B2 (en) * | 2013-06-17 | 2017-10-03 | Qualcomm Incorporated | Multiple file delivery over unidirectional transport protocol sessions for a service |
-
2009
- 2009-11-18 US US12/591,415 patent/US8166192B2/en active Active
- 2009-11-18 CA CA2744183A patent/CA2744183C/en active Active
- 2009-11-18 WO PCT/KR2009/006804 patent/WO2010058963A2/ko active Application Filing
- 2009-11-18 KR KR1020117013810A patent/KR101635889B1/ko active IP Right Grant
-
2012
- 2012-03-16 US US13/422,669 patent/US8898328B2/en active Active
-
2014
- 2014-10-16 US US14/516,106 patent/US9621931B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080074599A (ko) * | 2007-02-09 | 2008-08-13 | 엘지전자 주식회사 | 방송 신호 수신 장치 및 방송 신호 송수신 방법 |
KR20080088752A (ko) * | 2007-03-30 | 2008-10-06 | 엘지전자 주식회사 | 방송 신호 처리 방법 및 방송 수신기 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013058633A1 (ko) * | 2011-10-20 | 2013-04-25 | 엘지전자 주식회사 | 방송 서비스 수신 방법 및 방송 서비스 수신 장치 |
US9712864B2 (en) | 2011-10-20 | 2017-07-18 | Lg Electronics Inc. | Broadcast service receiving method and broadcast service receiving apparatus |
KR20200098537A (ko) * | 2019-02-07 | 2020-08-20 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 송신 방법, 방송 신호 수신 방법 및 방송 신호 수신 장치 |
Also Published As
Publication number | Publication date |
---|---|
US9621931B2 (en) | 2017-04-11 |
CA2744183C (en) | 2014-05-27 |
WO2010058963A3 (ko) | 2010-08-05 |
US20100185746A1 (en) | 2010-07-22 |
US20120180087A1 (en) | 2012-07-12 |
CA2744183A1 (en) | 2010-05-27 |
WO2010058963A2 (ko) | 2010-05-27 |
US8898328B2 (en) | 2014-11-25 |
US20150067730A1 (en) | 2015-03-05 |
US8166192B2 (en) | 2012-04-24 |
KR101635889B1 (ko) | 2016-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9980015B2 (en) | Method of receiving a broadcasting signal and receiving system for receiving a broadcasting signal | |
KR101635889B1 (ko) | 비실시간 서비스 처리 방법 및 방송 수신기 | |
KR101706956B1 (ko) | 비실시간 서비스 처리 방법 및 방송 수신기 | |
KR101759958B1 (ko) | 비실시간 서비스 처리 방법 및 방송 수신기 | |
KR101710403B1 (ko) | 방송 신호 수신 방법 및 수신 시스템 | |
KR101695820B1 (ko) | 비실시간 서비스 처리 방법 및 방송 수신기 | |
KR101685987B1 (ko) | 비실시간 서비스 처리 방법 및 방송 수신기 |
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: 20190514 Year of fee payment: 4 |