디코더는 영역(예를 들어, 지리적, 방송적, 또는 네트워크 마켓 영역)과 방송 예정 시간 모두에 따른 객체를 포함하는 프로그램 가이드 정보를 병합(collate)하기 위한 데이터를 획득한다. 디코더는 특정 영역과 방송 시간을 프로그램 가이드 정보와 연관시키는 채널 및 프로그램 맵 정보를 포함하는 병합 데이터를 사용하여 프로그램 가이드 정보를 병합한다. 디코더는 사용자 선택 입력에 응답하여 다른 영역과 연관된 적어도 두 개의 이용 가능한 프로그램 가이드로부터 선택된 프로그램 가이드를 제공하기 위해 프로그램 가이드 정보를 병합한다. 병합된 프로그램 가이드 정보는 디스플레이를 위해 처리된다.
디지털 포맷으로 전송되는 방송 프로그램은 프로그램과 관련 데이터를 디코딩하는데 사용하는 프로그램 특정 정보(PSI : Program Specific Information)를 포함하는 부수적 정보(ancillary programs)와 함께 인코딩 되고 방송된다. 프로그램 특정 정보는 선택된 프로그램 채널의 내용을 재생(recover)하기 위해 개개 데이터 패킷을 식별하고 어셈블(assemble)시키는데 사용하는 프로그램 가이드 데이터 및 정보를 포함한다. 프로그램 특정 정보 및 관련 프로그램 내용은, 예를 들어 전체 대륙, 국가(countries) 또는 주(states)와 같은 광역의 지리 영역을 커버하는 잠재적으로 수천 개의 방송 프로그램 채널과 관련 멀티미디어 객체에 관한 정보를 전송하는 대형의 프로그램 가이드를 전송하도록 유리하게 구조화되어 있다. 멀티미디어 객체(the multimedia objects)는 오디오 클립(audio clips), 비디오 클립, 애니메이션, 정지 화상(still images), 인터넷 데이터, 이메일 메시지, 텍스트 및 다른 형태의 데이터를 포함한다. 멀티미디어 객체는, 독립 유닛으로 볼 수 있는 데이터 실체(data entities)이며 개개 프로그램 내의 화상 또는 프로그램 가이드 성분과 연관되어 있다. 멀티미디어 객체는 예를 들어 프로그램 가이드 또는 비디오 프로그램을 나타내는 복합 비디오 화상으로 통합(incorporate)된다. 부수적 정보 데이터 구조는 일방향 통신 애플리케이션, 예를 들면, 수동형 보기 기능과 양방향 통신 애플리케이션, 예를 들면, 대화형 타입 기능을 지원하며 또한 저장 애플리케이션도 지원한다.
프로그램 특정 정보 및 관련 프로그램 내용은, 방송/멀티캐스트 모드(broadcast/multicast mode)에서 인터넷을 통해, 또는 예약이나 시청에 대한 유료 요금((a subscription or other pay per view basis)으로 지상, 위성 또는 케이블 방송을 통해 여러 서비스 제공자에 의해 전송될 수 있다. 데이터 구조는 여러 데이터 포맷으로 인코딩된 멀티미디어 객체의 획득과 디코딩을 용이하게 하며 이 객체는 로컬 및 원격 소스(local and remote sources) 모두로부터 여러 통신 프로토콜로 통신된다.
이후 명세서에서, MPEG 호환으로 언급되는 데이터는 "MPEG 표준"이라고 하는 MPEG2(Moving Pictures Expert Group) 화상 인코딩 표준에 따른다. 이 표준은 시스템 인코딩 섹션(ISO/IEC 13818-1, 1994년 6월, 제 10판)과 비디오 인코딩 섹션(ISO/IEC 13818-2, 1995년 1월, 20판)으로 구성된다.
본 발명의 원리에 따르는 데이터 구조 요소는 (MPEG 시스템 표준의 섹션 2.4.4에 의하여) MPEG 호환 포맷으로 전송될 수 있으며 또는 지상 방송 및 케이블을 위한 프로그램 및 시스템 정보 프로토콜(the Program and System Information Protocol for Terrestrial Broadcast and Cable){이후 명세서에서 PSIP 표준으로 언급되며, 1997년 11월 10일, 고화질 텔레비전 시스템 위원회(ATSC : Advanced Television Systems Committee) 발행}과 호환되는 포맷, 또는 다른 ATSC 표준과 호환되는 포맷으로 전송될 수 있다. 더욱이, 데이터 구조 요소는 MPEG-4 또는 MPEG-7 표준과 같은 다른 MPEG 표준에 따라 형성될 수 있으며 또는 특정 시스템의 독점 또는 주문 사양에 따라 형성될 수 있다.
본 발명의 원리는 코딩 타입이나 변조 포맷이 변화될 수 있는 지상, 케이블, 위성, 인터넷 또는 컴퓨터 네트워크 방송 시스템에 적용될 수 있다. 그러한 시스템은 예를 들어, 다른 타입의 인코딩 데이터스트림을 포함하는 비-MPEG 호환 시스템과 프로그램 특정 정보를 전송하는 다른 방법을 포함할 수 있다. 더욱이, 개시되는 시스템이 방송 프로그램을 처리하는 것으로 기술되어 있지만, 이것은 단지 예시적인 것이다. '프로그램'이라는 용어는 예를 들어 오디오 데이터, 전화 메시지, 컴퓨터 프로그램, 인터넷 데이터 또는 다른 통신 데이터와 같은 임의 형태의 패킷화된 데이터를 나타내는데 사용된다.
도 1 은 프로그램 특정 정보를 전송하는 트랜스포트 스트림 레벨 데이터 구조에 사용하기 위한 초대형 프로그램 가이드(VLPG : very large program guide) 계층 파일/표 포맷의 개요를 도시하는 도면이다. 이 구조는 다수의 계층적으로 배열되며 상호 링크된 표(multiple hierarchically arranged and inter-linked tables)를 포함한다. 이 표는 TV 채널, TV 프로그램, 채널 파라미터, 프로그램 파라미터, 관련 멀티미디어 객체 및 객체 파라미터 등의 집합 또는 순서를 나열하고 기술하는데 사용되는 데이터 및 파라미터의 어레이로 구성된다. 도 1 의 예시적인 계층적 표 배열은 마스터 가이드 표(MGT : Master Guide Table)(120), 마스터 데이터베이스 표(MDBT : Master Database Table)(122), 내용 및 분류 표(CCT : Content and Classification Table)(114), 시스템 시간 표(STT : System Time Table)(116) 및 등급 지역 표(RRT : Rating Region Table)(118)를 포함한다. 도 1 의 계층 조직은, 채널 정보가 네트워크 제공자, 예를 들면 CBS, NBC, HBO, 콤캐스트(Comcast) 등을 통해 병합되는 지상, 케이블, 및 위성 채널 정보 표(Terrestrial, Cable and Satellite Channel Information Tables){각각 TCIT 아이템(112), CCIT 아이템(110), 및 SCIT 아이템(108)}를 또한 도시한다. 추가적인 표는, 프로그램 또는 서비스가 소스에 의해 병합되는 예정 정보 표(Schedule Information Tables){SIT(106), SIT(104) 및 SIT(102)}를 포함한다.
MGT 는 다른 표에서 전송되는 프로그램 특정 정보를 획득하는데 사용되는 정보를 포함한다. 채널 정보 표 - CIT(예를 들어, TCIT, CCIT, 또는 SCIT)는 사용자 선택 프로그램 채널(a User selected program channel)을 수신하기 위해 동조하며 항해하기 위한 정보를 포함한다. SIT 는 CIT 에 리스트 된 채널에서 수신 가능한 프로그램{이벤트(events)}의 설명 리스트를 포함한다. CIT, SIT 또는 다른 표 중 어느 하나는 사용자가 특정 프로그램을 선택하고 특정 프로그램에 동조하게 하는 정보를 전송하는데 사용될 수 있다. CIT 는 몇몇 이벤트(TV 프로그램) 상에서 일정하게 유지되는 오디오비주얼 프로그램 내용 데이터를 획득하기 위한 파라미터를 전송하는데 일반적으로 사용된다. SIT 는 이벤트(개개 TV 프로그램)에 대하여 일정하게 유지되는 오디오비주얼 프로그램 내용 데이터의 파라미터를 전송하는데 일반적으로 사용된다. 계층 조직 표 내에 있는 아이템을 기술하고 보충하는 추가적인 프로그램 특정 정보는 기술자 정보 요소(descriptor information elements) 내에서 전송된다.
광역 프로그램 가이드(a wide area program guide)를 위해 충분한 데이터를 수용하기 위하여, 도 1 의 계층 조직에서 개개 표는 영역(예를 들어, 지리적, 방송적, 또는 네트워크 마켓 영역)과 예정 방송 시간 모두에 의해 유리하게 분할할 수 있다. 더욱이, 표 데이터는 예를 들어 디코딩 할 때 축척(scalability)을 가능하게 하기 위하여 데이터나 멀티미디어 객체의 복잡도 레벨과 같은 제 3 파라미터에 따라 추가적으로 분할될 수 있다. 이 타입의 프로그램 가이드 분할은 다이아그램(100)에 묘사되어 있는 3 차원 셀로 나타나 있다. 사실, 도 1 의 VLPG 구조는 가이드 제공자가 필요로 할 수 있는 사실상 임의 타입의 분할을 지원한다. 영역 및 시간 기반 분할은, 도 1 의 하나 이상의 표에서와 관련 객체 데이터에서 시간 및 영역 식별자 모두를 포함함으로써 달성된다. 이 방식으로 통신 프로토콜의 트랜스포트 레벨에서의 영역 및 시간 분할 식별자를 포함하는 이점은, 이것이 디코더에 {예를 들어 데이터를 파싱(parsing)하기 위한} 처리 부담(the processing burden)을 감소시킨다는 점인데, 그렇치 않은 경우 이 처리 부담은 분할이 더 상위 레벨, 즉 애플리케이션 계층 레벨에서 실행되면 일어난다. 그 결과, 프로그램 가이드 필터링은 트랜스포트 계층에서 실행되며 디코더 유닛에 포함된 트랜스포트 칩을 통해 직접 수행된다. 그러나, 원한다면 그러한 더 상위 레벨에서 표 데이터 및 객체 모두에 대해 시간 및 영역 식별자를 포함하는 것도 가능하다.
프로그램 가이드를 전송하며 처리할 때, 대역폭의 요구는 전송되어야 하는 관련 객체의 수, 및 채널과 프로그램 정보의 양에 따라 증가한다. 대형 프로그램 가이드에 대하여, 간단한 경우라도 수천 개의 정보와 객체 아이템을 전송할 필요가 있다. 간단한 프로그램 가이드는 화상, 오디오, 비디오 클립 중 어느 것도 가지지 않을 수 있지만, 전달되는 수천 개의 프로그램(이벤트)을 위한 적어도 텍스트 기술을 여전히 필요로 할 것이다. 단일 바이너리 또는 데이터 파일에서 중복 정보가 없으며 분할이 없이(without redundancy and without partitions) 프로그램 가이드 정보를 전송하는 것이 가능하다. 그러한 경우와 트랜스포트 레벨 분할이 없는 경우에, 텍스트 기술(예를 들면)은 단일 데이터 파일로 종료할 것이다. 이것은, 예를 들면 산 디에고(San Diego)에 있는 디코더는 미국의 모든 다른 도시로부터의 모든 자료(이벤트 텍스트 기술, 화상, 또는 임의의 다른 객체)를 수신할 수 있으며 트랜스포트 레벨에서 쓸모 없는 자료를 버릴(discard) 수 없을 것이라는 것을 의미한다. 결과적으로, 트랜스포트 레벨 분할이 없는 경우에, 디코더는 애플리케이션 레벨에서 수신된 프로그램 가이드 정보를 필터링하는 것이 필요하다. 이것은, 프로세서 집약적, 시간 소비적이며 부담되는 작업(a processor intensive, time-consuming and burdensome task)이 되며, 정교한 소프트웨어와 상당한 처리 능률을 요구하며 디코더 유닛의 비용을 증가시킨다.
도 1 의 VLPG 데이터 구조는 트랜스포트 계층 레벨에서 영역 기반 분할(area-based partitioning)을 사용하는 옵션을 유리하게 제공한다. 프로그램 가이드 정보는 예를 들어 동부영역(an Eastern area), 중부영역(a Central area), 산악영역(a Mountain area), 및 태평양 영역(a Pacific area)으로 분할될 수 있다. 그후 산 디에고에 있는 디코더는 다른 3 개의 지역으로부터 더 이상 프로그램 가이드 정보를 수신할 필요가 없게 될 것이다. 그러므로, 그러한 분할은 디코더에 대한 파싱 부담과 필터링 부담을 감소시키며 {예를 들어 각 하나의 주에 기초한(on a state by state basis)}더 작은 분할은 파싱 및 필터링 부담을 더 감소시킨다. 그러한 분할의 다른 이점은 적용 가능한 분할된 프로그램 가이드 정보를 다운로드 하는 것과 관련된 시간이 감소된다는 점이다.
그러나, 프로그램 가이드 정보를 분할하는 것은 복수의 프로그램 가이드 데이터를 도입하는 것을 포함하는데, 그 이유는 그러한 분할이 데이터 아이템의 복제성(duplication)을 필요로 하기 때문이다. 일례로서, 만약 야구 게임이 태평양 및 산악 지역에 방송되고 있다면, 관련 텍스트 기술 정보의 두 개의 복사본(two copies)이 전송되어야 하는데, 태평양 및 산악 지역을 목표로 하는 각 분할에 대하여 하나의 복사본이 할당된다. 분할의 수가 증가함에 따라 중복 정보의 양(the quantity of redundant information)도 또한 증가되어 더 많은 전송 대역폭을 필요로 한다는 것을 볼 수 있다. 결과적으로, 대역폭과 정보 필터링의 부담 사이에는 트레이드 오프(a trade-off) 관계가 있다. 많은 수의 분할은 정보의 필터링을 빠르게 하지만 대역폭의 증가를 요구한다는 것을 의미한다. 단지 하나의 분할만이 있을 때는 중복의 정보가 없으며 그리하여 대역폭이 최소가 되지만 필터링 부담은 더 커지는데, 그 이유는 모든 프로그램 가이드 정보 아이템이 파싱되어야 하기 때문이다.
시간 및 영역 셀은, MPEG2 PSI 및 DSM-CC 필드를 사용하여 MPEG-2 호환 데이터 구조로 매핑될 수 있다. 모든 표가 영역 기반 식별자(area-based identifiers)를 포함하여야 할 필요가 있는 것은 아니다. 예를 들어, 프로그램 내용 등급은 일반적으로 미국 어디에서나 적용 가능하다. 도 1 의 VLPG 구조에서, 영역 기반 분할을 채널 정보 표(CIT) 및 마스터 가이드 표에 적용함으로써 상당한 이점이 달성된다. CIT 는 서비스 제공자에 대한 채널 라인-업(the channel line-up)(이용 가능 채널 리스트)을 정의하고 서비스 제공자가 커버하는 지리적 영역에 의존한다. 인디애나폴리스에 있는 지상 방송을 위한 채널 라인-업은 예를 들어 필라델피아에 있는 케이블 제공자에 대한 채널 라인-업과는 다르다. 도 1 의 시스템에서, MGT 는 지리적 영역에도 의존하지만 이것이 반드시 그 경우이지는 않다.
프로그램 가이드 정보를 특정 청취자(audiences)에게로 집중되는 목표 설정을 수행하는 성능은 방송 마켓 레벨에서 채널 라인-업의 미세 영역 기반 구분(fine area-based divisions)을 만들 수 있는 것으로부터 유도된 하나의 이점이다. 이것을 달성하기 위하여, 여러 표의 "실례(instances)"가 만들어져 있다. 표의 실례(a table instance)는, 특정 마켓 영역으로 목표가 정해지며 적용 가능 마켓 영역을 식별하는 영역 식별자를 통합하는 표의 버전(a version)이다. 단일 표의 다수의 실례는 각각이 다른 정보를 전송하며 동시에 전송될 수 있다. 다른 표의 실례는 MPEG-2 프로토콜의 "표_아이디_확장(table_id_extension)" 필드를 사용하여 인식된다.
도 2 및 도 3 은 마켓 영역 식별을 위하여 프로그램 특정 정보를 전송하며 표_아이디_확장 필드를 통합하는데 사용하기 위한 마스터 가이드 표(MGT) 포맷과 채널 정보 표(CIT) 포맷을 각각 도시한다. 도 2의 MGT와 도 3 의 CIT에서, 이 마켓 영역 식별 필드는 "네트워크_제공자(network_provider)"라고 하며 아이템(130)으로서 MGT 데이터 구조와 아이템(140)으로서 CIT 데이터 구조로 도시되어 있다. 네트워크_제공자 영역 식별자 필드는 네트워크 제공자를 고유하게 식별하는데 사용되는 16-비트 필드이다. 네트워크 제공자의 의미는 전송 매체에 달려 있다. 구체적으로, 지상 방송에 대하여, 네트워크 제공자는 지리적 지역 내의 방송국의 집합이며, 케이블 방송에 대하여, 네트워크 제공자는 로컬 케이블 서비스 제공자이며, 또한 위성 방송에 대하여, 네트워크 제공자는 위성 서비스 제공자이다.
도 1 의 데이터 구조는 유리하게도 여러 타입의 프로그램 특정 정보 및 프로그램 가이드 정보가 여러 영역으로 목표가 정해지도록 한다. 이 특성은 프로그램 가이드 데이터를 방송하고 수신하는 것과 연관된 디코더 복잡도와 처리 대역폭 사이의 수용 가능한 절충점을 선택하는데 유연성(flexibility)을 준다. 일례로서, 채널 라인-업 정보보다 더 넓은 영역(coarser areas)으로 멀티미디어 객체를 분할하는 것도 수용 가능할 수 있다. 도 1 의 데이터 구조는, 가이드 제공자에게 넓은 영역으로부터 미세 영역{예를 들어, 국가(countries), 주(states), 또는 군(counties)과 같이 큰 영역에서 도시, 읍, 도시 블록(city blocks) 또는 심지어 개개 고객과 같은 미세 영역까지}까지 범위가 정해지는 여러 영역 등급(different gradations of area)으로 여러 타입의 데이터를 분할하는 능력을 준다.
더욱이, 프로그램 가이드 정보는 다른 영역(예를 들어, 두 개의 이웃 영역 사이 또는 임의의 이용 가능 영역으로부터 가이드의 선택), 또는 여러 시기의 방송 시간(different periods of broadcast time)에 대한 프로그램 가이드 사이에 대한 선택을 사용자에게 주도록 디코더에서 병합될 수 있다. 그러한 것으로서, 프로그램 가이드는 원격 유닛 또는 다른 데이터 엔트리 장치를 통해 사용자 선택 입력에 응답하여, 여러 영역과 연관된 하나 이상의 이용 가능 프로그램 가이드로부터 디코더에서 선택될 수 있다. 그러한 선택을 수행할 때 디코더는 (수신된 프로그램 가이드 정보와 연관된) 지역 식별 지정을 디코더 위치를 나타내는 미리 저장된 지역 식별 지정과 비교한다. 그러한 지역 식별 지정은 우편 코드, 전화 지역 코드, 및 임의의 다른 지역 식별 코드를 포함할 수 있다.
도 4 는 VLPG 내의 객체를 전송하는 멀티미디어 객체 데이터 구조 포맷을 도시하는 도면이다. 멀티미디어 객체 데이터 구조는 MPEG DSM-CC 호환 카루젤Id 식별자{도 4에서 아이템(150)} 내의 영역 및 시간 식별자 필드의 사용을 통해 영역 및 시간 기반 분할(area and time based partitioning)을 지원한다.
도 5, 도 6 및 도 7 은 채널, 이벤트, 및 제어 객체를 각각 포함하는 객체 데이터 구조의 예를 도시한다. 구체적으로, 도 5 는 채널 기반 정보 파일(Channel Basic Information File)(채널 BIF) 바이너리 파일을 도시하고, 도 6 은 이벤트 기반 정보 파일(Event Basic Information File)(이벤트 BIF) 바이너리 파일을 도시하며 도 7 은 제어 기반 정보 파일(Control Basic Information File)(제어 BIF) 바이너리 파일을 도시한다. 도 4 와 유사한 방식으로, 도 5 내지 도 7 의 채널, 이벤트, 및 제어 객체 데이터는 MPEG DSM-CC 호환 카루젤Id(carouselId) 식별자{각각, 도 5 내지 도 7의 아이템(153, 157, 및 159)} 내의 영역 및 시간 식별자 필드(area and time identifier fields)를 포함한다.
도 8의 아이템(152)은 (도 4, 도 5, 도 6, 및 도 7의 표에서 사용된 바와 같은) MPEG 호환 카루젤Id에 대한 예시적인 카루젤Id 데이터 구조를 도시한다. 카루젤Id는 데이터 베이스 기준(a data base reference)으로 사용하기 위한 16비트 디렉토리 아이템 식별자, 8비트 시간 식별자 및 8비트 영역 식별자를 포함한다. 이들 필드는 디코더로 하여금 영역 및 시간 기반 분할에 기초하여 선택적으로 프로그램 가이드 데이터를 필터링 하게 한다.
도 1 의 VLPG 데이터 구조에서, 마스터 데이터베이스 표{MDBT 아이템(122)}는 프로그램 가이드 분할(셀)을 정의하는데 사용되며 디코딩을 하기 위하여 디코더의 위치에서 이용가능한 셀을 디코더에 알려주는데 사용된다. 도 9 는 계층 기반 버전 식별자와 다이나믹 프로그램 가이드 재분할을 유리하게 가능하게 하는 셀 분할 식별자를 통합하는 마스터 데이터베이스 표 데이터 구조를 도시한다. 아이템(170 및 178) 사이의 코드는 분할된 셀을 정의하는 루프를 포함한다. 이 루프 내에서, "셀_타입(cell_type)"{아이템(172)}이라고 하는 필드는 도 10 에 도시되어 있는 셀의 인덱스를 결정한다.
도 10 의 아이템(179)은 셀 타입 지시자에 대한 예시적인 데이터 구조를 도시한다. 셀 타입 지시자는 객체의 복잡도 레벨을 정의하는데 사용되는 8비트 복잡도 레벨 식별자를 포함한다. 셀 타입 지시자는 8비트 영역 식별자와 영역 및 시간 기반 분할을 정의하는 8 비트 시간 식별자를 또한 포함한다.
개개 객체 또는 프로그램 가이드 정보 아이템은 마더 셀(mother cell)의 시간 및 영역 인덱스에 객체를 링크하기 위하여 {도 8에서 정의되고 도 4에서 아이템(150)으로 도시되어 있는} 카루젤Id를 포함한다. 다이나믹 프로그램 가이드 재분할은 MDBT에서 셀 리스트를 재배열하며 카루젤Id 내의 마더 셀 시간 및 영역 인덱스 식별자(the mother cell time and area index identifiers)에서의 다이나믹한 변경을 통해 달성된다. 결과적으로, 가이드 제공자는 이용 가능 전송 대역폭 또는 디코더 정교성의 변화에 적응하도록 프로그램 가이드 데이터 구조를 다이나믹하게 재분할할 수 있다. 가이드 제공자는 만약 증가된 대역폭이 이용 가능하다면 더 빠른 객체 필터링 시간(faster object filtering times)을 제공하도록 더 미세한 분할을 사용할 수 있으며 또는 만약 디코더 처리 성능이 향상된다면 대역폭을 유지(preserve)하도록 더 넓은 분할을 사용할 수 있다. 그러한 것으로서, 산 디에고에 있는 디코더는 영역(0 및 7)과 연관된 프로그램 가이드 정보에 현재 억세스할 수 있는 한편, 장래에 디코더는, 예를 들어, 더 미세한 분할을 반영하는 영역(0 및 9)과 연관된 프로그램 가이드 정보에 억세스할 수 있다. 차후에는 대역폭과 분할 사이의 적절한 절충선을 선택함으로써 미국 만큼 넓은 영역을 커버하는 가이드에 존재하는 멀티미디어 객체로 실시간 억세스를 제공하는 것도 전적으로 가능하게 될 것이다.
도 11 은 채널, 이벤트, 및 제어 서브 디렉토리 하의 객체 파일을 포함하는 객체 데이터베이스를 위한 계층적 디렉토리 포맷을 도시한다. 도 11 은 "이벤트2(event2)"와 같은 특정 이벤트가 필요한 파일을 포함하는 자신만의 디렉토리를 가질 수 있는데, 예를 들면 "이벤트2"는 4 개의 관련 객체{도 11에서 아이템(240, 242, 244, 및 246)}을 가지는 것을 도시한다. 객체 데이터베이스를 사용하여 디렉토리 기반 주소는 처리를 위해 트랜스포트 레벨 필드로 매핑된다. /VLPG/TIME1/AREA1/events/event2/event.bif와 같은 경로{도 11 의 디렉토리 아이템(220, 224, 228, 232, 238, 242)을 통한 경로}가 예를 들어 주어지는 경우, 특정 카루젤Id 및 모듈Id(a certain carouselId and moduleId)를 갖는 하나 밖에 없는 객체(one and only one object)가 존재한다. 예를 들어, 이 경우에, 다음의 매핑이 적용된다.
/VLPG -------------> VLPG 객체 데이터 베이스로부터 추출된 파일
/TIME1 ------------> 0x01(시간 변수)
/AREA1 ------------> 0x01(영역 변수)
/events/event2 ----> 0x3005 (디렉토리 번호 변수)
그러므로, 이 데이터베이스 주소는 0x01013005의 카루젤Id로 매핑된다. 더욱이, event.bif{아이템(242)}는 (이 예에서 0x0002의 값과 같은) 프로그램 가이드 정보로부터 결정될 수 있는 모듈Id를 갖는다. 트랜스포트 레벨 필드로부터 디렉토리 기반 주소로의 역 매핑도 고유하며 유사하게 유도될 수 있다.
도 11에서 예시되어 있는 디렉토리 구조는 전송된 객체를 처리하며 전송 객체와 대화하기 위한 소프트웨어 동작을 지원한다. 처리 소프트웨어는 객체와 함께, 파일 형태로 전송될 수 있으며 그후 디코더에 의해 해석되거나 컴파일되고 실행된다. 그러한 처리 소프트웨어는 HTML(Hyper Text Mark-up Language), SGML(Standar- dized Generalized Mark-up Language), Java, ActiveX 및 임의의 다른 디코더 지원 언어와 같은 언어로 디코더에서의 내용 기반 프로그램 가이드를 유리하게 생성시키기 위해 포함하는 수많은 애플리케이션에 사용될 수 있다. 일례로서, 일요일마다(each Sunday) 가이드 제공자는, 웹 브라우저를 포함하며 HTML 소프트웨어를 지원하는 디코더 유닛에 전송하기 위해 모든 이용 가능한 일요일 영화(all available Sunday movies)를 기술하는 웹 사이트를 작성하기를 원할 수 있다. 일요일 가이드 정보는 HTML로 인코딩되며 특별 웹 사이트를 기술하는 HTML 소프트웨어 파일로서 디코더에 전송된다. HTML 파일은 객체 데이터베이스의 디렉토리 구조 내 임의의 장소에 위치되며 특별 웹 사이트를 포함하는 일요일 영화 가이드 리스트를 형성하는 화상, 텍스트, 비디오, 및 오디오 파일을 함께 생성한다. 그렇게 함으로써, 일요일 가이드 웹 사이트는 객체 데이터베이스의 일부로서 방송되며 종래의 방식으로 인터넷 서버로부터 억세스 되지 않는다. 이 방식으로 전송될 수 있는 다른 특별 프로그램 가이드 웹 사이트는 예를 들면, (a) 재생에 이용 가능한 DVD/VCR 프로그램, (b) 다른 인터넷 웹 사이트, (c) 억세스를 위해 미리 저장되어 있는 팩스/전화 번호, (d) 비디오폰의 기능 및 (e) 가정용 기구의 제어 기능을 리스트 할 수 있다.
사용자는, 관련 디스플레이 된 메뉴 아이템 또는 디스플레이 아이콘을 선택하기 위해 원격 유닛 또는 다른 데이터 엔트리 장치를 사용하여 객체 데이터베이스에 포함된 특별 일요일 가이드 방송 웹 사이트의 디스플레이를 개시할 수 있으며 유사하게 방송 웹 사이트를 항해하며 광고된 영화(the advertised movies)를 검토할 수 있다. 더욱이, 사용자는 (a) VCR 또는 DVD 유닛을 프로그래밍 하는 것, (b) 원하는 채널로 동조하는 것, 또는 (c)객체 데이터베이스의 일부로서 유사하게 방송되거나 전화 선(또는 케이블 선)을 통해 종래 방식으로 억세스 되는 다른 인터넷 사이트에 억세스 하는 것과 같은, 웹 사이트를 통한 명령을 개시할 수 있다. 더욱이, 그러한 전화선(또는 케이블 선) 인터넷 억세스를 개시할 때, 디코더는 방송이나 다른 소스로부터 억세스 정보를 획득할 수 있다. 그러한 억세스 정보는 예를 들어, (a) 인터넷 URL, (b) 인터넷 IP 주소, (c) 이메일 주소, 및 (d) 전화/팩스/비디오폰 번호를 포함한다.
도 11의 계층적 디렉토리 구조는 도 1 의 VLPG 구조에 의하여 제공되는 다른 이점을 도시한다. 대형 프로그램 가이드에서, 구성 요소 표(constituent tables)와 객체의 업데이트를 관리하는 것은 많은 양의 버전 번호(a large quantity of version numbers)를 검사하는 것을 포함한다(수천 개의 버전 번호가 포함될 수 있다). 디코더는 버전 번호의 변경을 결정하는 즉시 특정 프로그램 가이드 표나 객체를 다운로드 하며 버전 번호 변경이 나타나 있지 않은 표나 객체를 버린다. 이 작업은 MGT와 같은 하나의 표 내에서 변화되기 쉬운 표와 객체의 모든 버전 번호를 리스트 하는 것으로써 촉진될 수 있다. MGT 는, 어떤 표나 객체가 변경되었는지를 결정하며 적절한 방식으로 변경된 표나 객체를 획득하기 위하여 디코더가 MGT를 검사하게 할만큼 충분히 빠른 속도로 방송된다. 그러나, MGT에서 매 엔트리를 파싱하는 것은 대형 가이드 구조에서 매우 시간이 소모될 수 있다.
이 문제는 버전 제어(version control)를 수행하는 몇몇 표가 존재하는 계층적 버전 제어 시스템을 사용하는 것으로써 해소된다. 이 표는 도 11 로 예시되어 있는 바와 같이 트리 구조로 배열되어 있다. 도 11에서, 표(238){이벤트2(event2)}는 표(238) 아래의 표/파일의 버전을 제어한다. 표(232){이벤트(events)}는 표{336(이벤트1), 및 238}의 모든 버전을 제어한다. 표(228){영역1(area1)}는 표{230{채널(channels)}, 232 및 236{제어(control)}의 버전만을 제어한다. 이 방식으로, 각 표에 저장된 버전 번호 정보는 적으며(small) 위에서 아래까지 트리를 횡단하는 것으로써, 업데이트 하여야 하는 파일, 표 또는 객체를 빠르게 찾는 것이 가능하다.
비록 멀티미디어 레벨 구조가 위에 설명되어 있을지라도, 두 개의 계층 버전 제어 구조가 도 1 의 VLPG 의 데이터베이스에서 객체의 버전 제어에 또한 사용될 수 있다. 두 계층 예에서, 트리 계층 조직의 상위 계층은 도 9에 예시된 바와 같이 마스터 데이터베이스 표(MDBT)이다. MDBT 레벨 아래의 제 2 레벨은 도 5, 도 6 및 도 7에서 앞서 설명된 데이터 구조로 예시된 바와 같이 채널, 이벤트 및 제어 기반 정보 파일을 각각 포함하는 셀로 구성된다. 채널, 이벤트 또는 제어 파일 중 하나의 변경은 각 버전 번호, 아이템(160)(도 5), 아이템(163)(도 6) 및 아이템(167)(도 7)의 변경에 의해 신호가 보내진다(signaled). 더욱이, 채널, 이벤트 또는 제어 파일 버전 번호에서의 어느 하나의 변경은 그 다음 계층 (셀) 레벨 버전 번호의 변경으로 신호가 보내지는데, 즉 그러한 변경은 도 9 의 MDBT에서 버전 번호(176)에서의 변경에 의해 신호가 보내진다. 특정 예로서, 만약 (데이터베이스에서 하나의 화상인)채널 로고가 한 버전에서 다른 버전으로 변경된다면, 채널 BIF는 아이템(160)(도 5)에 이 변경을 반영할 것이다. MDBT 는 또한 셀 레벨에서 아이템(176)(도 9)에서의 변경을 신호할 것이다. 디코더는 먼저 MDBT를 검사하고 셀 버전 번호가 변경되었는지를 결정한 뒤 그 셀 내에서 변경된 객체를 식별하기 위해 BIF 파일을 검사한다.
도 9 의 마스터 데이터 베이스 표(MDBT) 구조는 대형 프로그램 가이드를 처리하는 다른 이점을 제공한다. 디코더 정교성과 복잡한 멀티미디어 객체를 처리하는 처리 능률 및 성능은 시간에 따라 진보한다. 예를 들어, 셋탑 박스 디코더의 제 1 세대는 비트 맵 형식으로 화상을 처리하는 것으로 크게 제한되었다. 그러나, 디코더의 더 새로운 새대는 JPEG, GIF 또는 다른 화상 포맷을 다운로드 하기 위해 압축 해제 소프트웨어를 사용할 수 있으며 차세대 포맷은 다수의 포맷으로 화상뿐만 아니라 영화 클립도 처리할 수 있을 것이다. 결과적으로, 디코더 축척성(decoder scalability)을 지원하기 위해 프로그램 가이드 데이터를 구조화하는 것, 즉 일정 범위로 가변하는 복잡도를 가지는 디코더로 하여금 디코더에게 부여된 처리 능률의 레벨을 사용하여 프로그램 가이드 정보를 처리하게 하는 것이 바람직하다. 이것에 의하여, 낮은 복잡도의 디코더는 디코더가 처리할 수 있는 객체를 식별하며 그 처리 성능을 초과하는 객체를 버릴 수 있다. 그렇게 하지 않으면, 높은 복잡도의 객체가 버퍼 오버플로우나 다른 문제를 야기하여 낮은 복잡도의 디코더 동작을 손상시킬 수 있다.
도 9( 및 도 10)의 MDBT 데이터 구조는 디코더 유닛에 있는 효과적인 멀티미디어 객체 복잡도 판별을 유리하게 지원한다. 이 목적을 위해, MDBT 는 패킷 식별자(PID : packet identifier) 값을 데이터베이스에 있는 셀에 할당한다. 도 9에서, 아이템(172)은 특정 셀을 식별하고 아이템(174)에 의하여 PID 값과 연관된다. 더욱이, 아이템(172)은 셀의 시간, 영역, 및 복잡도 좌표를 정의하는 24비트 필드 셀_타입을 정의한다(도 10 참조). 그러한 것으로서, 객체 복잡도 레벨 지시자는 MPEG-2 호환 트랜스포트 계층 필드에 포함된다. 이것에 의하여 다른 복잡도 레벨에 속하는 데이터 베이스에 있는 객체는 다른 PID 로 식별된 스트림으로 전송된다. 디코더에는 복잡도 레벨이 미리 할당되고 디코더는 미리 할당된 디코더 복잡도 레벨과 일치하거나 그 레벨 아래에 있는 복잡도 레벨을 가진 그들 셀에 대한 PID 값을 선택하며 캐쉬(caching)시키는데 MDBT{구체적으로 아이템(172)}를 적용한다.
도 12 는 본 발명에 따라 프로그램 특정 정보를 형성하는 방법에 관한 흐름도를 도시한다. 도 12 의 방법은 MGT, MDBT, CCT, STT, RRT, TCIT, CCIT, SCIT 및 SIT 데이터를 포함하는 프로그램 특정 정보와 앞서 기술된 유리한 특징을 포함하는 기술자를 생성시킨다. 본 발명은 프로그램 가이드 데이터를 방송하기 위하여 인코더에 사용될 수 있거나 다른 장치에 전송하기 위하여 디코더 유닛 내에 프로그램 가이드 데이터를 인코딩하기 위해 사용될 수 있다.
도 12 의 단계(250)에서 시작한 후, 단계(253)에서, 앞서 기술된 데이터 구조화 원리에 기초한 방법은 프로그램 특정 정보를 분할하기 위해 선택된다. 본 프로그램 특정 정보는 시간 세그먼트와 영역, 네트워크 타입, 복잡도 레벨, 셀 및 프로그램(이벤트)에 따라 분할된다. 단계(255)에서, PID 값은 분할된 프로그램 특정 정보를 수용하기 위해 할당된다. 만약 비-MPEG 트랜스포트 프로토콜이 사용된다면, PID 값들은 논리 채널을 식별하는 적당한 파라미터로 대체될 수 있다. 단계(257)에서, MGT 및 MDBT(또는 다른 타입의 제어 표)가 분할 동작 동안 형성된 것들을 포함하기 위해 생성된다. MGT 는 다른 표에 전송된 프로그램 특정 정보를 획득하는데 사용되는 정보를 전송한다. MDBT 는 트랜스포트 스트림으로부터 멀티미디어 객체를 획득하는데 사용되는 정보를 전송한다.
단계(260)에서, 개개 CCT, STT, RRT, TCIT, CCIT, SCIT 및 SIT 등의 표는 분할된 구조에 따라 형성된다. 개개 표는 앞서 기술된 본 발명의 원리에 따라 유도된 멀티미디어 객체 링크, 버전 번호 및 식별자를 포함한다. CIT(예를 들어, TCIT, CCIT, 및 SCIT)는 특정 채널 상에서 전달되는 개개 프로그램을 구성하는 개개 패킷화된 데이터스트림을 식별하기 위한 패킷 식별자를 포함하는 이용 가능한 방송 프로그램과 채널의 획득을 가능하게 하는 프로그램 식별 정보와 채널을 포함하게 형성된다. 더욱이, 단계(260)에서, SIT 는 CIT에서 리스트 된 채널 상에서 수신 가능한 프로그램(이벤트)의 설명 리스트를 포함하는 프로그램 가이드 예정 정보를 포함하여 생성된다.
단계(263)에서, 관련 멀티미디어 객체와 함께, 단계(260)에서 형성된 표는 희망하는 데이터 포맷과 프로토콜과 호환 가능하게 포맷된다. 그러한 데이터 포맷과 프로토콜은 예를 들어 MPEG2 호환 프로그램 특정 정보, MPEG2 DSM-CC, DSS, 및 인터넷 호환 파일 전송 포맷을 포함한다. 단계(265)에서, 최종 포맷된 표와 멀티미디어 객체는 지상 전송을 위해 지정된 위치의 데이터스트림으로 통합된다. MGT 및 MDBT 는 단계(267)에서 데이터스트림으로 통합된다.
단계(270)에서, 다수의 채널에 대한 비디오 및 오디오 프로그램을 나타내는 성분( 및 다른 데이터)과 함께, 단계(267)에서 생성된, 프로그램 특정 정보는 출력을 위해 트랜스포트 스트림으로 다중화되고 포맷된다. 단계(270)에서, 출력 트랜스포트 스트림은 수신기, 비디오 서버, 또는 예를 들어 저장 매체 상에 저장하기 위한 저장 장치와 같은 다른 장치에 지상 전송을 위해 적당하게 더 처리된다. 단계(270)에서 수행된 프로세스는 데이터 압축 리드 솔로몬 인코딩, 인터리빙, 스크램블링, 트렐리스(trellis) 인코딩, 및 반송파 변조와 같은 공지된 인코딩 기능을 포함한다. 이 프로세스는 완료되고 단계(275)에서 종료된다. 도 12의 프로세스에 있어서, 다수의 CIT, SIT 및 관련 확장 표는 확장된 수의 채널을 수용하기 위하여 프로그램 특정 정보에 형성되고 포함될 수 있다. 더욱이, 다른 실시예에서, 이 표는 예를 들어 위성, 케이블 또는 인터넷 전송을 위해 유사하게 처리될 수 있다.
도 13의 비디오 수신기 시스템에서, 방송 프로그램 내용을 나타내는 오디오, 비디오, 및 관련 데이터를 운반하는 신호로 변조된 방송 반송파는 안테나(10)에 의하여 수신되고 유닛(13)으로 처리된다. 최종 디지털 출력 신호는 복조기(15)로 복조된다. 유닛(15)으로부터 복조된 출력은 디코더(17)에 의해 트렐리스 디코딩되고, 바이트 길이 데이터 세그먼트로 매핑되며, 역인터리빙 및 리드 솔로몬 에러 정정된다. 유닛(17)으로부터의 정정된 출력 데이터는 프로그램을 나타내는 다중화된 오디오, 비디오, 및 데이터 성분을 MPEG 호환 트랜스포트 데이터스트림의 형태로 존재한다. 유닛(17)으로부터의 트랜스포트 스트림은 유닛(22)에 의하여 오디오, 비디오, 및 데이터 성분으로 역다중화되고, 디코더 시스템(100)의 다른 요소에 의해 더 처리된다. 한 모드에서, 디코더(100)는 유닛(50 및 55) 상에 각각 디스플레이 및 오디오 재생을 위해 MPEG 디코딩 된 데이터를 제공한다. 다른 모드에서, 유닛(17)으로부터의 트랜스포트 스트림은 저장 장치(90)를 통해 저장 매체(105)에 저장하기 위해 MPEG 호환 데이터스트림을 제공하기 위해 디코더(100)로 처리된다.
사용자는 원격 제어 유닛(70)을 사용하여 TV 채널(사용자 선택된 채널-SC) 또는 프로그램 가이드와 같은 온-스크린 메뉴 중 하나를 시청하기 위해 선택한다. 제어기(60)는 시청을 위해 희망하는 프로그램 채널을 수신하기 위해 도 13의 요소를 적절히 구성하도록 인터페이스(65)를 통해 원격 제어 유닛(70)으로부터 제공된 선택 정보를 사용한다. 제어기(60)는 프로세서(62)와 프로세서(64)를 포함한다. 유닛(62)은 프로그램 가이드 정보를 포함하는 프로그램 특정 정보와 시스템 타이밍 정보를 처리(즉 파싱, 병합, 및 어셈블)한다. 프로세서(64)는 디코더(100)를 동작시키는데 필요한 나머지 제어 기능을 수행한다. 비록 유닛(60)의 기능이 도 13에 묘사된 바와 같은 개별 요소(62 및 64)로서 구현될 수 있을지라도, 그 요소들은 대안적으로 단일 프로세서로 구현될 수 있다. 예를 들어, 유닛(62 및 64)의 기능은 마이크로프로세서의 프로그래밍된 명령 내에 포함될 수 있다.
제어기(60)는 입력 신호 포맷과 코딩 타입을 복조하고 디코딩하기 위해 프로세서(13), 복조기(15), 디코더(17), 및 디코더 시스템(100)을 구성한다. 더욱이, 제어기(60)는 케이블 TV(CATV) 신호를 수신하기 위한 것과 같은 다른 통신 모드 및 동축선(14)을 통해 양방향성 통신 또는 예를 들어 전화선(11)을 통해 양방향성(예를 들어 인터넷) 통신을 위한 유닛(13, 15, 및 17)을 구성한다. 아날로그 비디오 모드에 있어서, NTSC 호환 신호는 유닛(13, 15, 17)으로 수신되고 유닛(50 및 55) 상에 비디오 디스플레이 및 오디오 재생을 위해 디코더(100)로 각각 처리된다. 유닛(13, 15, 17) 및 디코더(100) 내의 서브 유닛은 양방향성 데이터와 제어 신호 버스(C)를 사용하여 이들 요소 내의 제어 레지스터 값을 설정하는 제어기(60)에 의해 입력 신호 타입을 위해 개별적으로 구성된다.
디코더(100)에 제공된 트랜스포트 스트림은 프로그램 채널 데이터와 부수 시스템 타이밍 정보를 포함하는 데이터 패킷 및 프로그램 가이드 정보를 포함하는 프로그램 특정 정보를 포함한다. 유닛(22)은 부수적인 정보 패킷을, (도 1 에 예시되어 있는 바와 같이) 이 정보를 앞서 기술된 계층 조직으로 배열된 표로 파싱, 병합 및 어셈블(assemble)시키는 제어기(60)로 보낸다. 사용자 선택된 프로그램 채널(SC)을 포함하는 개개 데이터 패킷은 어셈블된 프로그램 특정 정보를 사용하여 식별되고 어셈블된다. 더욱이, 프로그램 특정 정보는 조건형 억세스, 네트워크 정보 및, 도 13의 시스템이 완전한 프로그램을 형성하기 위해 희망하는 채널로 동조하게 하고 데이터 패킷을 어셈블하게 하는 식별 및 링크 데이터를 포함한다. 프로그램 특정 정보는 부수적 정보의 식별과 어셈블리를 지원하는 데이터를 또한 포함한다.
프로그램 특정 정보 및 시스템 타이밍 정보는 제어기(60)에 의해 도 1 의 구조에 따른 다수의 계층 조직으로 배열되며 상호 링크된 표로 집합된다. STT 는 디코더가 방송 소스에 의하여 프로그램의 전송 시간을 설정하기에 충분한 시간 기준 지시자 및 관련 정정 데이터를 포함한다. MGT 는 다른 표와 연관된 데이터 패킷을 식별하기 위한 식별자와 같은 다른 표에서 전송된 프로그램 특정 정보를 획득하기 위한 정보를 포함한다. CIT(예를 들어, TCIT)는 사용자 선택된 프로그램 채널을 수신하기 위해 동조하며 항해를 위한 정보를 포함한다. SIT 는 CIT 에 리스트 된 채널 상에 수신 가능한 프로그램(이벤트)의 기술 리스트를 포함한다. RRT 는 MPAA(Motion Picture Association of America)와 같은 프로그램 내용 등급 정보 또는 지역(예를 들어, 국가 또는 미국 내의 주)에 의해 병합된 V-칩 호환 등급 정보를 포함한다. 계층 표 내에 있는 아이템을 기술하고 보충하는 부가적인 프로그램 특정 정보는 기술자 정보 요소 내에 전송된다. 유닛(22)을 통해 제어기(60)에 의해 획득된 프로그램 특정 정보 및 시스템 타이밍 정보는 유닛(60)의 내부 메모리 내에 저장되어 있다. 제어기(60)는 프로그램에 억세스 하는 조건과 프로그램 시청, 녹화 및 재생을 포함하는 프로그램 처리 기능을 스케쥴링(scheduling)할 때 획득된 프로그램 가이드 정보를 사용한다.
제어기(60)와 프로세서(22)는 CIT로부터 유닛(17)으로부터 디코더(100)에 입력된 패킷화되었으며 디코딩 된 트랜스포트 스트림에서 비디오, 오디오, 및 서브 픽처 스트림의 PID를 결정한다. 비디오, 오디오 및 서브 픽처 스트림은 선택된 채널(SC) 상에 전송되는 희망하는 프로그램을 구성한다. 프로세서(22)는 MPEG 호환 비디오, 오디오, 및 서브 픽처 스트림을 비디오 디코더(25), 오디오 디코더(35) 및 서브 픽처 프로세서(30)에 각각 제공한다. 이 비디오 및 오디오 스트림은 선택된 채널(SC) 프로그램 내용을 나타내는 압축 비디오 및 오디오 데이터를 포함한다. 서브 픽처 데이터는 채널(SC) 프로그램 내용과 연관된 SIT, CCT, 및 RRT 정보를 포함한다.
디코더(25)는 유닛(22)으로부터의 MPEG 호환 패킷화된 비디오 데이터를 디코딩하고 압축 해제하며 압축 해제된 프로그램을 나타내는 화소 데이터를 다중화기(40)를 통해 NTSC 인코더(45)에 제공한다. 유사하게 오디오 프로세서(35)는 유닛(22)으로부터의 패킷화된 오디오 데이터를 디코딩하고 관련 압축 해제된 비디오 데이터와 동기화된 상태로 디코딩되고 증폭된 오디오 데이터를 오디오 재생을 위해 장치(55)에 제공한다. 프로세서(30)는 유닛(22)으로부터 수신된 서브 픽처 데이터를 디코딩하고 압축 해제한다.
프로세서(30)는 OSD(37)에 출력하기 위한 포맷된 프로그램 가이드 데이터를 생성하기 위해 유닛(22)으로부터 RRT, CCT, CIT 및 데이터 객체를 어셈블, 병합, 및 해석한다. OSD(37)는 디스플레이 장치(50) 상에 표시하기 위해 선택 가능한 메뉴 옵션과 다른 아이템을 포함하는 서브타이틀, 제어, 및 정보 메뉴 디스플레이를 나타내는 화소 매핑된 데이터를 생성하도록 SIT, RRT, 및 CCT 및 다른 정보를 처리한다. 디스플레이되는 제어 및 정보 메뉴는 사용자로 하여금, a) 시청을 위해 선택된 프로그램을 수신하도록 동조하는 기능, b) 저장 매체(105)에 프로그램을 레코딩하는 기능, 및 c) 매체(105)로부터 프로그램을 재생하는 기능을 포함하는 장래 프로그램 처리 기능을 시청하고 스케쥴링하기 위해 프로그램을 선택하게 한다.
OSD 생성기(37)로 생성되는 텍스트와 그래픽을 포함하는 제어 및 정보 디스플레이는 제어기(60)의 지시 하에 오버레이 화소 맵 데이터의 형태로 생성된다. 유닛(37)으로부터의 오버레이 화소 맵 데이터는 제어기(60)의 지시 하에 다중화기(40)를 통해 인코더(45)에서 MPEG 디코더(25)로부터 압축 해제된 화소를 나타내는 데이터와 결합되고 동기화된다. 관련 서브 픽처 데이터와 함께 채널(SC)에 비디오 프로그램을 나타내는 결합된 화소 맵 데이터는 NTSC 인코더(45)에 의해 인코딩되고 디스플레이를 위해 장치(50)에 출력된다.
도 13 의 시스템의 저장 모드에서, 유닛(17)으로부터의 정정된 출력 데이터는 저장을 위해 MPEG 호환 데이터스트림을 제공하도록 디코더(100)에 의해 처리된다. 이 모드에서, 프로그램은 원격 유닛(70)과 인터페이스(65)를 통해 사용자에 의해 저장을 위해 선택된다. 프로세서(60)와 연계하여, 프로세서(22)는 MGT, MDBT, CCT, STT, RRT, TCIT, 및 SIT 데이터를 포함하는 간결한 프로그램 특정 정보 및 앞서 기술된 유리한 특성을 포함하는 기술자를 형성한다. 간결한 프로그램 특정 정보는 저장을 위해 선택된 프로그램의 디코딩을 지원하지만 관계없는 정보를 배제한다. 프로세서(22)와 연계하여 프로세서(60)는 선택된 프로그램과 관련된 간결한 프로그램 특정 정보의 패킷화된 내용 데이터를 포함하는 복합 MPEG 호환 데이터스트림을 형성한다. 복합 데이터스트림은 저장 인터페이스(95)에 출력된다.
저장 인터페이스(95)는 데이터에서의 갭과 비트율 변동을 감소시키기 위해 복합 데이터스트림을 버퍼링 한다. 최종 버퍼링 된 데이터는 저장 장치(90)에 의해 매체(105)에 저장하기에 적합하게 처리된다. 저장 장치(90)는 저장하기에 적합한 인코딩 된 데이터스트림을 생성하기 위해 채널 코딩, 인터리빙 및 리드 솔로몬 인코딩과 같은 공지된 에러 인코딩 기술을 사용하여 인터페이스(95)로부터 버퍼링 된 데이터스트림을 인코딩 한다. 유닛(90)은 매체(105) 상에 간결한 프로그램 특정 정보를 포함하는 최종 인코딩된 데이터스트림을 저장한다.