도 1은 본 발명의 원리에 따른, 방송 신호를 복조 및 디코딩하는 디지털 비디오 수신 시스템의 블록도이다. 비록 개시된 시스템이 MPEG 호환 포맷으로 프로그램 가이드 데이터를 포함하는 프로그램 특정 정보를 포함하는 비디오 신호를 수신하는 시스템의 관점에서 기술되지만, 그것은 예시적일 뿐이다. 프로그램 특정 정보는 다양한 유형을 가질 것이다. 예를 들어, 프로그램 특정 정보는 MPEG 시스템 표준의 2.4.4 절에 규정된 프로그램 특정 정보(PSI : Program Specific Information) 요구사항에 부합하거나, 또는 미국 첨단 텔레비전 시스템 위원회(ATSC : Advanced Television Systems Committee)에 의해 제공된, 고선명 텔레비전(HDTV) 신호 표준인 1995년 4월 12일자의 HDTV 전송을 위한 디지털 텔레비전 표준(Digital Television Standard for HDTV Transmission) 또는 기타 ATSC 표준들에 부합할 것이다. 대안적으로, 프로그램 특정 정보는 특정 시스템의 소유주 또는 고객 요구사항에 따라 형성될 수 있을 것이다.
본 발명의 원리는 코딩 유형 및 변조 포맷이 변경될 수 있는 육상, 케이블, 위성, 인터넷 또는 컴퓨터 네트워크 방송 시스템에 응용될 수 있을 것이다. 그러한 시스템으로는 예를 들어 다른 유형의 인코드된 데이터스트림 및 프로그램 특정 정보를 전달하는 다른 방법을 수반하는 비-MPEG 호환 시스템을 포함할 것이다. 게다가, 비록 개시된 시스템이 방송 프로그램을 처리하는 것으로 기술되지만, 이것은 예시적일 뿐이다. '프로그램'이라는 용어는 예를 들어 오디오 데이터, 전화 메시지, 컴퓨터 프로그램, 인터넷 데이터 또는 기타 통신과 같은 임의 형태의 패킷화된 데이터를 나타내는데 사용된다.
개략적으로, 도 1의 비디오 수신기 시스템에서, 오디오, 비디오 및 방송 프로그램 내용을 나타내는 관련 데이터를 전달하는 신호들과 변조되는 방송 반송파는 안테나(10)에 의해 수신되고, 유닛(13)에 의해 처리된다. 그 결과로 생기는 디지털 출력 신호는 복조기(15)에 의해 복조된다. 유닛(15)으로부터의 복조된 출력은 디코더(17)에 의해 트렐리스(trellis)로 디코드되고, 바이트 길이의 데이터 세그먼트(segment)로 맵핑되고, 디인터리브(deinterleave)되고 리드-솔로몬(Reed-Solomon) 오류 수정된다. 유닛(17)으로부터의 수정된 출력 데이터는 프로그램을 나타내는 다중화된 오디오, 비디오 및 데이터 요소를 포함하는 MPEG 호환 전송 데이터스트림의 형태로 되어 있다. 유닛(17)으로부터의 전송 스트림은 유닛(22)에 의해 오디오, 비디오 및 데이터 요소들로 디멀티플렉스되고, 상기 오디오, 비디오 및 데이터 요소들은 디코더 시스템(100)의 다른 요소들에 의해 추가적으로 처리된다. 하나의 모드에서, 디코더(100)는 유닛(50 및 55)의 각각에 디스플레이 및 오디오 재생을 위해 MPEG으로 디코드된 데이터를 제공한다. 다른 모드에서, 유닛(17)으로부터의 전송 스트림은 저장 장치(90)를 통해 저장 매체(105) 상에 저장을 위한 MPEG 호환 데이터스트림을 제공하기 위하여 디코더(100)에 의해 처리된다.
사용자는 원격 제어 유닛(70)을 사용하여 텔레비전 채널 또는 프로그램 가이드와 같은 화면상의 메뉴를 시청하기 위해 선택한다. 처리기(60)는 인터페이스(65)를 통해 원격 제어 유닛(70)으로부터 제공된 선택 정보를, 시청을 원하는 프로그램 채널을 수신하도록 도 1의 요소들을 적절하게 편성하는데 사용한다. 처리기(60)는 처리기(62) 및 제어기(64)로 이루어진다. 유닛(62)은 프로그램 가이드 및 시스템 정보를 포함하는 프로그램 특정 정보를 처리(즉, 분석, 취합 및 조립)하고, 제어기(64)는 디코더(100)를 동작시키는데 요구되는 남은 제어 기능을 수행한다. 비록 유닛(60)의 기능이 도 1에 도시된 바와 같이 별도의 요소(62 및 64)로 구현될 수 있지만, 상기 기능은 단일 처리기 내에 대안적으로 구현될 수 있을 것이다. 예를 들어, 유닛(62 및 64)의 기능은 마이크로프로세서의 프로그램된 명령어 내에 포함될 수도 있을 것이다. 처리기(60)는 입력 신호 포맷 및 코딩 유형을 복조 및 디코드하 기 위하여 처리기(13), 복조기(15), 디코더(17) 및 디코더 시스템(100)을 편성한다. 유닛(13, 15, 17) 및 디코더(100) 내의 서브-유닛들은 처리기(60)가 양방향 데이터 및 제어 신호 버스(C)를 이용하여 이들 요소 내에 있는 제어 레지스터 값을 설정함으로써 상기 입력 신호 유형을 위해 개별적으로 편성된다.
디코더(100)에게 제공된 전송 스트림은 프로그램 채널 데이터 및 프로그램 특정 정보를 포함하는 데이터 패킷으로 구성된다. 유닛(22)은 프로그램 특정 정보 패킷을 분석하고, 취합하여 계층적으로 배열된 테이블로 조립하는 처리기(60)에게 프로그램 특정 정보 패킷을 보낸다. 사용자 선택 프로그램 채널을 포함하는 각 데이터 패킷은 상기 조립된 프로그램 특정 정보를 이용하여 식별 및 조립된다. 프로그램 특정 정보는 도 1의 시스템이 요구된 채널에 동조하고, 완전한 프로그램을 형성하기 위하여 데이터 패킷을 조립할 수 있도록 하는 조건부 접근, 네트워크 정보와 식별 및 링킹(linking) 데이터를 포함한다. 프로그램 특정 정보는 부수적인 프로그램 가이드 정보의 식별 및 조립을 지원하는 데이터를 비롯하여, 부수적인 프로그램 가이드 정보{예를 들어 전자 프로그램 가이드(EPG : Electronic Program Guide)} 및 방송 프로그램에 관련된 설명문을 또한 포함한다.
프로그램 특정 정보는 처리기(60)에 의해 계층적으로 배열되고 상호연결된 다수의 테이블로 조립된다. 예시적인 계층적 테이블 배열은 주 가이드 테이블(MGT : Master Guide Table), 채널 정보 테이블(CIT : Channel Information Table), 이벤트 정보 테이블(EITs : Event Information Tables) 및 확장 문자 테이블(ETTs :Extended Text Tables)과 같은 옵션 테이블을 포함한다. MGT는 다른 테이블에 관 련된 데이터 패킷을 식별하기 위한 식별자(identifier)와 같은 다른 테이블에 전달된 프로그램 특정 정보를 취득하기 위한 정보를 포함한다. CIT는 사용자 선택 프로그램 채널을 수신하기 위하여 동조 및 항해(navigation)를 위한 정보를 포함한다. EIT는 CIT에 나열된 채널 상에서 수신 가능한 프로그램(이벤트)의 설명 목록을 포함한다. ETT는 프로그램 및 프로그램 채널을 설명하는 문자 메시지를 포함한다. 계층적인 테이블 내에 있는 항목들을 설명하고 보충하는 추가적인 프로그램 특정 정보는 설명자 정보 요소(descriptor information elements) 내에 전달된다. 유닛(22)을 통하여 처리기(60)에 의해 취득된 프로그램 특정 정보는 유닛(60)의 내부 메모리 내에 저장된다.
도 1을 자세하게 관찰하면, 안테나(10)에 의해 수신된 프로그램을 나타내는 오디오, 비디오 및 관련 데이터를 전달하는 신호와 함께 변조된 반송파는 디지털 형태로 변환되고, 입력 처리기(13)에 의해 처리된다. 처리기(13)는 무선 주파수(RF) 동조기와 중간 주파수(IF) 혼합기 및 입력 신호를 추가적인 처리에 적합한 보다 낮은 주파수 대역으로 하향-변환하기 위한 증폭단을 포함한다. 이 예시적인 시스템에서, 안테나(10)에 의해 수신된 입력 신호는 33개의 물리 전송 채널(PTCs 0-32)을 포함한다. 각 물리 전송 채널(PTC : Physical Transmission Channel)은 6 MHz 대역폭이 할당되며, 예를 들어 6개까지의 서브-채널(sub-channel)을 포함한다.
예시적인 목적으로, 비디오 수신기 사용자가 원격 제어 유닛(70)을 이용하여 시청하기 위한 하나의 서브-채널(SC)을 선택한다고 가정한다. 처리기(60)는 선택된 서브-채널(SC)에 해당하는 PTC를 수신하도록 디코더(100)의 요소들을 적절하게 편 성하기 위하여 인터페이스(65)를 통해 원격 제어 유닛(70)으로부터 제공된 선택 정보를 사용한다. 하향 변환에 이어서, 선택된 PTC를 위한 유닛(13)으로부터의 출력 신호는 119-405 MHz의 범위에서 6 MHz의 대역폭 및 중심 주파수를 갖는다. 아래 논의에서, RF 채널 또는 물리 전송 채널(PTC)은 하나 이상의 서브-채널(또한 가상 또는 논리 채널로 명명됨)을 포함하는 할당된 방송국 전송 채널 대역을 의미한다.
처리기(60)는 선택된 PTC를 수신하기 위하여 유닛(13)의 무선 주파수(RF) 동조기와 중간 주파수(IF) 혼합기 및 증폭단을 편성한다. 상기 선택된 PTC에 대한 하향-변환된 주파수 출력은 유닛(15)에 의해 복조된다. 복조기(15)의 주 기능은 반송파 주파수의 복구와 추적, 전송된 데이터 클록 주파수의 복구, 및 비디오 데이터 자체의 복구이다. 유닛(15)은, 전송기 클록에 해당하며, 처리기(13), 복조기(15) 및 디코더(17) 동작의 타이밍(timing)을 위해 사용되는 샘플링 및 동기 클록을 또한 복구한다. 유닛(15)으로부터의 복구된 출력은 디코더(17)에게 제공된다.
복조기(15)로부터의 출력은 유닛(17)에 의해 공지된 원리에 따라 바이트 길이의 데이터 세그먼트로 맵핑되고, 디인터리브되고, 또한 리드-솔로몬 오류 수정된다. 이 외에도, 유닛(17)은 순방향 오류 수정(FEC : Forward Error Correction) 유효성 또는 잠금 표시(lock indication)를 처리기(60)에 제공한다. 리드-솔로몬 오류 수정은 순방향 오류 수정의 공지된 유형이다. FEC 잠금 표시는 리드-솔로몬 오류 수정이 수정되는 데이터에 동기 되고, 유효 출력을 제공하고 있다는 것을 알려준다. 유닛(13, 15 및 17)에 의해 구현된 복조기 및 디코더 기능은 예를 들어 리(Lee) 및 메서슈미트(Messerschmidt)가 쓴 참고 문헌 "디지털 통신(Digital Communication)" {미국의 메사츠세츠(MA), 보스턴에 소재한 크루거 아카데믹 출판사(Kluwer Academic Press)에서 1988에 출간}에 개별적으로 공지되고, 일반적으로 기술되었다는 점이 주시된다.
유닛(17)으로부터의 수정된 출력 데이터는 MPEG 호환 전송 처리기 및 디멀티플렉서(22)에 의해 처리된다. 특정 프로그램 채널 내용 또는 프로그램 특정 정보를 구성하는 각 패킷은 그들의 패킷 식별자(PIDs : Packet Identifiers)에 의해 식별된다. 처리기(22)는 패킷 헤더 정보 내에 포함된 패킷 식별자(PIDs)의 분석에 기초한 유형에 따라 데이터를 분리하고, 후속 비디오, 오디오 및 데이터 압축해제에 사용되는 동기 및 오류 표시 정보를 제공한다.
처리기(22)에 제공되는 수정된 출력 데이터는 몇몇 서브-채널을 통해 배포된 많은 프로그램에 대한 프로그램 채널 내용 및 프로그램 특정 정보를 포함하는 전송 데이터스트림의 형태를 갖는다. 이 예시적인 설명에서 프로그램 특정 정보는 특정 PTC의 전송 스트림에 존재하는 서브-채널들을 설명한다. 그러나, 다른 실시예에서 프로그램 특정 정보는 다른 PTCs에 위치되고 상이한 전송 스트림으로 전달된 서브-채널들을 또한 설명할 것이다. 이들 서브-채널의 그룹은 서브-채널의 소스가 특정 방송국이거나 또는 그들이 이전에 아날로그 NTSC 호환 방송 채널에 할당된 전송 대역폭을 차지하도록 연합될 수 있을 것이다. 나아가, 전송 스트림에서 선택된 프로그램 채널을 구성하는 각 패킷은 프로그램 특정 정보에 포함된 PIDs를 이용하여 처리기(22)와 연계해서 동작하는 처리기(60)에 의해 식별 및 조립된다.
프로그램 특정 정보는 보충 설명자 정보와 함께 MGT, CIT, EIT, 및 ETT를 포 함하는 계층적으로 배열된 테이블의 형태를 갖는다. MGT 데이터를 구성하는 패킷을 식별하는 PID는 미리 결정되고, 처리기(60) 내부 메모리 내에 저장된다. 또한, MGT는 CIT, EIT, 및 ETT 데이터를 식별하는 PIDs를 전달하고, 이들 테이블의 크기를 나타내는 다른 정보를 전달한다. 처리기(60)는 PIDs 또는 테이블 크기에서의 임의의 변화를 식별하기 위하여 MGT의 갱신을 감시한다. 따라서, 처리기(60)가 유닛(17)에 의해 제공된 FEC 잠금 표시로부터 유효 데이터가 전송 처리기(22)에 제공되고 있다는 것을 결정한 이후에, MGT는 추가적인 PID 정보 없이도 취득될 것이다. 제어 신호(C)를 이용하여, 처리기(60)는 CIT, EIT 및 ETT 데이터를 포함하는 남은 프로그램 특정 정보를 포함하는 데이터 패킷을 선택하도록 전송 처리기(22)를 편성한다. 처리기(22)는 유닛(17)에 의해 제공된 인입 패킷의 PIDs를 처리기(60)에 의해 유닛(22) 내에 있는 제어 레지스터에 미리 적재된 PID 값들과 비교한다. 나아가, 처리기(60)는 처리기(22)에 의해 포착된 프로그램 특정 정보 패킷을 접근(access), 분석 및 조립하여, 상기 프로그램 특정 정보를 처리기의 내부 메모리 내에 저장한다. 처리기(60)는 취득된 프로그램 특정 정보로부터 PTC 반송파 주파수, 복조 특성, 및 서브-채널 PIDs를 포함하는 동조 매개변수를 도출한다. 처리기(60)는 선택된 서브-채널(SC) 프로그램 내용을 취득하기 위하여 유닛(13, 15, 17) 및 디코더(100)를 편성하는데 이 정보를 사용한다.
MGT, CIT, EIT와 ETT 데이터 및 처리기(60)에 의해 취득 및 취합된 관련 설명자를 포함하는 프로그램 특정 정보는 도 2-9에 제시된 데이터 포맷으로 예시된 바람직한 특징을 갖는다. 이들 특징은 디코더(100)(도 1)에 의한 프로그램 채널 내 용 및 관련 프로그램 가이드 데이터의 식별, 취득, 조립 및 디코딩을 용이하게 한다. 처리기(60)는 유닛(60)의 내부 메모리에 저장된 프로그램 특정 정보 패킷을 접근 및 조립함으로써 도 2의 데이터 포맷으로 예시된 바와 같은 MGT를 형성한다. MGT는 CIT, EIT 및 ETT 테이블의 조립을 가능하게 하는 예를 들어 PID_ETT(205) 및 PID_PG(210)(도 2)와 같은 데이터 식별자를 포함한다. 처리기(60)는 CIT, EIT와 ETT 데이터 및 관련 설명자를 형성하기 위한 프로그램 특정 정보 패킷을 접근 및 조립하기 위하여 MGT 데이터 식별자를 사용한다.
처리기(60)는 사용자가 시청하기 위하여 선택한 서브-채널(SC:sub-channel)을 구성하는 패킷을 식별하기 위하여, 도 3에 예시된 바와 같은, 취득된 CIT 채널 맵 정보를 이용한다. 사용자는 원격 제어 유닛(70) 및 인터페이스(65)를 통하여 2개의 프로그램 채널 번호를 입력함으로써 시청하기 위한 서브-채널(SC:sub-channel)을 선택한다. 각 프로그램 채널에는 제 1 및 제 2 식별 번호 모두가 할당되는 것이 바람직하다. 제 1 식별 번호{도 3에서 뭉치_번호(bundle_number)(300)에 의해 표시된 것과 같은 주 번호}는 예를 들어 폭스(Fox) 5TM, 채널 13TM과 같은 방송 소스 및 방송국 채널 상표 번호를 나타낸다. 제 1 식별 번호는 프로그램 또는 서비스의 방송 소스를 나타내며, 프로그램이 방송되는 RF 채널과는 독립적일 수 있을 것이다. 그러나, 다른 실시예에서 제 1 식별 번호는 방송 RF 채널과 관계될 수 있거나, 또는 예를 들어 영화와 같은 프로그램 범주 또는 주제와 같은 다른 프로그램 특성에 관계될 수 있을 것이다. 제 2 식별 번호{도 3에서 채널_번호_인_뭉치 (channel_number_in_bundle)(305)에 의해 표시된 것과 같은 부 번호}는 방송국에 의해 제공된 서비스 그룹 내에서 특정 서비스에 해당하는 서브-채널을 나타낸다. 제 1 및 제 2 식별 번호는 연계해서 특정 방송국에 의해 제공된 서브-채널과 같은 특정(specific) 서비스를 나타낸다. 비록, 선택된 서브-채널(SC)이 방송 소스에 관련된 포괄하는 채널 스펙트럼(spectrum) 내에서 하나의 RF 대역폭을 차지할지라도, 제 1 또는 제 2 식별 번호 어느 것도 그러한 스펙트럼과 관계가 없다. 그러나, 이 관계는 대안적인 실시예에서 이루질 수 있을 것이다. 이러한 이중 번호부여 시스템은 방송국이 다이내믹하게 할당 가능한 방송 서브-채널의 범위에 걸쳐 채널 상표 식별성을 보유할 수 있도록 한다.
서브-채널(SC)을 선택하는데 사용되는 이중 프로그램 채널 식별 번호는 사용자에 의해 다양한 방법으로 선택될 수 있을 것이다. 상기 채널 식별 번호는 프로그램 가이드에서 프로그램 채널 선택을 디스플레이하는 계층적 메뉴 시스템 내로부터 서브-채널(SC)을 선택하기 위하여 원격 유닛(70)을 이용하는 것을 포함하거나, 또는 예를 들어 유닛(70) 키패드를 통해 단순히 순차적인 번호 입력에 의해 입력될 수 있을 것이다. 채널 선택 시스템은 예를 들어 키보드 또는 이산적인 스위치와 같은 상이한 데이터 입력 장치의 사용을 또한 포함할 것이다. 게다가, 데이터 입력 시스템은 이중 식별 번호뿐만 아니라 단일 채널 식별 번호의 입력도 또한 수용한다. 채널 선택 완료 명령을 검출하게 되면, 처리기(60)는 단일 채널 식별 번호 입력을 이중 식별 번호로 변환한다. 처리기(60)는 미리 결정된 변환 맵에 따라 단일 채널 식별 번호를 이중 채널 식별 번호로 변환한다. 이 변환은 미리 결정되어 저장 된 알고리즘 또는 수식을 이용하여 또한 수행될 수 있을 것이다. 도출된 이중 식별 번호는 처리기(60)에 의해 패킷 식별 및 동조용으로 사용되고, 양쪽 번호가 사용자에 의해 입력된 것처럼 이전에 기술된 방법으로 다른 디코더 정보를 식별하는데 사용된다.
처리기(60)는 선택된 서브-채널(SC)에 해당하는 PTC를 CIT로부터 결정하기 위하여 인터페이스(65)를 통하여 원격 제어 유닛(70)으로부터 제공된 수신된 프로그램 채널 식별 번호(300 및 305)를 사용한다. 일단 PTC 번호{도 3에서 항목(315)}가 결정되면, 처리기(60)(도 1)는 선택된 서브-채널(SC)에 대한 PTC를 수신하기 위하여 유닛(13, 15, 및 17)을 편성한다. 프로그램 채널 식별 번호(300 및 305)로부터 결정된 유일한 프로그램 서브-채널은 대안적으로 서비스 또는 가상 채널 또는 논리 채널로 불리울 수 있을 것이며, CIT는 가상 채널 테이블로 간주될 수 있을 것이다. 게다가, CIT는 특정 PTC를 선택된 서브-채널(SC)의 제 1 및 제 2 서브-채널 식별 번호(300 및 305)와 결합시킬 뿐만 아니라, 다른 매개변수를 SC과 결합시킨다. 이들 매개변수는 (a) 선택된 서브-채널(SC)을 EITs에 전달된 프로그램 내용 정보와 연결하기 위한 채널_id(channel_id)(320), (b) 서브-채널 데이터가 예를 들어 NTSC 같은 아날로그인지, 예를 들어 ATSC 비디오 같은 디지털 비디오인지, 또는 ATSC 오디오 같은 디지털 오디오인지를 나타내는 채널_유형(channel_type) 표시자(325), (c) 문자 메시지가 이 서브-채널에 대해 이용가능한지를 나타내는 ETM_플래그(ETM_flag)(330), (d) 채널 이름(340) 및 (e) 예를 들어 이후에 기술된 바와 같이 서비스 위치 설명자와 같은 설명자(descriptor)(335)를 포함한다.
처리기(60)는 선택된 서브-채널(SC)에 대한 프로그램 맵 정보를 CIT 내에 전달된 서비스 위치 설명자(SLD :Service Location Descriptor)로부터 효과적으로 결정한다. SLD 프로그램 맵 정보는 도 4의 데이터 포맷에 의해 예시된다. SLD는 선택된 서브-채널(SC)을 선택된 서브-채널(SC) 상에 전송되는 프로그램의 요소들을 구성하는 각 패킷화된 데이터스트림을 식별하기 위하여 사용되는 예를 들어 항목(420) 같은 패킷 식별자와 연결시킨다. 이외에도, SLD 프로그램 맵 정보는 CIT와 연계해서, 선택된 서브-채널(SC)을 프로그램 번호(program_number)(405), 프로그램 클록 참조(PCR : Program Clock Reference) 식별자(410), 언어 코드 표시자(425), 및 일예로 비디오, 오디오, 제어, 보조 또는 개인 정보와 같은 스트림을 식별하는 스트림 유형 식별자(415)로 맵핑(map)한다.
SLD 프로그램 맵 정보는 디코더(100)에 입력된 MPEG 호환 전송 스트림의 프로그램 맵 테이블(PMT:Program Map Table) 세그먼트 내에 이미 존재하는 정보를 복제한다. 그러나, CIT 내에 SLD를 포함함으로써, 선택된 서브-채널(SC) 상에 전송되는 프로그램을 식별 및 취득하는데 디코더(100)에 의해 요구되는 시간은 바람직하게도 감소된다. 이것은 처리기(60)가 선택된 서브-채널(SC)을 수신하도록 도 1의 시스템을 직접 편성 및 동조할 수 있도록 하기에 충분한 포맷 및 결합된 정보를 CIT 및 SLD가 제공하기 때문이다. 특히, CIT 및 SLD는 제 1 및 제 2 서브-채널 식별 번호 각각을 이 서브-채널 상에 전달되는 프로그램을 구성하는 데이터스트림을 식별하기 위한 PIDs와 직접 연결시킨다. 이것은 디코더(100)에 입력된 MPEG 호환 전송 스트림에 있는 프로그램 맵 테이블(PMT) 정보를 취득 및 사용하지 않고서도 선택된 서브-채널(SC)을 수신하도록 처리기(60)가 도 1의 시스템을 편성할 수 있도록 한다. 이 외에도, CIT 및 SLD 프로그램 맵 정보의 데이터 분할, 데이터 포맷팅 및 데이터 반복 주파수 특성은 MPEG PMT 정보의 요구사항과는 독립적으로 결정될 수 있을 것이다.
유닛(17)으로부터 디코더(100)에 입력된 패킷화되고 디코드된 전송 스트림은 예를 들어 텔레비전 프로그램을 나타내는 비디오, 오디오 및 데이터를 포함하며, 또한 서브-화상(sub-picture) 데이터를 포함한다. 서브-화상 데이터는 예를 들어 프로그램 가이드, 디스플레이 명령, 설명 자막, 선택 가능한 메뉴 옵션 또는 기타 항목들을 포함하는 시청을 위해 사용자에 의해 선택 가능한 프로그램 및 채널에 관련된 화상 요소들을 포함한다. 그와 같이, 서브-화상 데이터는 CIT에 나열된 서브-채널 상에서 수신 가능한 프로그램(이벤트)의 설명 목록을 포함하는 EIT를 포함하며, 프로그램 및 프로그램 서브-채널을 설명하는 문자 메시지를 포함하는 ETT를 또한 포함한다.
처리기(60)는 선택된 서브-채널(SC) 상에 전송되는 프로그램을 구성하는 비디오, 오디오 및 서브-화상 스트림의 PIDs를 CIT 및 SLD로부터 결정한다. 처리기(22)는 디코더(17)에 의해 제공된 인입 패킷의 PIDs를 서브-채널(SC) 상에 전송되는 비디오, 오디오 및 서브-화상 스트림의 PID 값과 매칭한다. 이들 PID 값은 처리기(60)에 의해 유닛(22) 내에 있는 제어 레지스터에 미리 적재된다. 이 방식으로, 처리기(22)는 서브-채널(SC) 상에 전송된 프로그램을 구성하는 패킷을 포착하고, 비디오 디코더(25), 오디오 디코더(35), 서브-화상 처리기(30)에 각각 출력하기 위 해 그 패킷들을 MPEG 호환 비디오, 오디오 및 서브-화상 스트림으로 형성한다. 비디오 및 오디오 스트림은 선택된 서브-채널(SC)의 프로그램 내용을 나타내는 압축된 비디오 및 오디오 데이터를 포함한다. 서브-화상 데이터는 서브-채널(SC) 프로그램 내용에 관련된 EIT 및 ETT 정보를 포함한다.
디코더(25)는 유닛(22)으로부터의 MPEG 호환으로 패킷화된 비디오 데이터를 디코드하고 압축해제하며, 압축해제된 프로그램을 나타내는 픽셀 데이터를 멀티플렉서(40)를 통하여 NTSC 인코더(45)에 제공한다. 마찬가지로, 오디오 처리기(35)는 유닛(22)으로부터의 패킷화된 오디오 데이터를 디코드하고, 관련 압축해제된 비디오 데이터와 동기된, 디코드 및 증폭된 오디오 데이터를 오디오 재생을 위해 장치(55)에 제공한다. 처리기(30)는 유닛(22)으로부터 수신된 서브-화상 데이터를 디코드 및 압축해제한다.
처리기(30)에 의해 디코드된 서브-화상 데이터는 도 5에 제시된 예시적인 데이터 포맷에서 ETT에 있는 문자 메시지(확장 문자 메시지 - ETMs)를 포함한다. 바람직하게, 도 5의 ETT에 전달된 문자 메시지는 특정된 지속기간의 시간 구간으로 분할된다. 세그먼트된(segmented) 문자 메시지는 특정된 지속기간의 구간 및 예를 들어 오전 12시, 오후 3시, 오후 6시 등으로부터 시작하는 3시간 블록과 같은 시작 시간에 발생하는 프로그램을 설명한다. 전달된 문자 메시지에 적용 가능한 지속기간 및 시작 시간을 정의하는 표시자는 도 2의 MGT{각각 도 2의 지속기간(duration) 항목(215) 및 응용_시간(application_time) 항목(220)}에 포함된다. 문자 메시지{예를 들어 확장_문자_메시지(extended_text_message)(505)}는 도 5의 포맷으로 문 자 메시지 식별자{ETM_id(510)}와 함께 전달된다.
디코더(100)(도 1)는 특정된 지속기간의 시간 구간으로 분할된 프로그램 설명 문자 메시지를 그러한 세그먼테이션(segmentation) 없이 가능한 것보다 더 효율적으로 취득, 처리 및 저장할 수 있다. 이것은 세그먼트된 문자 메시지가 특정된 시간 구간 외에 발생하는 정보를 배제하여, 결과적으로 세그먼트되지 않은 문자 메시지보다 더 적기 때문이다. 따라서, 세그먼트된 문자 메시지 데이터는 보다 적은 저장 공간을 차지하고, 세그먼트되지 않은 데이터의 보다 큰 데이터 블록 보다 더 빨리 취득 및 처리될 수 있다. 게다가, 도 5의 데이터 포맷은 사용자가 선택된 서브-채널(SC) 또는 선택된 프로그램 서브-채널의 그룹에 대한 문자 메시지 데이터를 취득하도록 허용한다. 이것은 디코더(100)에 의한 문자 메시지 데이터의 식별, 취득 및 디코딩이 사용자에게 관심 대상이 되는 프로그램 및 서브-채널에 집중되도록 허용하고, 과다한 문자 메시지 정보의 취득을 감소시킨다.
ETT에 전달된 문자 메시지는 채널 정보 또는 프로그램(이벤트) 정보를 포함할 것이다. 도 6은 예를 들어 문자 메시지가 채널 정보{도 6의 항목(610)} 또는 프로그램 정보{도 6의 항목(605)}를 갖는 지와 같은 문자 메시지의 유형을 나타내는 도 5의 문자 메시지 식별자{ETM_id(510)}를 할당하기 위한 예시적인 포맷을 보여준다. 문자 메시지 식별자(ETM_id)(510)(도 5)는 또한 그 문자 메시지가 관련되는 서브-채널과 같은 소스를 식별한다.
도 5의 ETT에 전달된 문자 메시지(505)는 도 7의 다중 압축 문자열 포맷에 따라 압축 및 포맷된다. 압축 문자열 포맷은 바람직하게도 도 1의 디코더(100)에 있는 처리기(30)에 의한 다수의 압축 문자열의 식별 및 디코딩을 용이하게 하는 표시자(indicator)를 포함한다. 처리기(30)는 표시자(705, 710 및 715)(도 7) 각각으로부터 문자열의 압축, 코딩 및 언어 특성을 결정함으로써 유닛(22)(도 1)으로부터 수신된 문자열(505)(도 5)을 디코드한다. 특히, 처리기(60)와 함께 동작하는 처리기(30)는 표시자(705)를 이용하여 선택된, 예를 들어 호프만 압축해제 기능과 같은, 압축해제 기능을 적용하여 수신된 문자열(505)을 압축해제한다. 마찬가지로, 처리기(30)는 표시자(710)를 사용하여 선택된 문자 코드 집합 및 표시자(715)를 사용하여 선택된 언어 코드 집합에 따라 문자 글자를 해석하는 디코딩 기능을 적용하여 수신된 문자열을 디코드한다. 게다가, 처리기(30)는 표시자(725 및 720) 각각으로부터 처리될 문자열의 수 및 각 문자열에서 바이트의 수를 결정한다.
도 8은 도 7의 다중 압축 문자열 포맷 내에 있는 압축 표시자(705)에 대한 예시적인 표시자 정의를 보여준다. 압축 표시자(705)는 압축 기능이 문자열 내에서 채택되지 않았음을 나타낼 것이라는 점을 유의해야 한다. 이 경우에, 처리기(30)는 압축해제 기능을 유닛(22)으로부터 수신된 문자열에 대해 적용하지 않는다. 도 9는 도 7의 다중 압축 문자열 포맷 내에 있는 코딩 표시자(coding_indicator)(710)에 대한 예시적인 표시자 정의를 보여준다.
처리기(30)는 온-스크린 디스플레이(OSD) 및 도형 생성기(37)(도 1)에 출력하기 위한 디코드된 문자열을 형성하기 위하여 문자열(505)(도 5)의 디코드 및 압축해제된 문자열 요소들을 조립 및 포맷한다. 유닛(37)은 유닛(30)으로부터의 문자열 글자 데이터를 해석 및 포맷하고, 유닛(50) 상에 표시하기 위해 포맷된 픽셀 맵 문자 및 도형을 생성한다. 상기 포맷된 픽셀 맵 문자 및 도형 데이터는 유닛(50) 상에 후속 디스플레이를 위한 프로그램 가이드, 또는 다른 형태의 메뉴 또는 사용자 인터페이스를 나타낼 것이다. 유닛(37)은 유닛(50) 상에 표시하기 위한 설명 자막, 선택 가능한 메뉴 옵션을 포함하는 제어 및 정보 메뉴 디스플레이, 기타 항목들을 나타내는 픽셀 맵 데이터를 생성하기 위하여 EIT, ETT 및 기타 정보를 또한 처리한다. 상기 제어 및 정보 디스플레이는 디코더(100)의 사용자 동작을 위한 기능 선택 및 장치 동작 매개변수의 입력을 가능케 한다.
OSD 생성기(37)에 의해 생성된 문자 및 도형은 처리기(60)의 지시 하에 오버레이(overlay) 픽셀 맵 데이터 형태로 생성된다. 유닛(37)으로부터의 오버레이 픽셀 맵 데이터는 처리기(60)의 지시 하에 멀티플렉서(40)를 통하여 인코더(45)에서 MPEG 디코더(25)로부터의 압축해제된 픽셀을 나타내는 데이터와 결합 및 동기된다. 관련 서브-화상 문자 메시지 데이터와 함께 서브-채널(SC) 상의 비디오 프로그램을 나타내는 결합된 픽셀 맵 데이터는 NTSC 인코더(45)에 의해 인코드되고, 디스플레이를 위해 장치(50)에 출력된다.
도 1의 시스템의 저장 모드에서, 유닛(17)으로부터의 수정된 출력 데이터는 저장을 위한 MPEG 호환 데이터스트림을 제공하기 위하여 디코더(100)에 의해 처리된다. 이 모드에서, 하나의 프로그램이 저장을 위해 원격 유닛(70) 및 인터페이스(65)를 통해 사용자에 의해 선택된다. 처리기(22)는 처리기(60)와 함께 MGT, CIT, EIT 및 ETT 데이터와 앞에서 기술된 바람직한 특징을 갖는 설명자를 포함하는 축약된 프로그램 특정 정보를 형성한다. 축약된 프로그램 특정 정보는 저장을 위해 선 택된 프로그램의 디코딩을 지원하나, 관련없는 정보를 배제한다. 처리기(60)는 처리기(22)와 함께 선택된 프로그램의 패킷화된 내용 데이터 및 관련된 축약 프로그램 특정 정보를 갖는 복합 MPEG 호환 데이터스트림을 형성한다. 복합 데이터스트림은 저장 인터페이스(95)에 출력된다.
저장 인터페이스(95)는 데이터에서의 갭(gap)과 비트율 변화를 감소시키기 위하여 복합 데이터스트림을 임시저장(buffer)한다. 그 결과로 발생하는 임시 저장된 데이터는 매체(105) 상에 저장하기 적합하도록 저장 장치(90)에 의해 처리된다. 저장 장치(90)는 저장하기에 적합한 인코드된 데이터스트림을 생성하기 위하여 인터페이스(95)로부터의 임시 저장된 데이터스트림을 채널 코딩, 인터리빙(interleaving) 및 리드 솔로몬 인코딩과 같은 공지된 오류 인코딩 기법을 이용하여 인코드한다. 유닛(90)은 축약된 프로그램 특정 정보를 포함하는, 그 결과로 발생하는 인코드된 데이터스트림을 매체(105) 상에 저장한다.
도 10은 MGT, CIT, EIT 및 ETT 데이터와 앞에서 기술된 바람직한 기능을 갖는 설명자를 포함하는 프로그램 특정 정보를 생성하는 방법을 보여준다. 상기 방법은 도 1의 안테나(10)에 의해 수신된 데이터와 같은 비디오 데이터를 방송하기 위한 인코더에서 사용될 수 있을 것이며, 또한 상기 방법은 도 1의 처리기(60)와 같은 디코더 유닛 내에서 채택될 수 있을 것이다.
도 10의 단계(800)에서의 시작에 이어, CIT는 단계(810)에서 생성된다. CIT는 이용가능한 방송 프로그램 및 서브-채널의 취득을 가능케 하는 서브-채널 및 프로그램 식별 정보를 갖는다. CIT는 제 1 및 제 2 서브-채널 식별 번호 및 특정 서 브-채널 상에 전송되는 각 프로그램을 구성하는 각 패킷화된 데이터스트림을 식별하기 위한 패킷 식별자를 갖는 SLD를 포함한다. 상기 생성된 CIT는 도 1과 연관해서 이전에 설명된 바와 같이, 프로그램 번호, 프로그램 클록 참조(PCR : Program Clock Reference) 식별자, 언어 코드 표시자, 및 스트림 유형 식별자를 포함하는, 나열된 프로그램 서브-채널에 연결된 항목들을 또한 포함한다.
단계(815)에서, CIT에 나열된 서브-채널 상에서 수신 가능한 프로그램(이벤트)의 설명 목록을 포함하는 프로그램 가이드 정보를 포함하는 EIT가 생성된다. 단계(820)에서, 예를 들어 프로그램을 설명하는 문자 메시지를 포함하는 ETT가 생성된다. 각 문자 메시지는 특정된 지속기간의 시간 구간으로 분할된다. 상기 세그먼트된 문자 메시지 데이터의 지속기간 및 적용 시간은 ETT 자체에 있는 표시자들에 의해 또한 정의된다. 문자 메시지 데이터는 공지된 기법에 따라 인코드 및 압축되고, 적용된 압축, 코딩 및 언어 특성을 정의하는 표시자와 함께 ETT에 전달된다. ETT는 또한 처리될 문자열의 수 및 각 문자열에서 바이트의 수를 정의하는 표시자들을 포함하도록 생성된다. 단계(822)에서 CIT, EIT 및 ETT 정보의 식별과 조립을 가능케 하는 데이터 식별자를 포함하는 MGT가 생성된다. MGT는 이전에 생성된 CIT, EIT 및 ETT에 대한 테이블 크기 정보를 또한 전달한다.
단계(825)에서는, 단계(805-822)에서 생성된 MGT, CIT, EIT와 ETT 및 설명자를 포함하는 프로그램 특정 정보가 형성된다. 단계(830)에서, 프로그램 특정 정보는 비디오 및 오디오 프로그램을 나타내는 다수의 서브-채널을 위한 요소들과 함께 출력을 위해 전송 스트림으로 포맷된다. 단계(835)에서는, 출력 전송 스트림은 예 를 들어 수신기, 비디오 서버, 또는 저장 매체 상에 녹화하기 위한 저장 장치와 같은 다른 장치에 전송하기에 적합하도록 더 처리된다. 단계(835)에서 수행된 처리는 데이터 압축 리드-솔로몬 인코딩, 인터리빙, 스크램블링(scrambling), 트렐리스 인코딩, 및 반송파 변조와 같은 공지된 인코딩 기능을 포함한다. 상기 처리는 단계(840)에서 완성 및 종료된다. 도 10의 처리에서, 다수의 CIT, EIT 및 ETT 테이블은 확장된 서브-채널 수를 수용하기 위하여 프로그램 특정 정보에 형성 및 포함될 것이다.
도 1의 구조는 국한적인 것은 아니다. 다른 구조들이 동일한 목적을 달성하기 위하여 본 발명의 원리에 따라 도출될 수 있을 것이다. 게다가, 도 1의 디코더(100)의 요소들의 기능 및 도 10의 처리 단계는 전체 또는 부분적으로 마이크로프로세서의 프로그램된 명령어 내에서 구현될 수 있을 것이다. 나아가, 본 발명의 원리는 임의 형태의 MPEG 또는 비-MPEG 호환 전자 프로그램 가이드에 적용된다. 본 발명의 원리에 따라 형성된 데이터스트림은 예를 들어 비디오 서버 또는 전화선을 통한 PC형 통신을 포함하는 다양한 응용들에 사용될 수 있을 것이다. 본 발명의 원리에 따라 프로그램 특정 정보를 포함하도록 형성된 비디오, 오디오 및 데이터 중 하나 이상의 요소들을 구비하는 프로그램 데이터스트림은 저장 매체 상에 녹화되고, 다른 서버, PCs 또는 수신기들에 전송 또는 재-방송될 것이다. 게다가, 본 명세서에서 "대역폭"이라는 용어는 예를 들어 주파수 스펙트럼에 한정하지 않고, 비트 전송율 용량을 포함하도록 광범위하게 해석되어야 할 것이다.