본 발명의 이들 및 다른 목적들, 이점들 및 특징들은 본 발명의 특정 실시예를 도시하는 첨부된 도면과 함께 다음의 상세한 설명으로부터 명백해질 것이다.
(실시 형태 1)
본 발명에 따른 케이블 텔레비전 시스템의 실시 형태를, 도면을 참조하면서 설명한다. 도 1은, 케이블 시스템을 구성하는 장치의 관계를 나타낸 블록도이고, 헤드엔드(101) 및 3개의 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)로 구성된다. 본 실시 형태에서는, 1개의 헤드엔드에 대해서 3개의 단말 장치가 결합되 어 있지만, 임의의 수의 단말 장치를 헤드엔드에 결합해도, 본 발명은 실시 가능하다.
헤드엔드(101)는, 다수의 단말 장치에 대해서 영상·음성·데이터 등의 방송 신호를 송신하는 동시에, 단말 장치로부터의 데이터 송신을 수신한다. 이것을 실현하기 위해서, 헤드엔드(101)와 단말 장치A(111), 단말 장치B(112), 단말 장치C(113) 사이의 전송에 이용되는 주파수 대역은, 분할하여 이용된다. 도 2는, 주파수 대역의 분할의 일례를 나타내는 표이다. 주파수 대역은, Out Of Band(약칭 OOB)와 In-Band의 2종류로 크게 대별된다. 5∼130㎒가 OOB에 할당되고, 주로 헤드엔드(101)와 단말 장치A(111), 단말 장치B(112), 단말 장치C(113) 사이의 데이터의 교환에 사용된다. 130㎒∼864㎒는 In-Band에 할당되고, 주로, 영상·음성을 포함하는 방송 채널에 사용된다. OOB에서는 QPSK 변조 방식이, In-Band는 QAM64 변조 방식이 사용된다. 변조 방식 기술에 대해서는, 본 발명에 관여가 약한 공지 기술이기 때문에, 상세한 설명은 생략한다. 도 3은, OOB 주파수 대역의 더욱 상세한 사용의 일례를 도시하는 도면이다. 70㎒∼74㎒는 헤드엔드(101)로부터의 데이터 송신에 사용되고, 모든 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)가, 헤드엔드(101)로부터 동일 데이터를 수취하게 된다. 한편, 10.0㎒∼10.1㎒는 단말 장치A(111)로부터 헤드엔드(101)로의 데이터 송신에 사용되고, 10.1㎒∼10.2㎒는 단말 장치B(112)로부터 헤드엔드(101)로의 데이터 송신에 사용되며, 10.2㎒∼10.3㎒는 단말 장치C(113)로부터 헤드엔드(101)로의 데이터 송신에 사용된다. 이것에 의해, 각 단말 장치 고유의 데이터를 각 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)로부터 헤드엔드(101)에 송신할 수 있다. 도 4는, In-Band의 주파수대에 대한 사용의 일례이다. 150∼156㎒와 156∼162㎒는 각각 텔레비전 채널(1)과 텔레비전 채널(2)에 할당되고, 이후, 6㎒ 간격으로 텔레비전 채널이 할당되어 있다. 310㎒ 이후는, 1㎒ 단위로 라디오 채널에 할당되어 있다. 이들 각 채널은 아날로그 방송으로서 사용해도 디지털 방송으로서 사용해도 좋다. 디지털 방송의 경우에는, MPEG2 사양에 기초한 트래스포트 패킷 형식으로 전송되고, 음성이나 영상에 더하여, 각종 데이터 방송용 데이터도 송신할 수 있다.
헤드엔드(101)는, 이들 주파수 대역에 적절한 방송 신호를 송신하기 위해서, QPSK 변조부나 QAM 변조부 등을 갖는다. 또, 단말 장치로부터의 데이터를 수신하기 위해서, QPSK 복조기를 갖는다. 또, 헤드엔드(101)는, 이들 변조부 및 복조부에 관련되는 다양한 기기를 갖는다고 생각된다. 그러나, 본 발명은 주로 단말 장치에 관한 것이기 때문에, 상세한 설명은 생략한다.
단말 장치A(111), 단말 장치B(112), 단말 장치C(113)는, 헤드엔드(101)로부터의 방송 신호를 수신하여 재생한다. 또, 헤드엔드(101)에 대해서, 각 단말 장치 고유의 데이터를 송신한다. 3개의 단말 장치는 본 실시 형태에서는 동일 구성을 취한다.
도 5은, 단말 장치의 하드웨어 구성을 나타내는 블록도이다. 500은 단말 장치이고, QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503), TS 디코더(505), 오디오 디코더(506), 스피커(507), 비디오 디코더(508), 디스플레이(509), 2차 기억부(510), 1차 기억부(511), ROM(512), 입력부(513), CPU(514), 스틸 디코 더(515), OSD 제어부(516), 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519), 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522), 합성부(523)로 구성된다. 또 단말 장치(500)에는, POD(504)를 착탈할 수 있다.
도 6은, 단말 장치(500)의 외관의 일례인 박형 텔레비전이다.
601은, 박형 텔레비전의 본체이고, POD(504)를 제외하고, 단말 장치(500)의 구성 요소의 전부를 내장하고 있다.
602는 디스플레이이고, 도 5에서의 디스플레이(509)에 상당한다.
603은 다수의 버튼으로 구성되는 프론트 패널부이고, 도 5의 입력부(513)에 상당한다.
604는 신호 입력 단자이고, 헤드엔드(101)와의 신호의 송수신을 행하기 위해서 케이블선을 접속한다. 신호 입력 단자는, 도 5의 QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503)와 접속되어 있다.
605는, 도 5의 POD(504)에 상당하는 POD 카드이다. POD(504)는, 도 6의 POD 카드(605)와 같이, 단말 장치(500)와는 독립한 형태를 취하고, 단말 장치(500)에 착탈 가능하게 되어 있다. POD(504)의 상세는 후술한다.
606은 POD 카드(605)를 삽입하는 삽입 슬롯이다.
도 5를 참조하여, QAM 복조부(501)는, CPU(514)로부터 지정된 주파수를 포함하는 튜닝 정보로, 헤드엔드(101)에서 QAM 변조되어 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
QPSK 복조부(502)는, CPU(514)로부터 지정된 주파수를 포함하는 튜닝 정보 로, 헤드엔드(101)로 QPSK 변조되어 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
QPSK 변조부(503)는, CPU(514)로부터 지정된 주파수를 포함하는 변조 정보로, POD(504)로부터 전해진 신호를 QPSK 변조하여, 헤드엔드(101)에 송신한다.
POD(504)는, 도 6과 같이 단말 장치 본체(500)로부터 착탈 가능한 형태를 하고 있다. 단말 본체(500)와 POD(504)의 접속 인터페이스는, OpenCable(TM) HOST-POD Interface Specification(OC-SP-HOSTPOD-IF-I12-030210) 및, 이 사양서로부터 참조되어 있는 사양서로 정의되어 있다. 여기에서는, 상세한 것은 생략하고, 본 발명에 관한 부분만을 해설한다.
도 7은, POD(504)의 내부 구성을 나타내는 블록도이다. POD(504)는, 제1 디스크램블러부(701), 제2 디스크램블러부(702), 스크램블러부(703), 제1 기억부(704), 제2 기억부(705), CPU(706)로 구성된다.
제1 디스크램블러부(701)는, CPU(706)로부터의 지시에 의해, 단말 장치(500)의 QAM 복조부(501)로부터 암호화된 신호를 수취하여, 복호를 행한다. 그리고, 복호된 신호를 단말 장치(500)의 TS 디코더(505)에 보낸다. 디코드에 필요한 열쇠 등의 정보는 CPU(706)로부터 적절히 부여된다. 구체적으로는, 헤드엔드(101)는 몇 개의 유료 채널을 방송하고 있다. 유저가, 이 유료 채널을 구매하면, 제1 디스크램블러부(701)는, CPU(706)로부터 열쇠 등의 필요한 정보를 수취하여 디스크램블함으로써, 유저는 유료 채널을 열람할 수 있다. 열쇠 등의 필요한 정보가 부여되지 않은 경우에는, 제1 디스크램블러부(701)는, 디스크램블을 행하지 않고, 수취한 신 호를 그대로, TS 디코더(505)에 보낸다.
제2 디스크램블러부(702)는, CPU(706)로부터의 지시에 의해, 단말 장치(500)의 QPSK 복조부(502)로부터 암호화된 신호를 수취하여, 복조를 행한다. 그리고, 복호된 데이터를 CPU(706)로 인도한다.
스크램블러부(703)는, CPU(706)로부터의 지시에 의해, CPU(706)로부터 수취한 데이터를 암호화하여, 단말 장치(500)의 QPSK 변조부(503)에 보낸다.
제1 기억부(704)는, 구체적으로는 RAM 등의 1차 기억 메모리로 구성되고, CPU(706)가 처리를 행할 때, 일시적으로 데이터를 보존하기 위해서 사용된다.
제2 기억부(705)는, 구체적으로는 플래시 ROM 등의 2차 기억 메모리로 구성되고, CPU(706)가 실행하는 프로그램을 격납하며, 또, 전원 OFF가 되어도 소거되어 서는 곤란한 데이터의 보존에 사용된다.
CPU(706)는, 제2 기억부(705)가 기억하는 프로그램을 실행한다. 프로그램은 다수의 서브 프로그램으로 구성된다. 도 8은, 제2 기억부(705)가 기억하는 프로그램의 일례이다. 도 8에서는, 프로그램(800)은, 메인 프로그램(801), 초기화 서브 프로그램(802), 네트워크 서브 프로그램(803), 재생 서브 프로그램(804), PPV 서브 프로그램(805) 등 다수의 서브 프로그램으로 구성되어 있다.
여기에서 PPV란 Pay Per View의 약자이고, 영화 등 특정한 프로그램을 유료로 시청할 수 있도록 하는 서비스이다. 유저가 암호 인증 번호를 입력하면, 구입한 것이 헤드엔드(101)에 통지되어, 스크램블이 해제되어, 시청할 수 있다. 이 시청에 의해, 유저는 후일, 구입 대금을 지불하는 것이다.
메인 프로그램(801)은, CPU(706)가 전원 투입시에 최초로 기동하는 서브 프로그램으로, 다른 서브 프로그램의 제어를 행한다.
초기화 서브 프로그램(802)은, 전원 투입시에 메인 프로그램(801)에 의해서 기동되고, 단말 장치(500)와의 정보 교환 등을 행하여, 초기화 처리를 행한다. 초기화 처리의 상세한 것은, OpenCable(TM) HOST-POD Interface Specification(OC- SP-HOSTPOD-lF-I12-030210) 및, 이 사양서로부터 참조되어 있는 사양서에 정의되어 있다. 또, 사양서에 정의되어 있지 않은 초기화 처리도 행한다. 여기에서는, 그 일부를 소개한다. 전원이 투입되면, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제1 주파수를 단말 장치(500)의 CPU(514)를 통해서, QPSK 복조부(502)에 통지한다. QPSK 복조부(502)는, 부여된 제1 주파수로 튜닝을 행하여, 신호를 제2 디스크램블러부(702)에 보낸다. 또, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제1 열쇠 등의 복호 정보를 제2 디스크램블러부(702)에 부여한다. 그 결과, 제2 디스크램블러부(702)는, 디스크램블을 행하여, 초기화 서브 프로그램(802)을 실행하는 CPU(706)에 인도한다. 따라서, 초기화 서브 프로그램(802)은 정보를 수취할 수 있다. 본 실시 형태에서는, 초기화 서브 프로그램(802)은 네트워크 서브 프로그램(803)을 통해서 정보를 수취하는 것으로 한다. 상세한 것은 후술한다.
또, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제2 주파수를 단말 장치(500)의 CPU(514)를 통해서, QPSK 변조부(503)에 통지한다. 초기화 서브 프로그램(802)은 제2 기억부(705)가 기억하는 암호화 정보를 스크램블러 부(703)에 부여한다. 초기화 서브 프로그램(802)이 송신하고 싶은 정보를, 네트워크 서브 프로그램(803)을 통해서, 스크램블러부(703)에 부여하면, 스크램블러부(703)는, 부여된 암호화 정보를 이용하여, 데이터를 암호화하여, 단말 장치(500)의 QPSK 변조부(503)에 부여한다. QPSK 변조부(503)는, 부여된 암호화된 정보를 변조하여, 헤드엔드(101)에 송신한다.
이 결과, 초기화 서브 프로그램(802)은, 단말 장치(500), 제2 디스크램블러부(702), 스크램블러부(703), 네트워크 서브 프로그램(803)을 통해서, 헤드엔드(101)와 쌍방향 통신을 행할 수 있다.
네트워크 서브 프로그램(803)은, 메인 프로그램(801), 초기화 서브 프로그램(802) 등의 다수의 서브 프로그램으로부터 사용되는, 헤드엔드(101)와의 쌍방향 통신을 행하기 위한 서브 프로그램이다. 구체적으로는, 네트워크 서브 프로그램(803)을 사용하는 다른 서브 프로그램에 대해서, TCP/IP에 의해서, 헤드엔드(101)와 쌍방향 통신을 행하도록 작동한다. TCP/IP는, 다수의 장치 사이에서 정보 교환을 행하기 위한 프로토콜을 규정한 공지의 기술이고, 상세한 설명은 생략한다. 네트워크 서브 프로그램(803)은, 전원 투입시에 초기화 서브 프로그램(802)에 기동되면, 미리 제2 기억부(705)가 기억하고 있는 POD(504)를 식별하는 식별자인 MAC 어드레스(Media Access Control 어드레스의 약자)를, 단말 장치(500)를 통해서 헤드엔드(101)에 통지하여, IP 어드레스의 취득을 요구한다. 헤드엔드(101)는, 단말 장치(500)를 통해서 POD(504)에 IP 어드레스를 통지하고, 네트워크 서브 프로그램(803)은, IP 어드레스를 제1 기억부(704)에 기억한다. 이후, 헤드엔드(101)와 POD(504)는, 이 IP 어드레스를, POD(504)의 식별자로서 사용하여, 통신을 행한다.
재생 서브 프로그램(804)은, 제2 기억부(705)가 기억하는 제2 열쇠 등의 복호 정보나, 단말 장치(500)로부터 부여되는 제3 열쇠 등의 복호 정보를 제1 디스크램블러부(701)에 부여하여, 디스크램블을 가능하게 한다. 또, 네트워크 서브 프로그램(803)을 통해서, 제1 디스크램블러부(701)에 입력되어 있는 신호가, PPV 채널인 것의 정보를 수취한다. PPV 채널이라고 알았을 때에는, PPV 서브 프로그램(805)을 기동한다.
PPV 서브 프로그램(805)은, 기동되면, 단말 장치(500)에 프로그램의 구입을 재촉하는 메시지를 표시하고, 유저의 입력을 수취한다. 구체적으로는, 단말 장치(500)의 CPU(514)에 화면에 표시하고 싶은 정보를 보내면, 단말 장치(500)의 CPU(514) 상에서 동작하는 프로그램이, 단말 장치(500)의 디스플레이(509) 상에 메세지를 표시한다. 유저는, 단말 장치(500)의 입력부(513)를 통해서 암호 인증 번호를 입력하면, 단말 장치(500)의 CPU(514)가, 그것을 수취하여, POD(504)의 CPU(706) 상에서 동작하는 PPV 서브 프로그램(805)에 통지한다. PPV 서브 프로그램(805)은, 수취한 암호 인증 번호를 네트워크 서브 프로그램(803)을 통해서 헤드엔드(101)에 송신한다. 헤드엔드(101)는, 암호 인증 번호가 정확하면, 복호에 필요한 제4 열쇠 등의 복호화 정보를 네트워크 서브 프로그램(803)을 통해서, PPV 서브 프로그램(805)에 통지한다. PPV 서브 프로그램(805)은 수취한 제4 열쇠 등의 복호화 정보를 제1 디스크램블러부(701)에 부여하고, 제1 디스크램블러부(701)는 입력되어 있는 신호를 디스크램블한다.
도 5를 참조하여, TS 디코더(505)는, POD(504)로부터 수취한 신호의 필터링을 실시하여, 필요한 데이터를 오디오 디코더(506) 및 비디오 디코더(508), CPU(514)에 인도한다. 여기에서, POD(504)로부터 오는 신호는 MPEG2 트랜스포트 스트림이다. MPEG2 트랜스포트 스트림의 상세한 것은 MPEG 규격서 ISO/IEC13818-1에 기재되어 있고, 본 실시 형태에서는 상세한 것은 생략한다. MPEG2 트랜스포트 스트림은, 다수의 고정 길이 패킷으로 구성되고, 각 패킷에는, 패킷 ID가 붙여져 있다. 도 9는 패킷의 구성도이다. 900은 패킷이고, 고정 길이인 188바이트로 구성된다. 선두 4바이트가 헤더(901)에, 패킷의 식별 정보를 격납하고 있고, 나머지 184바이트가 페이로드(902)에, 송신하고 싶은 정보를 포함하고 있다. 903은, 헤더(901)의 내역이다. 선두로부터 12비트째∼24비트째까지의 13비트에 패킷 ID가 포함되어 있다. 도 10은 보내져 오는 다수의 패킷의 열을 표현한 모식도이다. 패킷(1001)은, 헤더에 패킷 ID「1」을 갖고, 페이로드에는 영상(A)의 1번째의 정보가 들어가 있다. 패킷(1002)은, 헤더에 패킷 ID「2」를 갖고, 페이로드에는 음성(A)의 1번째의 정보가 들어가 있다. 패킷(1003)은, 헤더에 패킷 ID「3」을 갖고, 페이로드에는 음성(B)의 1번째의 정보가 들어가 있다.
패킷(1004)은, 헤더에 패킷 ID「1」을 갖고, 페이로드에는 영상(A)의 2번째의 정보가 들어가 있으며, 이것은 패킷(1001)의 계속으로 되어 있다. 동일하게 패킷(1005, 1026, 1027)도 다른 패킷의 후속 데이터를 격납하고 있다. 이와 같이, 동일 패킷 ID를 갖는, 패킷의 페이로드의 내용을 연결하면, 연속한 영상이나 음성을 재현할 수 있다.
도 10을 참조하여, CPU(514)가 패킷 ID「1」과 출력처로서「비디오 디코더(508)」를 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수취한 MPEG2 트랜스포트 스트림으로부터 패킷 ID「1」의 패킷을 추출하여, 비디오 디코더(508)에 인도한다. 도 10에서는, 영상 데이터만을 비디오 디코더(508)에 인도하게 된다. 동시에, CPU(514)가 패킷 ID「2」와「오디오 디코더(506)」를 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수취한 MPEG2 트랜스포트 스트림으로부터 패킷 ID「2」의 패킷을 추출하여, 오디오 디코더(506)에 인도한다. 도 10에서는, 음성 데이터만을 오디오 디코더(506)에 인도하게 된다.
이 패킷 ID에 따라서 필요한 패킷만을 취출하는 처리가, TS 디코더(505)가 행하는 필터링이다. TS 디코더(505)는 CPU(514)로부터 지시된 다수의 필터링을 동시에 실행할 수 있다.
도 5를 참조하여, 오디오 디코더(506)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 오디오 데이터를 연결하여, 디지털-아날로그 변환을 행하여 스피커(507)에 출력한다.
스피커(507)는, 오디오 디코더(506)로부터 부여된 신호를 음성 출력한다.
비디오 디코더(508)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 비디오 데이터를, 비디오 버퍼(517)에 전개한다. 또, 동시에 비디오 데이터의 해상도나 4 : 3이나 16 : 9 등의 영상의 종횡비 등의 영상 정보를 판독하여, 영상 정보에 변화를 검지한다. 검지한 정보는, 후술하는 비디오 포맷 해상도 변경 검지부(3104)에 통지된다.
스틸 디코더(515)는, CPU(514)로부터 지시된 MPEG-I 프레임 데이터를, 스틸 버퍼(518)에 전개한다. MPEG2-I 프레임의 상세한 것은 MPEG 규격서 ISO/IEC13818-2에 기재되어 있고, 본 실시 형태에서는 상세한 것은 생략한다.
OSD 제어부(516)는, CPU(514)로부터의 지시된 그래픽스 데이터를, OSD 버퍼(519)에 전개한다.
비디오 확대 축소부(520)는, CPU(514)로부터 지시된 확대 축소 명령에 의해, 비디오 버퍼(517)에 전개되어 있는 데이터를 확대 축소하여 합성부(523)로 전해준다.
스틸 확대 축소부(521)는, CPU(514)로부터 지시된 확대 축소 명령에 의해, 스틸 버퍼(518)에 전개되어 있는 데이터를 확대 축소하여 합성부(523)로 전해준다.
OSD 확대 축소부(522)는, CPU(514)로부터 지시된 확대 축소 명령에 의해, OSD 버퍼(519)에 전개되어 있는 데이터를 확대 축소하여 합성부(523)로 전해준다.
합성부(523)는, CPU(514)로부터 지시된 각 플레인의 Z 오더에 따라서, 비디오 확대 축소부(520)로부터 전해진 데이터와 스틸 확대 축소부(521)로부터 전해진 데이터와 OSD 확대 축소부(522)로부터 전해진 데이터를 중첩하여, 디스플레이(509)에 출력한다. CPU(514)로부터 지시되는 각 플레인의 Z 오더에 관해서 설명하면, 일반적인 텔레비전 수신 단말은, 문자 도형을 표시하는 OSD 플레인, 비디오를 표시하는 비디오 플레인, 정지 화면을 표시하는 스틸 플레인의 3층 구조를 갖고 있으며, 그 중첩의 순서를 Z 오더라고 부른다. 예를 들면, 도 22에서 설명하면, 2201을 시청자측에서 봤을 때 전면에 보이는 제1 플레인, 2202를 2201의 배면인 제2 플 레인, 2203을 최배면인 제3 플레인으로 하면, 도 23과 같이 6패턴의 조합이 존재하게 된다.
디스플레이(509)는, 구체적으로는 브라운관이나 액정 등으로 구성되고, 비디오 디코더(508)로부터 부여된 비디오 신호를 출력하거나, CPU(514)로부터 지시된 메시지를 표시하거나 한다.
2차 기억부(510)는, 구체적으로는, 플래시 메모리나 하드 디스크 등으로 구성되고, CPU(514)로부터 지시된 데이터나 프로그램을 보존하거나 삭제하거나 한다. 또, 보존되어 있는 데이터나 프로그램은 CPU(514)에서 참조된다. 보존되어 있는 데이터나 프로그램은, 단말 장치(500)의 전원이 절단된 상태여도 계속 보존된다.
1차 기억부(511)는, 구체적으로는, RAM 등으로 구성되고, CPU(514)로부터 지시된 데이터나 프로그램을 일차적으로 보존하거나 삭제하거나 한다. 또, 보존되어 있는 데이터나 프로그램은 CPU(514)에서 참조된다. 보존되어 있는 데이터나 프로그램은, 단말 장치(500)의 전원이 절단되었을 때에, 말소된다.
ROM(512)은, 개서가 불가능한 메모리 디바이스이고, 구체적으로는 ROM이나 CD-ROM, DVD 등으로 구성된다. ROM(512)은, CPU(514)가 실행하는 프로그램이 격납되어 있다.
입력부(513)는, 구체적으로는, 프론트 패널이나 리모콘으로 구성되고, 유저로부터의 입력을 접수한다. 도 11은, 프론트 패널로 입력부(513)를 구성한 경우의 일례이다. 1100은 프론트 패널이고, 도 6의 프론트 패널부(603)에 상당한다. 프론트 패널(1100)은 7개의 버튼, 상부 커서 버튼(1101), 하부 커서 버튼(1102), 좌 측 커서 버튼(1103), 우측 커서 버튼(1104), OK 버튼(1105), 취소 버튼(1106), EPG 버튼(1107)을 구비하고 있다. 유저가 버튼을 가압하면, 가압된 버튼의 식별자가, CPU(514)에 통지된다.
CPU(514)는, ROM(512)이 기억하는 프로그램을 실행한다. 실행하는 프로그램의 지시에 따라서, QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503), POD(504), TS 디코더(505), 디스플레이(509), 2차 기억부(510), 1차 기억부(511), ROM(512)을 제어한다.
도 12는, ROM(512)에 기억되어, CPU(514)로 실행되는 프로그램의 구성도의 일례이다.
프로그램(1200)은, 다수의 서브 프로그램으로 구성되고, 구체적으로는 OS(1201), EPG(1202), JavaVM(1203), 서비스 매니저(1204), Java 라이브러리(1205)로 구성된다.
OS(1201)는, 단말 장치(500)의 전원이 투입되면, CPU(514)가 기동되는 서브 프로그램이다. OS(1201)는, 오퍼레이팅 시스템의 약자이고, Linux 등이 일례이다. OS(1201)은, 다른 서브 프로그램을 평행하게 실행하는 커넬(1201a) 및 라이브러리(1201b)로 구성되는 공지의 기술의 총칭이고, 상세한 설명은 생략한다. 본 실시 형태에서는, OS(1201)의 커넬(1201a)은, EPG(1202)와 JavaVM(1203)을 서브 프로그램으로서 실행한다. 또, 라이브러리(1201b)는, 이들 서브 프로그램에 대해서, 단말 장치(500)가 유지하는 구성 요소를 제어하기 위한 다수의 기능을 제공한다.
기능의 일례로서, 튜닝 기능을 소개한다. 튜닝 기능은, 다른 서브 프로그램 으로부터 주파수를 포함하는 튜닝 정보를 수취하여, 이것을 QAM 복조부(501)에 인도한다. QAM 복조부(501)는 부여된 튜닝 정보에 기초하여 복조 처리를 행하고, 복조한 데이터를 POD(504)에 인도할 수 있다. 이 결과, 다른 서브 프로그램은 라이브러리(1201b)를 통해서 QAM 복조기를 제어할 수 있다.
EPG(1202)는, 유저에게 프로그램 일람을 표시 및, 유저로부터의 입력을 접수하는 프로그램 표시부(1202a)와, 채널 선국을 행하는 재생부(1202b)로 구성된다. 여기에서, EPG는 Electric Program Guide의 약자이다. EPG(1202)는, 단말 장치(500)의 전원이 투입되면, 커넬(1201a)에 의해서 기동되거나, 기동된 EPG(1202)의 내부에서는, 프로그램 표시부(1202a)가 단말 장치(500)의 입력부(513)를 통해서, 유저로부터의 입력을 기다린다. 여기에서, 입력부(513)가 도 11에서 도시되는 프론트 패널로 구성되어 있는 경우, 유저가 입력부(513)의 EPG 버튼(1107)을 가압하면, EPG 버튼의 식별자가 CPU(514)에 통지된다. CPU(514) 상에서 동작하는 서브 프로그램인 EPG(1202)의 프로그램 표시부(1202a)는, 이 식별자를 수취하여, 프로그램 정보를 디스플레이(509)에 표시한다. 도 13(1) 및 (2)는, 디스플레이(509)에 표시된 프로그램 표의 일례이다. 도 13(1)을 참조하여, 디스플레이(509)에는, 격자 형상으로 프로그램 정보가 표시되어 있다. 열(1301)에는, 시각 정보가 표시되어 있다. 열(1302)에는, 채널명「채널(1)」과, 열(1301)의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다. 「채널(1)」에서는, 9:00∼10:30에 프로그램「뉴스 9」가 방영되고, 10:30∼12:00는「영화 AAA」가 방영되는 것을 나타낸다. 열(1303)도 열(1302)과 동일하게 채널명「채널 2」와, 열(1301)의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다. 9:00∼11:00에 프로그램「영화 BBB」가 방영되고, 11:00∼12:00는 「뉴스 11」이 방영된다. 1330은 커서이다. 커서(1330)는, 프론트 패널(1100)의 좌측 커서(1103)와 우측 커서(1104)를 가압하면 이동한다. 도 13(1)의 상태로, 우측 커서(1104)를 가압하면, 커서(1330)는 우측으로 이동하여, 도 13(2)와 같이 된다. 또, 도 13(2)의 상태로, 좌측 커서(1103)를 가압하면, 커서(1330)는 좌측으로 이동하여, 도 13(1)과 같이 된다.
도 13(1)의 상태로, 프론트 패널(1100)의 OK 버튼(1105)이 가압되면, 프로그램 표시부(1202a)는,「채널 1」의 식별자를 재생부(1202b)에 통지한다. 도 13(2)의 상태에서, 프론트 패널(1100)의 OK 버튼(1105)이 가압되면, 프로그램 표시부(1202a)는, 「채널 2」의 식별자를 재생부(1202b)에 통지한다.
또, 프로그램 표시부(1202a)는, 표시하는 프로그램 정보를, POD(504)를 통해서 헤드엔드(101)로부터 정기적으로, 1차 기억부(511)에 기억해 둔다. 일반적으로, 헤드엔드로부터의 프로그램 정보의 취득은 시간이 걸린다. 입력부(513)의 EPG 버튼(1107)이 가압되었을 때, 1차 기억부(511)에 미리 보존된 프로그램 정보를 표시함으로써, 신속하게 프로그램 표를 표시할 수 있다.
재생부(1202b)는, 수취한 채널의 식별자를 이용하여, 채널을 재생한다. 채널의 식별자와 채널의 관계는, 채널 정보로서, 2차 기억부(510)에 미리 격납되어 있다. 도 14는 2차 기억부(510)에 격납되어 있는 채널 정보의 일례이다. 채널 정보는 표 형식으로 격납되어 있다. 열(1401)은 채널의 식별자이다. 열(1402)은 채널명이다. 열(1403)은 튜닝 정보이다. 여기에서, 튜닝 정보는 주파수나 전송 레 이트, 부호화율 등을 포함하여, QAM 복조부(501)에 부여하는 값이다. 열(1404)은 프로그램 넘버이다. 프로그램 넘버란, MPEG2 규격으로 규정되어 있는 PMT를 식별하기 위한 번호이다. PMT에 관해서는 후술한다. 행(1411∼1414)의 각 행은, 각 채널의 식별자, 채널명, 튜닝 정보의 조가 된다. 행(1411)은 식별자가「1」, 채널명이「채널 1」, 튜닝 정보에 주파수「150㎒」, 프로그램 넘버가「101」을 포함하는 조로 되어 있다. 재생부(1202b)는, 채널의 재생을 행하기 위해서, 수취한 채널의 식별자를 그대로 서비스 매니저에게 인도한다.
또, 재생부(1202b)는, 재생 중에, 유저가 프론트 패널(1100)의 상부 커서(1101)와 하부 커서(1102)를 가압하면, 입력부(513)로부터 CPU(514)를 통해서, 가압된 통지를 수취하여, 재생하고 있는 채널을 변경한다. 우선, 재생부(1202b)는, 1차 기억부(511)에 현재 재생중인 채널의 식별자를 기억한다. 도 15(1) (2) 및 (3)은, 1차 기억부(511)에 보존되어 있는 채널의 식별자의 예이다. 도 15(1)에서는 식별자「3」이 기억되어 있고, 도 14를 참조하여, 채널명「TV3」의 채널이 재생 중인 것을 나타낸다. 도 15(1)의 상태에서, 유저가 상부 커서(1101)를 가압하면 재생부(1202b)는, 도 14의 채널 정보를 참조하여, 표 중의 앞의 채널인 채널명「채널 2」의 채널로 재생을 전환하기 위해서, 서비스 매니저에게 채널명「채널 2」의 식별자「2」를 인도한다. 동시에, 1차 기억부(511)에 기억되어 있는 채널 식별자「2」를 개서한다. 도 15(2)는, 채널 식별자가 개서된 상태를 나타낸다. 또, 도 15(1)의 상태에서, 유저가 하부 커서(1102)를 가압하면 재생부(1202b)는, 도 14의 채널 정보를 참조하여, 표 중의 다음 채널인 채널명「TV Japan」의 채널에 재 생을 전환하기 위해서, 서비스 매니저에게 채널명「TV Japan」의 식별자「4」를 인도한다. 동시에, 1차 기억부(511)에 기억되어 있는 채널 식별자「4」로 개서한다. 도 15(3)은, 채널 식별자가 개서된 상태를 나타낸다.
Java VM(1203)은, Java(TM) 언어로 기술된 프로그램을 순차적으로 해석하여 실행하는 Java 버츄얼 머신이다. Java 언어로 기술된 프로그램은 바이트 코드라고 불리는, 하드웨어에 의존하지 않는 중간 코드로 컴파일된다. Java 버츄얼 머신은, 이 바이트 코드를 실행하는 인터프리터이다. 또, 일부의 Java 버츄얼 머신은, 바이트 코드를 CPU(514)가 이해 가능한 실행 형식으로 번역한 후, CPU(514)에 인도하여, 실행하는 것도 행한다. JavaVM(1203)은, 커넬(1201a)에 실행하는 Java 프로그램을 지정하여 기동된다. 본 실시 형태에서는, 커넬(1201a)은, 실행하는 Java 프로그램으로서 서비스 매니저(1204)를 지정한다. Java 언어의 상세한 것은, 서적「Java Language Specification(ISBN 0-201-63451-1)」등의 많은 서적에 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다. 또, JavaVM 자체의 상세한 동작 등은, 「Java Virtual Machine Specification(ISBN 0-201-63451-X)」등의 많은 서적에 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다.
서비스 매니저(1204)는, Java 언어로 쓰여진 Java 프로그램이고, JavaVM(1203)에 의해서 순차적으로 실행된다. 서비스 매니저(1204)는, JNI(Java Native Interface)를 통해서, Java 언어로 기술되어 있지 않은 다른 서브 프로그램을 호출하거나, 또는, 호출되거나 하는 것이 가능하다. JNI에 관해서도, 서적 「Java Native Interface」등의 많은 서적에 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다.
서비스 매니저(1204)는, JNI를 통해서, 재생부(1202b)로부터 채널의 식별자를 수취한다.
서비스 매니저(1204)는, 최초로 Java 라이브러리(1205) 중에 있는 Tuner(1205c)에 채널의 식별자를 인도하여, 튜닝을 의뢰한다. Tuner(1205c)는, 2차 기억부(510)가 기억하는 채널 정보를 참조하여, 튜닝 정보를 획득한다. 현재, 서비스 매니저(1204)가 채널의 식별자「2」를 Tuner(1205c)에 인도하면, Tuner(1205c)는, 도 14의 행(1412)을 참조하여, 대응하는 튜닝 정보「156㎒,」를 획득한다. Tuner(1205c)는, OS(1201)의 라이브러리(1201b)를 통해서, QAM 복조부(501)에 튜닝 정보를 인도한다. QAM 복조부(501)는 부여된 튜닝 정보에 따라서 헤드엔드(101)로부터 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
다음에 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 CA(1205d)에 디스크램블을 의뢰한다. CA(1205d)는, OS(1201)의 라이브러리(1201b)를 통해서 복호에 필요한 정보를 POD(504)에 부여한다. POD(504)는, 부여된 정보를 기초로, QAM 복조부(501)로부터 부여된 신호를 복호하여 TS 디코더(505)에 인도한다.
다음에 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 JMF(1205a) 채널의 식별자를 부여하여, 영상·음성의 재생을 의뢰한다.
우선, 최초로 JMF(1205a)는, 재생해야 하는 영상과 음성을 특정하기 위한 패킷 ID를 PAT, PMT로부터 취득한다. PAT나 PMT는 MPEG2 규격에 규정되어 있는, MPEG2 트랜스포트 스트림 내의 프로그램 구성을 표현하는 테이블이고, MPEG2 트랜 스포트 스트림에 포함되는 패킷의 페이로드에 매입되어, 음성이나 영상과 함께 송신되는 것이다. 상세한 것은 규격서를 참조하기 바란다. 여기에서는, 개략만 설명한다. PAT는, Program Association Table의 약자로, 패킷 ID「0」의 패킷에 격납되어 송신되고 있다. JMF(1205a)는, PAT을 취득하기 위해서, OS(1201)의 라이브러리(1201b)를 통해서, TS 디코더(505)에 패킷 ID「0」과 CPU(514)를 지정한다. TS 디코더(505)가 패킷 ID「0」으로 필터링을 행하여, CPU(514)에 인도함으로써 JMF(1205a)는, PAT의 패킷을 수집한다. 도 16은, 수집한 PAT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1601)은 프로그램 넘버이다. 열(1602)은 패킷 ID이다. 열(1602)의 패킷 ID는 PMT을 취득하기 위해서 이용된다. 행(1611∼1613)은, 채널의 프로그램 넘버와 대응하는 패킷 ID의 조이다. 여기에서는, 3개의 채널이 정의되어 있다. 행(1611)은 프로그램 넘버「101」과 패킷 ID「501」의 조가 정의되어 있다. 현재, JMF(1205a)에 부여된 채널의 식별자가「2」라고 하면, JMF(1205a)는, 도 14의 행(1412)을 참조하여, 대응하는 프로그램 넘버「102」를 획득하고, 다음에, 도 16의 PAT의 행(1612)을 참조하여, 프로그램 넘버「102」에 대응하는 패킷 ID「502」를 획득한다. PMT는, Program Map Table의 약자로, PAT에서 규정된 패킷 ID의 패킷에 격납되어 송신되고 있다. JMF(1205a)는, PMT를 취득하기 위해서, OS(1201) 라이브러리(1201b)를 통해서, TS 디코더(505)에 패킷 ID와 CPU(514)를 지정한다. 여기에서, 지정하는 패킷 ID는「502」로 한다. TS 디코더(505)가 패킷 ID「502」로 필터링을 행하여, CPU(514)에 인도함으로써 JMF(1205a)는, PMT의 패킷을 수집한다. 도 17은 수집한 PMT의 정보의 일례를 모식 적에 나타낸 표이다. 열(1701)은 스트림 종별이다. 열(1702)은 패킷 ID이다. 열(1702)에서 지정되는 패킷 ID의 패킷에는, 스트림 종별로 지정된 정보가 페이로드로 격납되어 송신되고 있다. 열(1703)은 보충 정보이다. 행(1711∼1714)은 엘리멘터리 스트림이라고 불리는, 패킷 ID와 송신하고 있는 정보의 종별의 조이다. 행(1711)은, 스트림 종별「음성」과 패킷 ID「5011」의 조이고, 패킷 ID「5011」의 페이로드에는 음성이 격납되어 있는 것을 나타낸다. JMF(1205a)는, PMT에서 재생되는 영상과 음성의 패킷 ID를 획득한다. 도 17을 참조하여, JMF(1205a)는, 행(1711)으로부터 음성의 패킷 ID「5011」를, 행(1712)으로부터 영상의 패킷 ID「5012」를 획득한다.
다음에, JMF(1205a)는, OS(1201)의 라이브러리(1201b)를 통해서, 획득한 음성의 패킷 ID와 출력처로서 오디오 디코더(506), 영상의 패킷 ID와 출력처로서 비디오 디코더(508)의 조를 TS 디코더(505)에 부여한다. TS 디코더(505)는 부여된 패킷 ID와 출럭처에 기초하여 필터링을 행한다. 여기에서는 패킷 ID「5011」의 패킷을 오디오 디코더(506)에, 패킷 ID「5012」의 패킷을 비디오 디코더(508)에 인도한다. 오디오 디코더(506)는, 부여된 패킷의 디지털-아날로그 변환을 행하여 스피커(507)를 통해서 음성을 재생한다. 비디오 디코더(508)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 비디오 데이터를, 비디오 버퍼(517)에 전개한다.
비디오 확대 축소부(520)는, CPU(514)로부터 지시된 확대 축소 명령에 의해, 비디오 버퍼(517)에 전개되어 있는 데이터를 확대 축소하여 합성부(523)로 전해준 다.
합성부(523)는, CPU(514)로부터 지시된 Z 오더에 따라서, 비디오 확대 축소부(520)로부터 전해진 데이터와 스틸 확대 축소부(521)로부터 전해진 데이터와 OSD 확대 축소부(522)로부터 전해진 데이터를 중첩하여, 디스플레이(509)에 출력한다.
마지막으로 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 AM(1205b)에 채널의 식별자를 부여하여, 데이터 방송 재생을 의뢰한다. 여기에서, 데이터 방송 재생이란, MPEG2 트랜스포트 스트림에 포함되는 Java 프로그램을 추출하여, Java VM(1203)에 실행시키는 것이다. MPEG2 트랜스포트 스트림에 Java 프로그램을 매입하는 방법은, MPEG 규격서 ISO/IEC13818-6에 기술된 DSMCC라는 방식을 이용한다. 여기에서는 DSMCC의 상세한 설명은 생략한다. DSMCC 방식은, MPEG2 트랜스포트 스트림의 패킷 중에, 컴퓨터에서 사용되고 있는 디렉토리나 파일로 구성되는 파일 시스템을 인코드하는 방법을 규정하고 있다. 또, 실행하는 Java 프로그램의 정보는 AIT라고 불리는 형식으로, MPEG2 트랜스포트 스트림의 패킷 중에 매입되어 송신되고 있다. AIT는, DVB-MHP 규격(정식으로는, ETIS TS 101 812 DVB-MHP 사양 V1. 0. 2)의 10장에 정의되어 있는, Application Information Table의 약자이다.
AM(1205b)은, 우선, AIT을 획득하기 위해서, JMF(1205a)와 동일하게 PAT, PMT를 취득하고, AIT가 격납되어 있는 패킷의 패킷 ID를 획득한다. 현재, 부여된 채널의 식별자가「2」이고, 도 16의 PAT, 도 17의 PMT가 송신되어 있으면, JMF(1205a)와 동일한 순서로, 도 17의 PMT를 획득한다. AM(1205b)은, PMT로부터 스트림 종별이「데이터」이고 보충 정보로서「AIT」를 갖는 엘리멘트리 스트림으로부터 패킷 ID를 추출한다. 도 17을 참조하여, 행(1713)의 엘리멘트리 스트림이 해당하고, 패킷 ID「5013」를 획득한다.
AM(1205b)은, OS(1201)의 라이브러리(1201b)를 통해서 TS 디코더(505)에 AIT의 패킷 ID와 출력처 CPU(514)을 부여한다. TS 디코더(505), 부여된 패킷 ID에서 필터링을 행하여, CPU(514)에 인도한다. 이 결과, AM(1205b)은, AIT의 패킷을 수집할 수 있다. 도 18은, 수집한 AIT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1801)은 Java 프로그램의 식별자이다. 열(1802)은 Java 프로그램의 제어 정보이다. 제어 정보에는「autostart」「present」「kill」등이 있고, 「autostart」는 즉시 단말 장치(500)가 이 프로그램을 자동적으로 실행하는 것을 의미하며, 「present」는 자동 실행하지 않는 것을 의미하고, 「kill」은 프로그램을 정지하는 것을 의미한다. 열(1803)은, DSMCC 방식으로 Java 프로그램을 포함하고 있는 패킷 ID를 추출하기 위한 DSMCC 식별자이다. 열(1804)은 Java 프로그램의 프로그램명이다. 행(1811과 1812)은 Java 프로그램의 정보의 조이다. 행(1811)으로 정의되는 Java 프로그램은, 식별자「301」, 제어 정보「autostart」, DSMCC 식별자「1」, 프로그램명「a/TopXlet」의 조이다. 행(1812)에 정의되는 Java 프로그램은, 식별자「302」, 제어 정보「present」, DSMCC 식별자「1」, 프로그램명「b/GameXlet」의 조이다. 여기에서 2개의 Java 프로그램은 동일 DSMCC 식별자를 갖지만, 이것은 1개의 DSMCC 방식으로 인코드된 파일 시스템 내에 2개의 Java 프로그램이 포함되어 있는 것을 나타낸다. 여기에서는, Java 프로그램에 대해서 4개의 정보밖에 규정하 지 않지만, 실제로는 보다 많은 정보가 정의된다. 상세한 것은 DVB-MHP 규격을 참조하기 바란다.
AM(1205b)는, AIT 중에서「autostart」의 Java 프로그램을 찾아내어, 대응하는 DSMCC 식별자 및 Java 프로그램명을 추출한다. 도 18을 참조하여, AM(1205b)는 행(1811)의 Java 프로그램을 추출하여, DSMCC 식별자「1」및 Java 프로그램명「a/TopXlet」를 획득한다.
다음에 AM(1205b)는, AIT에서 취득한 DSMCC 식별자를 이용하여, Java 프로그램을 DSMCC 방식으로 격납하고 있는 패킷의 패킷 ID를 PMT로부터 획득한다. 구체적으로는, PMT 중에서 스트림 종별이「데이터」이고, 보충 정보의 DSMCC 식별자가 합치되는 엘리멘트리 스트림의 패킷 ID를 취득한다.
현재, DSMCC 식별자가「1」이고, PMT가 도 17로 되면, 행(1714)의 엘리멘트리 스트림이 합치되어, 패킷 ID「5014」를 취출한다.
AM(1205b)은, OS(1201)의 라이브러리(1201b)를 통해서 TS 디코더(505)에 DSMCC 방식으로 데이터가 매입된 패킷의 패킷 ID와 출력처로서 CPU(514)를 지정한다. 여기에서는, 패킷 ID「5014」를 부여한다. TS 디코더(505), 부여된 패킷 ID로 필터링을 행하여, CPU(514)에 인도한다. 이 결과, AM(1205b)은, 필요한 패킷을 수집할 수 있다. AM(1205b)은, 수집한 패킷으로부터, DSMCC 방식에 따라서 파일 시스템을 복원하여, 1차 기억부(511)에 보존한다. MPEG2 트랜스포트 스트림 중의 패킷으로부터 파일 시스템 등의 데이터를 취출하여 1차 기억부(511) 등의 기억 수단에 보존하는 것을 이후, 다운로드라고 부른다.
도 19는, 다운로드한 파일 시스템의 일례이다. 도면 중, 원은 디렉토리를, 사각은 파일을 나타내고, 1901은 루트 디렉토리, 1902는 디렉토리「a」, 1903은 디렉토리「b」, 1904는 파일「TopXlet.class」, 1905는 파일「GameXlet.class」이다.
다음에 AM(1205b)은, 1차 기억부(511)에 다운로드한 파일 시스템 중에서 실행하는 Java 프로그램을 JavaVM(1203)에 인도한다. 현재, 실행하는 Java 프로그램명이「a/TopXlet」라고 하면, Java 프로그램명의 마지막에「.class」를 부가한 파일「a/TopXlet.class」가 실행해야 하는 파일이 된다. 「/」는 디렉토리나 파일명의 단락이고, 도 19을 참조하여, 파일(1904)이 실행해야 하는 Java 프로그램이다. 다음에 AM(1205b)은, 파일(1904)을 JavaVM(1203)에 인도한다.
JavaVM(1203)는, 인도된 Java 프로그램을 실행한다.
서비스 매니저(1204)는, 다른 채널의 식별자를 수취하면, Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해서 재생하고 있는 영상·음성 및 Java 프로그램의 실행을, 동일하게 Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해서 정지하고, 새롭게 수취한 채널의 식별자에 기초하여, 영상·음성의 재생 및 Java 프로그램의 실행을 행한다.
Java 라이브러리(1205)는, ROM(512)에 격납되어 있는 다수의 Java 라이브러리의 집합이다. 본 실시 형태에서는, 여기에서는, Java 라이브러리(1205)는, JMF(1205a), AM(1205b), Tuner(1205c), CA(1205d), POD Lib(1205e), 해상도 전환부(1205f), AWT(1205g), STL(1205h) 등을 포함하고 있다.
POD Lib(1205e)는, 라이브러리(1201b) 및 CPU(514)을 통해서 POD(504)로부터 의 정보 취득이나 POD(504)의 제어를 행하는 기능을 제공한다.
해상도 전환부(1205f)는, CPU(514)을 통해서, 비디오 디코더(508), 비디오 확대 축소부(520), 스틸 디코더(515), 스틸 확대 축소부(521), OSD 제어부(516), OSD 확대 축소부(522)를 제어하는 기능을 제공한다. 상세한 것은 후술한다.
AWT(1205g)는, Java 프로그램으로부터의 묘화 지시를 접수한다. 접수한 지시에 기초하여, 필요한 정보를 OSD 제어부(516)에 보냄으로써, OSD 버퍼에 문자 도형을 묘화한다. 구체적인 묘화 처리의 예는, 선을 긋거나 사각을 그리는 등이고, Java.awt 패키지에 규정되어 있는 클래스 및 인터페이스 사양으로 실현되는 공지의 기술이다. 따라서, 상세한 설명은 생략한다.
STL(1205h)은, Java 프로그램으로부터의 표시하는 MPEG-I 프레임 데이터와 그 표시 위치를 접수한다. STL(1205h)은, 접수한 MPEG-I 프레임 데이터와 표시 위치를, 스틸 디코더(515)에 인도한다. 스틸 디코더(515)는, 부여된 표시 위치에 MPEG-I 프레임 데이터를 디코드하여, 스틸 버퍼(518)에 전개한다. 이것에 의해 Java 프로그램은, 스틸 버퍼로의 묘화를 행할 수 있다.
도 24는, 비디오의 표시 처리에 관한 플로 차트이다. TS 디코더(505)는 비디오 데이터를 비디오 디코더(508)에 전송한다(S2401). 비디오 디코더(508)는, 전송된 비디오 데이터를 디코드하여, 그 결과를 비디오 버퍼(517)에 전개한다(S2402). CPU(514)로부터 비디오의 표시에 관해서 확대 축소의 지시 여부를 판단한다(S2403). 확대 축소의 지시가 있는 경우에는, 비디오 확대 축소부(520)는 비디오 버퍼(517)에 전개되어 있는 데이터에 대해서 확대 축소 처리를 행하 여(S2404), 합성부(523)에 전송한다(S2405). 확대 축소의 지시가 없는 경우에는, 비디오 확대 축소부(520)는 비디오 버퍼(517)에 전개되어 있는 데이터를 합성부(523)에 전송한다(S2405).
도 25는, 스틸의 표시 처리에 관한 플로 차트이다. CPU(514)로부터 스틸 디코더(515)로 MPEG2-I 프레임 데이터가 전해진다(S2501). 스틸 디코더(515)는, 전해진 MPEG2-I 프레임 데이터를 디코드하여, 그 결과를 스틸 버퍼(518)에 전개한다(S2502). CPU(514)로부터 스틸의 표시에 관해서 확대 축소의 지시 여부를 판단한다(S2503). 확대 축소의 지시가 있는 경우에는, 스틸 확대 축소부(521)는 스틸 버퍼(518)에 전개되어 있는 데이터에 대해서 확대 축소 처리를 행하여(S2504), 합성부(523)에 전송한다(S2505). 확대 축소의 지시가 없는 경우에는, 스틸 확대 축소부(521)는 스틸 버퍼(518)에 전개되어 있는 데이터를 합성부(523)에 전송한다.
도 26은, OSD의 표시 처리에 관한 플로 차트이다. CPU(514)로부터 OSD 제어부(516)로 문자나 도형 데이터가 전해진다(S2601). OSD 제어부(516)는, 전해진 문자나 도형 데이터에 기초하여, OSD 버퍼(519)에 이미지를 구성한다(S2602). CPU(514)로부터 OSD의 표시에 관해서 확대 축소의 지시 여부를 판단한다(S2603). 확대 축소의 지시가 있는 경우에는, OSD 확대 축소부(522)는 OSD 버퍼(519)에 전개되어 있는 데이터에 대해서 확대 축소 처리를 행하여(S2604), 합성부(523)에 전송한다(S2605). 확대 축소의 지시가 없는 경우에는, OSD 확대 축소부(522)는 OSD 버퍼(519)에 전개되어 있는 데이터를 합성부(523)에 전송한다.
여기에서, 확대 축소의 이미지를, 예를 들어서 설명하면, 도 28의 2801과 같 이, 폭 720픽셀, 높이 480픽셀의 데이터를, 폭 960픽셀, 높이 540로 확대하면 도 28의 2802와 같이 된다.
도 27은, 도 24에서 도시되는 플로 차트에서 생성되는 비디오와 도 25에서 도시되는 플로 차트에서 생성되는 스틸과 도 26에서 도시되는 플로 차트에서 생성되는 OSD의 합성 처리에 관한 플로 차트이다. 합성부(523)는, CPU(514)로부터 Z 오더의 변경 지시가 있는지를 판단하여(S2701), 변경 지시가 있는 경우에는, 변경 지시에 따라서, 제1 플레인(2201), 제2 플레인(2202), 제3 플레인(2203)에, 비디오 플레인, 스틸 플레인, OSD 플레인의 어느 플레인이 해당하는지를 결정한다(S2702). 여기에서, 비디오 플레인이란, 도 24에서 도시한 플로 차트에서 생성되는 비디오를 의미하고, 스틸 플레인이란, 도 25에 도시한 플로 차트에서 생성되는 스틸을 의미하며, OSD 플레인이란, 도 26에 도시한 플로 차트에서 생성되는 OSD를 의미한다. 변경 지시가 없는 경우에는, 이전의 Z 오더에 따른다. Z 오더의 조합은, 도 23과 같이 6 패턴의 조합 중 어느 하나이다. 다음에 합성부(523)는, 최배면인 제3 플레인에 해당하는 플레인이, 비디오 플레인, 스틸 플레인, OSD 플레인의 어느 플레인이 해당하는지를 판단하여(S2703), 그 플레인이, 비디오 플레인인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S2704), 스틸 플레인인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S2705), OSD 플레인인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S2706). 예를 들면, 합성하는 데이터의 이미지가 도 29의 2901인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3001과 같이 된다. 다음에 합성부(523)는, 제2 플레인에 해당하는 플레인이, 비디오 플레인, 스틸 플 레인, OSD 플레인의 어느 플레인이 해당하는지를 판단하여(S2707), 그 플레인이, 비디오 플레인인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S2708), 스틸 플레인인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S2709), OSD 플레인인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S2710). 예를 들면, 합성하는 데이터의 이미지가 도 29의 2902인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3002와 같이 된다. 다음에 합성부(523)는, 최전면(最前面)인 제1 플레인에 해당하는 플레인이, 비디오 플레인, 스틸 플레인, OSD 플레인의 어느 플레인이 해당하는지를 판단하여(S2711), 그 플레인이, 비디오 플레인인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S2712), 스틸 플레인인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S2713), OSD 플레인인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S2714). 예를 들면, 합성하는 데이터의 이미지가 도 29의 2903인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3003과 같이 된다. 마지막으로 합성 결과를 디스플레이(509)에 출력하여 표시된다(S2715).
다음에, Java 프로그램의 다운로드·보존 및, Java 프로그램의 표시 동작에 대해서 설명한다.
서비스 매니저(1204)는, Java 라이브러리(1205)에 포함되는 POD Lib(1205e)를 통해서 헤드엔드(101)와 쌍방향 통신을 행한다. 이 쌍방향 통신은, POD Lib(1205e)는 OS(1201)의 라이브러리(1201b) 및 POD(504)를 통해서, QPSK 복조부(502), QPSK 변조부(503)를 사용하여 실현된다.
서비스 매니저(1204)는, 이 통신을 이용하여 헤드엔드(101)로부터, 단말 장 치(500)가 2차 기억부(510)에 보존해야 하는 Java 프로그램의 정보를 수취한다. 이 정보를 XAIT 정보라고 부른다. XAIT 정보는, 헤드엔드(101)와 POD(504) 사이에서, 임의의 형식으로 송신된다. 어떠한 송신 형식을 채용해도, XAIT에 필요로 하는 정보가 포함되어 있으면, 본 발명은 실시 가능하다.
도 20은, 헤드엔드(101)로부터 취득한 XAIT의 정보의 일례를 모식적으로 나타낸 표이다. 열(2001)은 Java 프로그램의 식별자이다. 열(2002)은 Java 프로그램의 제어 정보이다. 제어 정보에는「autoselect」「present」등이 있고, 「autoselect」는 단말 장치(500)가 전원 투입시에 이 프로그램을 자동적으로 실행하는 것을 의미하며, 「present」는 자동 실행하지 않는 것을 의미한다. 열(2003)은, DSMCC 방식으로 Java 프로그램을 포함하고 있는 패킷 ID를 추출하기 위한 DSMCC 식별자이다. 열(2004)은 Java 프로그램의 프로그램명이다. 열(2005)은 Java 프로그램의 우선도이다. 행(2011과 2012)은 Java 프로그램의 정보의 조이다. 행(2011)에서 정의되는 Java 프로그램은, 식별자「701」, 제어 정보「autoselect」, DSMCC 식별자「1」, 프로그램명「a/Banner1Xlet」의 조이다. 여기에서는, Java 프로그램에 대해서 5개의 정보밖에 규정하지 않지만, 보다 많은 정보가 정의되어 있어도 본 발명은 실시 가능하다.
서비스 매니저(1204)는, XAIT 정보를 수취하면, AIT 정보로부터 Java 프로그램을 다운로드한 순서와 동일 순서로, MPEG2 트랜스포트 스트림으로부터 파일 시스템을 1차 기억부(511)에 보존한다. 그 후, 보존한 파일 시스템을 2차 기억부(510)에 복사한다. 또한, 1차 기억부(511)를 통하지 않고, 직접 2차 기억부(510)에 다 운로드하는 것도 실시 가능하다. 다음에, 서비스 매니저(1204)는, XAIT 정보에 다운로드한 파일 시스템의 격납 위치를 대응시켜서 2차 기억부(510)에 보존한다. 도 21은, 2차 기억부(510)가 XAIT 정보와 다운로드한 파일 시스템이 대응되어 보존되어 있는 일례를 나타낸다. 도 21 중에서, 도 20과 동일 번호의 요소는 도 20과 동일하기 때문에, 설명은 생략한다. 열(2101)은 대응하는 다운로드한 파일 시스템의 보존 위치를 격납한다. 도면 중, 보존 위치는 화살표로 나타내고 있다. 2110은 다운로드한 파일 시스템이고, 내부에 탑 디렉토리(2111), 디렉토리「a」(2112), 디렉토리「b」(2113), 파일「Banner1Xlet.class」(2114), 파일「Banner2Xlet.class」(2115)를 유지한다.
여기에서, XAIT 정보는, Java 프로그램을 보존한 후 보존하고 있지만, Java 프로그램을 보존하기 전에 보존하는 것도 실시 가능하다.
단말 장치(500)에 전원이 투입된 후, OS(1201)가 서비스 매니저(1204)를 JavaVM(1203)에 지정하고, JavaVM(1203)이 서비스 매니저(1204)를 기동한 후, 서비스 매니저(1204)는, 최초로 2차 기억부(510)에 보존된 XAIT 정보를 참조한다. 여기에서 각 Java 프로그램의 제어 정보를 참조하여 「autoselect」의 프로그램을 JavaVM(1203)에 인도하여, 기동한다. 도 21을 참조하여, 행(2011)에서 정의되는 Java 프로그램「Banner1Xlet」이 기동된다.
Java 프로그램「Banner1Xlet」이 기동되면, Java 프로그램「Banner1Xlet」이 문자나 도형을 표시하는 경우, Java 프로그램「Banner1Xlet」은 CPU(514)에 대해서 OSD의 표시를 지시한다. CPU(514)는 OSD 제어부(516)로 문자나 도형 데이터를 전 해주고, OSD 표시 처리가 행해져서, 최종적으로 합성부(523)에서 OSD 플레인은 비디오 플레인과 스틸 플레인과 합성되어, 디스플레이(509)에 표시된다.
다음에, 본 발명의 주요 기능인 영상 해상도 전환 기능에 대해서 설명한다. 도 31은, 영상 해상도 전환 기능의 구성도이다.
어플리케이션 프로그램(3100)은, 예를 들면, Java 프로그램「Banner1Xlet」과 같은 어플리케이션이다.
해상도 전환부(1205f)는, OSD 해상도 관리부(3101), 비디오 해상도 관리부(3102), 스틸 해상도 관리부(3103), 비디오 포맷 해상도 변경 검지부(3104), 해상도 선택 판단부(3105)를 포함하고, 영상 해상도 전환 기능을 맡는다.
OSD 해상도 관리부(3101)는, OSD 플레인의 해상도를 관리한다. OSD 해상도 관리부(3101)는, 어플리케이션 프로그램(3100)으로부터 현재의 OSD 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 OSD 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. OSD 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
비디오 해상도 관리부(3102)는, 비디오 플레인의 해상도를 관리한다. 비디오 해상도 관리부(3102)는, 어플리케이션 프로그램(3100)으로부터 현재의 비디오 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 비디오 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. 비디오 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
스틸 해상도 관리부(3103)는, 스틸 플레인의 해상도를 관리한다. 스틸 해상 도 관리부(3103)는, 어플리케이션 프로그램(3100)으로부터 현재의 스틸 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 스틸 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. 스틸 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
비디오 포맷 해상도 변경 검지부(3104)는, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 다른 경우, 해상도 선택 판단부(3105)에 통지한다.
해상도 선택 판단부(3105)는, OSD 해상도 관리부(3101)에 현재의 OSD 플레인의 해상도 변경 요구가 있었던 경우와, 비디오 해상도 관리부(3102)에 현재의 비디오 플레인의 해상도 변경 요구가 있었던 경우와, 스틸 해상도 관리부(3103)에 현재의 스틸 플레인의 해상도 변경 요구가 있었던 경우와, 비디오 포맷 해상도 변경 검지부(3104)로부터 비디오 포맷의 해상도의 변경 통지가 있었던 경우에, 텔레비전 수신 단말의 각 플레인간의 표시 가능한 조합을 고려하여, 각 플레인의 해상도를 선택한다. 여기에서, 표시 가능한 조합을 설명하면, 텔레비전 수신 단말은, 문자 도형을 표시하는 OSD 플레인, 비디오를 표시하는 비디오 플레인, 정지 화면을 표시하는 스틸 플레인의 3층 구조를 갖고 있고, 각 플레인 사이에서는 표시 가능한 조합을 갖고 있다. 예를 들면, 도 32와 같은 조합이다. 텔레비전 수신 단말이 도 32에 도시하는 조합 1(3201)로 각 플레인을 표시하고 있을 때에, 비디오 디코더(508)에서 수신한 비디오 포맷이, 화상 해상도가 가로 960픽셀 세로 540픽셀 및 화면 종횡비가 16 : 9로 변경된 경우, 비디오 포맷에 맞추어, 조합 3(3203)으로 각 플레인의 해상도를 변경하는 경우가 있다. 이 도 32에 도시되는 각 플레인의 조합은, 2차 기억부(510) 또는, 1차 기억부(511), 또는, ROM(512)에 기억되어 있다. 현재, 각 플레인의 조합이 ROM(512)에 격납되어 있는 것으로 하면, 해상도 선택 판단부(3105)는, 표시 가능한 조합을 고려할 때, ROM(512)를 참조하여, 가능한 조합 중에서 특정한 규칙에 따라서, 최적의 1개의 조합을 선택하는 것을 의미한다.
도 33은, OSD 해상도 관리부(3101)에 현재의 OSD 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(3105)의 플로 차트이다. OSD 해상도 관리부(3101)는 해상도 선택 판단부(3105)에 OSD 해상도를 전해주어 변경 요구를 행한다(S3301). 해상도 선택 판단부(3105)는 변경 요구된 OSD 해상도를 1차 기억부(511)에 기억해 둔다(S3302). 변경 요구된 OSD 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3303). 결과로서, 요구한 OSD 해상도로 변경할 수 있었는지를 판단하여(S3304), 변경할 수 있었던 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S3305). 이 OSD 해상도 변경에 따라서, 비디오 해상도도 변경되었는지를 판단하여(S3306), 변경된 경우, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S3307). 이 OSD 해상도 변경에 따라서, 스틸 해상도도 변경되었는지를 판단하여(S3308), 변경된 경우, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S3309).
도 34는, 비디오 해상도 관리부(3102)에 현재의 비디오 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(3105)의 플로 차트이다. 비디오 해상도 관리부(3102)는 해상도 선택 판단부(3105)에 비디오 해상도를 전해주어 변경 요구를 행한다(S3401). 해상도 선택 판단부(3105)는 변경 요구된 비디오 해상도를 1차 기억부(511)에 기억해 둔다(S3402). 변경 요구된 비디오 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3403). 결과로서, 요구한 비디오 해상도로 변경할 수 있었는지를 판단하여(S3404), 변경할 수 있었던 경우, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S3405). 이 비디오 해상도 변경에 따라서, OSD 해상도도 변경되었는지를 판단하여(S3406), 변경된 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S3407). 이 비디오 해상도 변경에 따라서, 스틸 해상도도 변경되었는지를 판단하여(S3408), 변경된 경우, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S3409).
여기에서, 선택된 비디오 플레인의 해상도와 비디오 디코더(508)가 디코드한 비디오 영상의 해상도가 상이한 경우, 비디오 확대 축소부(520)는, 비디오 버퍼(517)에 전개된 비디오 영상을, 선택된 비디오 플레인의 해상도로 확대 또는 축소함으로써, 선택된 비디오 플레인의 해상도를 실현한다.
또, 표시 가능한 비디오 플레인, 스틸 플레인, OSD 플레인의 해상도의 조합에는, 비디오 플레인, 스틸 플레인, OSD 플레인의 확대·축소를 전제로 한 조합도 포함된다. 예를 들면, 도 32의 조합 「4」(3204)의 경우, OSD 플레인의 해상도는 960*540이고, 비디오 플레인과 스틸 플레인의 해상도는 1920*1080이다. 이 경우, OSD 확대 축소부(522)는, OSD 버퍼(519)에 전개되어 있는 문자 도형 묘화를 종횡 2배로 확대하여 출력함으로써 합성부(523)는, 3개의 플레인의 합성을 행할 수 있다. 이와 같이, 표시 가능한 비디오 플레인, 스틸 플레인, OSD 플레인의 해상도의 조합 은, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)의 동작을 규정하는 확대 축소 정보를 내포하고 있다. 혹은, 표시 가능한 비디오 플레인, 스틸 플레인, OSD 플레인의 해상도의 조합과 대응시켜서, 명시적으로 확대 축소 정보를 2차 기억부(510), 1차 기억부(511), ROM(512) 등에 기억해도 좋다. 여기에서, 확대 축소 정보는 구체적으로는, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522) 각각에 대해서 정의되어 있어도 좋고, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522) 공통으로 합성부(523)에 출력해야 하는 해상도로서 규정되어 있어도 좋다. 또, 이 공통의 해상도를 지정하는 공통 해상도 지정부를 부가함으로써, 합성부(523)에 출력하는 비디오, OSD, 스틸의 해상도를 용이하게 변경할 수 있도록 해도 좋다. 여기에서, 공통 해상도 지정부는 어플리케이션 프로그램으로부터 해상도를 지정해도 좋고, 해상도 선택 판정부(3105)가 해상도를 지정해도 좋다.
또, 해상도 선택 판단부(3105)는, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)에 대해서, 확대 축소의 지시도 행한다.
도 35는, 스틸 해상도 관리부(3103)에 현재의 스틸 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(3105)의 플로 차트이다. 스틸 해상도 관리부(3103)는 해상도 선택 판단부(3105)에 스틸 해상도를 전해주어 변경 요구를 행한다(S3501). 해상도 선택 판단부(3105)는 변경 요구된 스틸 해상도를 1차 기억부(511)에 기억해 둔다(S3502). 변경 요구된 스틸 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3503). 결과로서, 요구한 스틸 해상도로 변경할 수 있었 는지를 판단하여(S3504), 변경할 수 있었던 경우, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S3505). 이 스틸 해상도 변경에 따라서, 비디오 해상도도 변경되었는지를 판단하여(S3506), 변경된 경우, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S3507). 이 스틸 해상도 변경에 따라서, OSD 해상도도 변경되었는지를 판단하여(S3508), 변경된 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S3509).
도 36, 도 37은, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우의 해상도 선택 판단부(3105)의 플로 차트이다. 비디오 포맷 해상도 변경 검지부(3104)는 해상도 선택 판단부(3105)에 비디오 포맷 해상도 변경을 통지한다(S3601). 비디오 포맷 해상도와 1차 기억부(511)에 기억되어 있는 변경 요구 OSD 해상도 및 변경 요구 스틸 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3602). 그 결과, 표시 가능한 조합이 존재하지 않는 경우(S3603), 비디오 포맷 해상도와 1차 기억부(511)에 기억되어 있는 변경 요구 OSD 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3604). 그 결과, 표시 가능한 조합이 존재하지 않는 경우(S3605), 비디오 포맷 해상도와 맞추어 표시 가능한 조합의 선택을 시도한다(S3606). 그 결과, OSD 해상도가 변경되었는지를 판단하여(S3701), 변경된 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S3702). 비디오 해상도가 변경되었는지를 판단하여(S3703), 변경된 경우, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S3704). 스틸 해상도가 변경되었는지를 판단하여(S3705), 변경된 경우, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S3706).
예를 들면, 어플리케이션 프로그램(3100)이 프로그램이나 콘텐츠의 내용과는 관계없이 프로그램의 내용이나 채널명, 광고 등을 OSD 플레인을 사용하여, 화면의 한쪽 구석에 표시하는 것과 같은 어플리케이션인 것으로 한다. 이 경우, 도 38과 같이 표시 화면(3800) 상에서는 비디오 표시 에어리어(3802)가 대부분을 차지하고, 어플리케이션의 표시인 OSD 표시 에어리어(3801)가 작다. 이 때에 비디오 포맷이 변경된 경우에는, 해상도 선택 판단부(3105)는 비디오 포맷에 맞추어, 표시 가능한 조합으로 변경하는 것이 바람직하다. 여기에서, 비디오 플레인 및 OSD 플레인 모두 720*480의 해상도로 표시되어 있을 때, 비디오의 해상도가 1920*1080로 변한 것으로 한다. 이 때, OSD 플레인의 해상도를 우선하면, 비디오 확대 축소부(520)는 비디오 버퍼(517)에 전개된 1920*1080의 비디오 영상을 720*480로 축소하는 것이 필요해진다. 이것은, 명확하게 화질이 열화한다. 본 어플리케이션의 목적은 보충 정보를 표시하는 것이다. 그 보충 정보 표시를 위해서 주요 정보인 비디오 영상을 열화시키는 것은 바람직하지 않다. 따라서, 어플리케이션 프로그램(3100)이, 명시적으로, OSD 해상도 관리부(3101)에 대해서 OSD 해상도의 변경 요구를 하지 않거나, 또는, 스틸 해상도 관리부(3102)에 대해서 스틸 해상도의 변경 요구를 하지 않으면, 비디오 포맷 변경이 우선되게 된다. 그리고, 어플리케이션 프로그램(3100)은, OSD 플레인의 해상도가 변경된 것을 알고, OSD 해상도에 적합한 문자 도형 묘화를 재묘화한다. 이것에 의해 아름다운 화면 표시가 가능해진다.
한편, 어플리케이션 프로그램(3100)이 비디오 표시를 작게 행하여, 어플리케 이션의 표시를 전면에서 행하고 있는 것과 같은 어플리케이션인 것으로 한다. 구체적으로는, JMF(1205a)는, 비디오 영상의 확대 축소나 표시 위치를 지정하는 기능을 제공하고, 어플리케이션 프로그램(3100)은 이들 기능을 이용한다. 이 경우, 도 39와 같이 표시 화면(3900) 상에서는 어플리케이션의 표시인 OSD 표시 에어리어(3901)가 대부분을 차지하고, 비디오 표시 에어리어(3902)가 작다. 비디오 표시 에어리어(3902)는, JMF(1205a)가 제공하는 기능에 의해 사이즈 및 표의(表意) 위치가 결정되어 있다. 이 때에 비디오 포맷이 변경된 경우에는, 해상도 선택 판단부(3105)는 현재 표시하고 있는 OSD 해상도에 맞추어, 표시 가능한 조합으로 변경하는 것이 바람직하다. 왜냐하면, 어플리케이션에서는, 이미 비디오 영상은 축소 표시되어 있고, 화질은 명확하게 열화하고 있다. 비디오 플레인의 해상도의 변화에 따라서 OSD 플레인의 해상도를 변화시켜도, 비디오 영상의 화질의 열화는 회피할 수 없다. 한편, OSD 플레인의 해상도의 변화에 따른 어플리케이션 프로그램(3100)은, OSD 표시 에어리어(3901)를 차묘화(差描畵)할 필요가 있다. 큰 표시 에어리어에 대한 묘화 처리는 일반적으로 시간이 걸린다. 또, OSD 플레인의 해상도에 따른 문자 도형 정보를 다수 준비할 필요가 있으며, 많은 메모리를 필요로 한다. 그리고, 번잡한 처리를 어플리케이션 프로그램(3100)에 실장하지 않으면 안된다. 따라서, 어플리케이션 프로그램(3100)이, 명시적으로, OSD 해상도 관리부(3101)에 대해서 희망의 OSD 해상도의 변경 요구를 하면, OSD 해상도가 우선되게 된다. 이 결과, 어플리케이션 프로그램(3100)의 복잡함이나, 여분의 문자 도형 데이터의 유지가 드러난다. 또, OSD 플레인의 해상도가 우선되면, 비디오 확대 축소 부(520)는, 비디오 버퍼(517)에 전개된 비디오 영상을 유지된 해상도에 합치하도록, 확대 축소하게 된다.
(실시 형태 2)
실시 형태 1에서는, 어플리케이션 프로그램(3100)이, OSD 해상도 관리부(3101)에 대해서 OSD 해상도의 변경 요구를 하고 있는 상태에서, 비디오 포맷이 변경된 경우, OSD의 해상도가 우선되기 때문에, 어플리케이션 프로그램(3100)에는 비디오 포맷의 해상도 변경 통지가 행해지지 않는 경우가 있다.
따라서, 본 실시 형태에서는, 도 40에 도시하는 영상 해상도 전환 기능의 구성도와 같이, 비디오 포맷 해상도 변경 검지부(4001)는, 비디오 포맷 해상도 변경 검지부(3104)의 기능에 더하여, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 다른 경우, 어플리케이션 프로그램(3100)에도 통지하는 기능도 구비한다. 해상도 전환부(1205f)에 포함되는 다른 OSD 해상도 관리부(3101), 비디오 해상도 관리부(3102), 스틸 해상도 관리부(3103), 해상도 선택 판단부(3105)의 기능은 실시 형태 1과 동일하기 때문에, 설명을 생략한다.
이것에 의해, 어플리케이션 프로그램(3100)은, 비디오 포맷의 해상도 변경을 알 수 있고, 비디오 해상도 관리부(3102)에 대해서, 통지된 비디오 포맷의 해상도로 변경 요구를 함으로써 비디오를 비디오 포맷의 해상도로 표시시키는 것이 가능해진다.
(실시 형태 3)
실시 형태 2에서는, 어플리케이션 프로그램(3100)이, 해상도 전환부(1205f)에 대해서, 어플리케이션 자신의 표시를 최적으로 표시할 수 있는 OSD 해상도를, 어느 시점에서 1개밖에 지정할 수 없다.
따라서, 본 실시 형태에서는, 도 41에 도시하는 영상 해상도 전환 기능의 구성도와 같이, 어플리케이션 프로그램(3100)이, 어플리케이션 자신의 표시가 최적으로 표시할 수 있는 OSD 해상도를, 미리 등록 가능한 최적 해상도 관리부(4106)를 포함하는 구성으로 한다.
해상도 전환부(1205f)는, OSD 해상도 관리부(4101), 비디오 해상도 관리부(4102), 스틸 해상도 관리부(4103), 비디오 포맷 해상도 변경 검지부(4104), 해상도 선택 판단부(4105), 최적 해상도 관리부(4106)를 포함하고, 영상 해상도 전환 기능을 맡는다. OSD 해상도 관리부(4101)는, OSD 플레인의 해상도를 관리한다. OSD 해상도 관리부(4101)는, 어플리케이션 프로그램(3100)으로부터 현재의 OSD 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 OSD 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. OSD 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(4105)에 통지한다.
비디오 해상도 관리부(4102)는, 비디오 플레인의 해상도를 관리한다. 비디오 해상도 관리부(4102)는, 어플리케이션 프로그램(3100)으로부터 현재의 비디오 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 비디오 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. 비디오 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(4105)에 통지한다.
스틸 해상도 관리부(4103)는, 스틸 플레인의 해상도를 관리한다. 스틸 해상도 관리부(4103)는, 어플리케이션(3100)으로부터 현재의 스틸 플레인의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 스틸 플레인의 해상도가 변경된 것을 통지하는 기능을 갖는다. 스틸 플레인의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(4105)에 통지한다.
비디오 포맷 해상도 변경 검지부(4104)는, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우, 해상도 선택 판단부(4105) 및 어플리케이션 프로그램(3100)에 통지한다.
최적 해상도 관리부(4106)는, 어플리케이션 프로그램(3100)이 어플리케이션 자신의 표시가 최적으로 표시할 수 있는 OSD 해상도를 등록 및 삭제하는 기능을 갖는다. 또한, 어플리케이션 프로그램(3100)이 등록하는 OSD 해상도는 다수 등록 가능하게 한다.
도 42는, 어플리케이션 프로그램(3100)이, 최적 OSD 해상도를 등록하는 경우의 최적 해상도 관리부(4106)의 플로 차트이다. 어플리케이션 프로그램(3100)은, 등록하는 최적 OSD 해상도를 최적 해상도 관리부(4106)에 등록 요구한다(S4201). 최적 해상도 관리부(4106)는 등록 요구된 최적 OSD 해상도를 1차 기억부(511)에 기억한다(S4202).
도 43은, 어플리케이션 프로그램(3100)이, 최적 OSD 해상도를 삭제하는 경우의 최적 해상도 관리부(4106)의 플로 차트이다. 어플리케이션 프로그램(3100)은, 삭제하는 최적 OSD 해상도를 최적 해상도 관리부(4106)에 삭제 요구한다(S4301). 최적 해상도 관리부(4106)는 삭제 요구된 최적 OSD 해상도를 1차 기억부(511)로부터 삭제한다(S4302).
해상도 선택 판단부(4105)는, OSD 해상도 관리부(4101)에 현재의 OSD 플레인의 해상도 변경 요구가 있었던 경우와, 비디오 해상도 관리부(4102)에 현재의 비디오 플레인의 해상도 변경 요구가 있었던 경우와, 스틸 해상도 관리부(4103)에 현재의 스틸 플레인의 해상도 변경 요구가 있었던 경우와, 비디오 포맷 해상도 변경 검지부(4104)로부터 비디오 포맷의 해상도의 변경 통지가 있었던 경우에, 텔레비전 수신 단말의 각 플레인 사이의 표시 가능한 조합을 고려하여, 각 플레인의 해상도를 선택한다.
도 44는, OSD 해상도 관리부(4101)에 현재의 OSD 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(4105)의 플로 차트이다. OSD 해상도 관리부(4101)는 해상도 선택 판단부(4105)에 OSD 해상도를 전해주어 변경 요구를 행한다(S4401). 변경 요구된 OSD 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S4402). 결과로서, 요구한 OSD 해상도로 변경할 수 있었는지를 판단하여(S4403), 변경할 수 있었던 경우, OSD 해상도 관리부(4101)에 OSD 해상도 변경 통지가 행해진다(S4404). 이 OSD 해상도 변경에 따라서, 비디오 해상도도 변경되었는지를 판단하여(S4405), 변경된 경우, 비디오 해상도 관리부(4102)에 비디오 해상도 변경 통지가 행해진다(S4406). 이 OSD 해상도 변경에 따라서, 스틸 해상도도 변경되었는지를 판단하여(S4407), 변경된 경우, 스틸 해상도 관리부(4103)에 스틸 해상도 변경 통지가 행해진다(S4408).
도 45는, 비디오 해상도 관리부(4102)에 현재의 비디오 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(4105)의 플로 차트이다. 비디오 해상도 관리부(4102)는 해상도 선택 판단부(4105)에 비디오 해상도를 전해주어 변경 요구를 행한다(S4501). 변경 요구된 비디오 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S4502). 결과로서, 요구한 비디오 해상도로 변경할 수 있었는지를 판단하여(S4503), 변경할 수 있었던 경우, 비디오 해상도 관리부(4102)에 비디오 해상도 변경 통지가 행해진다(S4504). 이 비디오 해상도 변경에 따라서, OSD 해상도도 변경되었는지를 판단하여(S4505), 변경된 경우, OSD 해상도 관리부(4101)에 OSD 해상도 변경 통지가 행해진다(S4506). 이 비디오 해상도 변경에 따라서, 스틸 해상도도 변경되었는지를 판단하여(S4507), 변경된 경우, 스틸 해상도 관리부(4103)에 스틸 해상도 변경 통지가 행해진다(S4508).
도 46은, 스틸 해상도 관리부(4103)에 현재의 스틸 플레인의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(4105)의 플로 차트이다. 스틸 해상도 관리부(4103)는 해상도 선택 판단부(4105)에 스틸 해상도를 전해주어 변경 요구를 행한다(S4601). 변경 요구된 스틸 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S4602). 결과로서, 요구한 스틸 해상도로 변경할 수 있었는지를 판단하여(S4603), 변경할 수 있었던 경우, 스틸 해상도 관리부(4103)에 스틸 해상도 변경 통지가 행해진다(S4604). 이 스틸 해상도 변경에 따라서, 비디오 해상도도 변경되었는지를 판단하여(S4605), 변경된 경우, 비디오 해상도 관리부(4102)에 비디오 해상도 변경 통지가 행해진다(S4606). 이 스틸 해상도 변경에 따라서, OSD 해상도도 변경되었는지를 판단하여(S4607), 변경된 경우, OSD 해상도 관리부(4101)에 OSD 해상도 변경 통지가 행해진다(S4608).
도 47, 도 48은, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우의 해상도 선택 판단부(4105)의 플로 차트이다. 비디오 포맷 해상도 변경 검지부(4104)는 해상도 선택 판단부(4105)에 비디오 포맷 해상도 변경을 통지한다(S4701). 1차 기억부(511)에 기억되어 있는 최적 OSD 해상도를 순서대로 취득한다(S4702). 최적 OSD 해상도를 취득할 수 있었는지를 판단한다(S4703). S4703에서 취득할 수 있었던 경우에는, 비디오 포맷 해상도와 취득한 최적 OSD 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S4704). 그 결과, 표시 가능한 조합이 존재하는지를 판단한다(S4705). S4705에 존재하는 경우에는, S4801로 간다. S4705에서 존재하지 않는 경우에는, S4702로 되돌아간다. S4703에서, 최적 OSD 해상도를 취득할 수 없는, 즉 순서대로 최적 OSD 해상도를 취득하는 것이 종료한 경우, 비디오 포맷 해상도와 맞추어 표시 가능한 조합의 선택을 시도한다(S4706). S4704 또는 S4706의 결과로서, OSD 해상도가 변경되었는지를 판단하여(S4801), 변경된 경우, OSD 해상도 관리부(4101)에 OSD 해상도 변경 통지가 행해진다(S4802). 비디오 해상도가 변경되었는지를 판단하여(S4803), 변경된 경우, 비디오 해상도 관리부(4102)에 비디오 해상도 변경 통지가 행해진다(S4804). 스틸 해상도가 변경되었는지를 판단하여(S4805), 변경된 경우, 스틸 해상도 관리부(4103)에 스틸 해상도 변경 통지가 행해진다(S4806).
이것에 의해, 어플리케이션 프로그램(3100)은, 해상도 전환부(1205f)에 대해서, 어플리케이션 자신의 표시를 최적으로 표시할 수 있는 OSD 해상도를, 다수 등록하는 것이 가능해진다. 어플리케이션 프로그램(3100)이, 다수의 해상도에 대응 가능한 경우, 비디오 포맷 해상도의 변경에 맞추어, 보다 많은 기회로, 비디오의 표시와 어플리케이션의 표시에 관해서 일그러지지 않고 표시시키는 것이 가능해진다.
(실시 형태 4)
실시 형태 3에서는, 어플리케이션 프로그램(3100)과 같은 어플리케이션이 다수 존재하여 표시되어 있는 경우에, 어느 어플리케이션 프로그램이 등록한 최적 OSD 해상도에 맞추어 표시 가능한 조합을 판단하는지 부정확하게 되는 경우가 있다.
따라서, 본 실시 형태에서는 도 49에 도시하는 바와 같이, 최적 해상도 관리부(4106)에서, 어플리케이션 프로그램을 식별하는 Java 프로그램 식별자(4900)와 최적 OSD 해상도의 조(4901, 4902, 4903 등)로 등록하는 것으로 하고, 해상도 선택 판단부(4105)에서, 등록되어 있는 Java 프로그램 식별자와 최적 OSD 해상도의 조(4901, 4902, 4903 등)의 Java 프로그램 식별자(4900)로부터, 도 20에 도시되는 우선도(2005)를 취득하여, 표시 가능한 조합의 판단시에 우선도(2005)를 이용하여 판단하는 것으로 한다. 해상도 전환부(1205f)에 포함되는 다른 OSD 해상도 관리부(4101), 비디오 해상도 관리부(4102), 스틸 해상도 관리부(4103), 비디오 포맷 해상도 변경 검지부(4104)의 기능은 변화하지 않은 것으로 한다.
이하에, 기능이 변화하는 최적 해상도 관리부(4106)와 해상도 선택 판단부(4105)의 처리에 대해서 설명한다.
도 50은, 어플리케이션 프로그램(3100)이, 최적 OSD 해상도를 등록하는 경우의 최적 해상도 관리부(4106)의 플로 차트이다. 어플리케이션 프로그램(3100)은, 등록하는 최적 OSD 해상도를 최적 해상도 관리부(4106)에 등록 요구한다(S5001). 최적 해상도 관리부(4106)는 등록 요구한 어플리케이션 프로그램의 Java 프로그램 식별자를 취득한다(S5002). 최적 해상도 관리부(4106)는, 취득한 Java 프로그램 식별자와 등록 요구된 최적 OSD 해상도의 조를 1차 기억부(511)에 기억한다(S5003).
도 51은, 어플리케이션 프로그램(3100)이, 최적 OSD 해상도를 삭제하는 경우의 최적 해상도 관리부(4106)의 플로 차트이다. 어플리케이션 프로그램(3100)은, 삭제하는 최적 OSD 해상도를 최적 해상도 관리부(4106)에 등록 요구한다(S5101). 최적 해상도 관리부(4106)는 삭제 요구한 어플리케이션 프로그램의 Java 프로그램 식별자를 취득한다(S5102). 최적 해상도 관리부(4106)는, 취득한 Java 프로그램 식별자와 삭제 요구된 최적 OSD 해상도의 조를 1차 기억부(511)로부터 삭제한다(S5103).
도 52, 도 53, 도 54는, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우의 해상도 선택 판단부(4105)의 플로 차트이다. 비디오 포맷 해상도 변경 검지부(4104)는 해상도 선택 판단부(4105)에 비디오 포맷 해상도 변경을 통지한다(S5201). 1차 기억 부(511)에 기억되어 있는 Java 프로그램 식별자와 최적 OSD 해상도의 조를 순서대로 취득한다(S5202). Java 프로그램 식별자와 최적 OSD 해상도의 조를 취득할 수 있었는지를 판단한다(S5203). S5203에서 취득할 수 있었던 경우, 비디오 포맷 해상도와 취득한 조의 최적 OSD 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S5204). S5204의 결과, 표시 가능한 조합이 존재하는지를 판단한다(S5205). S5205에서 존재한 경우에는, 표시 가능한 조합과 Java 프로그램 식별자의 조를 모두, 유지 기억부(511)에 기억하고(S5206), S5202로 되돌아간다. S5205에서 존재하지 않는 경우에는, S5202로 되돌아간다. S5203에서, Java 프로그램 식별자와 최적 OSD 해상도의 조를 취득할 수 없는, 즉 순서대로 최적 OSD 해상도를 취득하는 것이 종료한 경우, S5206에서 기억한 Java 프로그램 식별자와 최적 OSD 해상도의 조가 존재하는지를 판단한다(S5301). S5301에서 기억한 조가 존재하는 경우, 1차 기억부(511)로부터 표시 가능한 조합과 Java 프로그램의 식별자의 조를 순서대로 취득하여(S5302), 2차 기억부(510)로부터 각각의 조의 Java 프로그램의 식별자에 대응하는 우선도를 취득하여 비교함으로써, 가장 우선도가 높은 표시 가능한 조합을 추출한다(S5303). S5301에서 기억한 조가 존재하지 않는 경우, 비디오 포맷 해상도와 맞추어 표시 가능한 조합의 선택을 시도한다(S5304). S5303 또는 S5304의 결과로서, OSD 해상도가 변경되었는지를 판단하여(S5401), 변경된 경우, OSD 해상도 관리부(4101)에 OSD 해상도 변경 통지가 행해진다(S5402). 비디오 해상도가 변경되었는지를 판단하여(S5403), 변경된 경우, 비디오 해상도 관리부(4102)에 비디오 해상도 변경 통지가 행해진다(S5404). 스틸 해상도가 변경되었는지를 판단하 여(S5405), 변경된 경우, 스틸 해상도 관리부(4103)에 스틸 해상도 변경 통지가 행해진다(S5406).
이것에 의해, 어플리케이션 프로그램이 다수 존재하여 표시되어 있는 경우에도, 각각의 어플리케이션 프로그램이 등록한 최적 OSD 해상도 전부를 고려하여 표시 가능한 조합의 영상 해상도를 판단하는 것이 가능해진다.
(실시 형태 5)
실시 형태 2에서, 해상도 선택 판단부(3105)의 동작을 도 55 및 도 37로 하는 것이 실시 가능하다. 비디오 포맷 해상도 변경 검지부(4001)는 해상도 선택 판단부(3105)에 비디오 포맷 해상도 변경을 통지한다(S3601). 비디오 포맷 해상도와 현재 상태의 OSD 해상도 및 스틸 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S5502). 그 결과, 표시 가능한 조합이 존재하지 않는 경우(S3603), 현재 상태의 OSD 플레인의 해상도를 유지할 수 있는 표시 가능한 조합의 선택을 시도한다(S5504). 그 결과, 표시 가능한 조합이 존재하지 않는 경우(S3605), 비디오 포맷 해상도에 맞추어 표시 가능한 조합의 선택을 시도한다(S3606). 그 결과, OSD 해상도가 변경되었는지를 판단하여(S3701), 변경된 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S3702). 비디오 해상도가 변경되었는지를 판단하여(S3703), 변경된 경우, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S3704). 스틸 해상도가 변경되었는지를 판단하여(S3705), 변경된 경우, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S3706).
이 동작으로 함으로써, OSD 플레인의 해상도가 우선적으로 유지된다. 실시 형태 1에서의, 도 39에서 도시되는 바와 같은, OSD 플레인의 해상도를 독점으로 유지하고 싶은 어플리케이션의 실장이 용이해진다. 실시 형태 1에서는, 이 주된 어플리케이션은, 명시적으로, OSD 해상도 관리부(3101)에 대해서 희망의 OSD 해상도의 변경 요구를 할 필요가 있었다. 그러나, 본 실시 형태에서는, 그 필요는 없다. 한편, 본 실시 형태에서, 도 38에 도시되는 바와 같은 비디오 플레인의 해상도를 우선하고 싶은 어플리케이션에서는, 해상도 선택 판단부(3105)로부터, 비디오 디코더(508)가 전개한 비디오 영상의 포맷이 변경된 것이 통지되었을 때, 그 포맷에 맞추어, OSD 해상도 관리부(3101)에 OSD 플레인의 해상도의 변경 요구를 함으로써, 비디오 플레인의 해상도를 우선할 수 있다.
또한, 본 실시 형태에서는, OSD 플레인의 해상도를 우선하는 것으로 하고 있지만, 도 55의 플로 차트에서, 단계 S5504를「변경 통지된 비디오 포맷 해상도를 유지할 수 있는, 표시 가능한 조합의 선택을 시도한다」라고 해도 좋다. 이것에 의해, 어플리케이션이 OSD 플레인의 해상도의 지정을 행해도, 비디오 플레인의 해상도가 우선되어, 도 38에 도시되는 바와 같은 비디오 플레인의 해상도를 우선하고 싶은 어플리케이션의 실장이 용이해진다.
또, 본 실시 형태에서는, OSD 플레인의 해상도를 우선하는 것으로 하고 있지만, 도 55의 플로 차트에서, 단계 S5504를「현재 상태의 스틸 해상도를 유지할 수 있는, 표시 가능한 조합의 선택을 시도한다」라고 해도 좋다. 이것에 의해, 어플리케이션이 OSD 플레인의 해상도의 지정을 행해도, 스틸 플레인의 해상도가 우선되어, 스틸 플레인의 해상도를 우선하고 싶은 어플리케이션의 실장이 용이해진다.
또, 본 실시 형태에서, 우선해야 하는 플레인의 지정을 접수하는 우선 플레인 접수부를 부가하는 것도 실시 가능하다. 어플리케이션 프로그램(3100)은, 우선하고 싶은 플레인을 우선 플레인 접수부로 지정한다. 이 때, 우선 플레인 접수부는, 접수한 플레인을 1차 기억부(511)에 기억한다. 해상도 선택 판단부(3105)는, 도 55의 플로 차트의 단계 S5504를「1차 기억부(511)가 유지하는 플레인의 해상도를 유지할 수 있는, 표시 가능한 조합의 선택을 시도한다」라고 한다.
이 결과, 어플리케이션은 해상도를 유지하고 싶은 플레인을 지정할 수 있고, 실장이 용이해진다.
또한, 우선 플레인 접수부는 제1 우선 플레인, 제2 우선 플레인을 접수하는 것도 실시 가능하다. 어플리케이션 프로그램(3100)은, 제1 우선 플레인 및 제2 우선 플레인을 우선 플레인 접수부로 지정한다. 이 때, 우선 플레인 접수부는, 접수한 제1 우선 플레인 및 제2 우선 플레인을 1차 기억부(511)에 기억한다. 해상도 선택 판단부(3105)는, 도 55의 플로 차트의 단계 S5504를「1차 기억부(511)가 유지하는 제1 우선 플레인 및 제2 우선 플레인의 해상도를 유지할 수 있는, 표시 가능한 조합의 선택을 시도한다. 양립하지 않는 경우에는, 제1 우선 플레인의 해상도를 유지할 수 있는, 표시 가능한 조합의 선택을 시도한다」라고 한다.
(실시 형태 6)
실시 형태 1에서, 도 38, 도 39에 도시되는 2개의 어플리케이션이 동시에 실행되어 있는 경우, 어느쪽의 어플리케이션을 우선할지를 결정할 필요가 있다. 본 실시 형태에서는, 제1 실시 형태에서, 해상도 전환부(1205f)의 구성을 도 56으로 한다. 도 31과 동일 번호의 구성 요소는 동일 기능을 행하기 때문에, 설명을 생략한다. 변경 허가부(5601)는, 어플리케이션 프로그램(3100)의 변경 요구의 허가를 행한다. 어플리케이션 프로그램(3100)은, OSD 해상도 관리부(5602), 비디오 해상도 관리부(5603), 스틸 해상도 관리부(5604)에 해상도의 변경 요구를 행하기 전에, 변경 허가부(5601)에 변경 허가를 얻는다. 허가를 얻은 후, 필요한 변경 요구를 행하여, 변경 요구가 없게 되면, 변경 허가부(5601)에 허가가 불필요하게 된 것을 통지한다. 변경 허가부(5601)는, 이미 허가를 발행 후에 다른 어플리케이션이 허가를 구하여 왔을 때, 2개의 어플리케이션의 우선도를 비교하여, 어느쪽에 허가를 부여할지를 결정하고, 어플리케이션의 우선도는, 실시 형태 1에서의 도 20의 예와 같이 어플리케이션에 미리 할당된 우선도를 변경 허가부(5601)가 참조해도 좋고, 어플리케이션 프로그램(3100)이 변경 허가부(5601)에 명시적으로 부여해도 좋다. OSD 해상도 관리부(5602), 비디오 해상도 관리부(5603), 스틸 해상도 관리부(5604)는, OSD 해상도 관리부(3101), 비디오 해상도 관리부(3102), 스틸 해상도 관리부(3103)의 기능에 더하여, 변경 허가부(5601)에 허가를 얻고 있지 않은 어플리케이션 프로그램(3100)으로부터의 요구를 접수하지 않는다. 본 실시 형태를 실현함으로써, 다수의 어플리케이션의 요구를 접수하는지를 명확하게 할 수 있기 때문에, 다수의 어플리케이션의 동시 실행이 가능해진다.
(실시 형태 7)
본 발명에 따른 케이블 텔레비전 시스템의 실시 형태를, 도면을 참조하면서 설명한다. 도 1은, 케이블 시스템을 구성하는 장치의 관계를 나타낸 블록도이고, 헤드엔드(101) 및 3개의 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)로 구성된다. 본 실시 형태에서는, 1개의 헤드엔드에 대해서 3개의 단말 장치가 결합되어 있지만, 임의의 수의 단말 장치를 헤드엔드에 결합해도, 본 발명은 실시 가능하다.
헤드엔드(101)는, 다수의 단말 장치에 대해서 영상·음성·데이터 등의 방송 신호를 송신하는 동시에, 단말 장치로부터의 데이터 송신을 수신한다. 이것을 실현하기 위해서, 헤드엔드(101)와 단말 장치A(111), 단말 장치B(112), 단말 장치C(113) 사이의 전송에 이용되는 주파수 대역은, 분할하여 이용된다. 도 2는, 주파수 대역의 분할의 일례를 나타내는 표이다. 주파수 대역은, Out Of Band(약칭 OOB)와 In-Band의 2종류로 크게 대별된다. 5∼130㎒가 OOB에 할당되고, 주로 헤드엔드(101)와 단말 장치A(111), 단말 장치B(112), 단말 장치C(113) 사이의 데이터의 교환에 사용된다. 130㎒∼864㎒는 In-Band에 할당되고, 주로, 영상·음성을 포함하는 방송 채널에 사용된다. OOB에서는 QPSK 변조 방식이, In-Band는 QAM64 변조 방식이 사용된다. 변조 방식 기술에 대해서는, 본 발명에 관여가 약한 공지 기술이기 때문에, 상세한 설명은 생략한다. 도 3은, OOB 주파수 대역의 더욱 상세한 사용의 일례이다. 70㎒∼74㎒는 헤드엔드(101)로부터의 데이터 송신에 사용되고, 모든 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)가, 헤드엔드(101)로부터 동일 데이터를 수취하게 된다. 한편, 10.0㎒∼10.1㎒는 단말 장치A(111)로부터 헤드엔드(101)로의 데이터 송신에 사용되고, 10.1㎒∼10.2㎒는 단말 장치B(112)로부터 헤드엔드(101)로의 데이터 송신에 사용되며, 10.2㎒∼10.3㎒는 단말 장치C(113) 로부터 헤드엔드(101)로의 데이터 송신에 사용된다. 이것에 의해, 각 단말 장치 고유의 데이터를 각 단말 장치A(111), 단말 장치B(112), 단말 장치C(113)로부터 헤드엔드(101)에 송신할 수 있다. 도 4는, In-Band의 주파수대에 대한 사용의 일례이다. 150∼156㎒와 156∼162㎒는 각각 텔레비전 채널 1과 텔레비전 채널 2에 할당되고, 이후, 6㎒ 간격으로 텔레비전 채널이 할당되어 있다. 310㎒ 이후에는, 1㎒ 단위로 라디오 채널에 할당되어 있다. 이들 각 채널은 아날로그 방송으로서 사용해도 디지털 방송으로서 사용해도 좋다. 디지털 방송의 경우에는, MPEG2 사양에 기초한 트랜스포트 패킷 형식으로 전송되고, 음성이나 영상에 더하여, 각종 데이터 방송용 데이터도 송신할 수 있다.
헤드엔드(101)는, 이들 주파수 대역에 적절한 방송 신호를 송신하기 위해서, QPSK 변조부나 QAM 변조부 등을 갖는다. 또, 단말 장치로부터의 데이터를 수신하기 위해서, QPSK 복조기를 갖는다. 또, 헤드엔드(101)는, 이들 변조부 및 복조부에 관련되는 다양한 기기를 갖는다고 생각된다. 그러나, 본 발명은 주로 단말 장치에 관한 것이기 때문에, 상세한 설명은 생략한다.
단말 장치A(111), 단말 장치B(112), 단말 장치C(113)는, 헤드엔드(101)로부터의 방송 신호를 수신하여 재생한다. 또, 헤드엔드(101)에 대해서, 각 단말 장치 고유의 데이터를 송신한다. 3개의, 단말 장치는 본 실시 형태에서는 동일 구성을 취한다.
도 5는, 단말 장치의 하드웨어 구성을 나타내는 블록도이다. 500은 단말 장치이고, QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503), TS 디코더(505), 오디오 디코더(506), 스피커(507), 비디오 디코더(508), 디스플레이(509), 2차 기억부(510), 1차 기억부(511), ROM(512), 입력부(513), CPU(514), 스틸 디코더(515), OSD 제어부(516), 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519), 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522), 합성부(523)로 구성된다. 또 단말 장치(500)에는 POD(504)를 착탈할 수 있다.
도 6은, 단말 장치(500)의 외관의 일례인 박형 텔레비전이다.
601은, 박형 텔레비전의 본체이고, POD(504)를 제외하고, 단말 장치(500)의 구성 요소의 전부를 내장하고 있다.
602는 디스플레이이고, 도 5에서의 디스플레이(509)에 상당한다.
603은 다수의 버튼으로 구성되는 프론트 패널부이고, 도 5의 입력부(513)에 상당한다.
604는 신호 입력 단자이고, 헤드엔드(101)와의 신호의 송수신을 행하기 위해서 케이블선을 접속한다. 신호 입력 단자는, 도 5의 QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503)와 접속되어 있다.
605는, 도 5의 POD(504)에 상당하는 POD 카드이다. POD(504)는, 도 6의 POD 카드(605)와 같이, 단말 장치(500)와는 독립한 형태를 취하고, 단말 장치(500)에 착탈 가능하게 되어 있다. POD(504)의 상세한 것은 후술한다.
606은 POD 카드(605)를 삽입하는 삽입 슬롯이다.
도 5를 참조하여, QAM 복조부(501)는, CPU(514)로부터 지정된 주파수를 포함하는 튜닝 정보로, 헤드엔드(101)로 QAM 변조되어 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
QPSK 복조부(502)는, CPU(514)로부터 지정된 주파수를 포함하는 튜닝 정보로, 헤드엔드(101)에서 QPSK 변조되어 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
QPSK 변조부(503)는, CPU(514)로부터 지정된 주파수를 포함하는 변조 정보로, POD(504)로부터 전해진 신호를 QPSK 변조하여, 헤드엔드(101)에 송신한다.
POD(504)는, 도 6과 같이 단말 장치 본체(500)로부터 착탈 가능한 형태를 하고 있다. 단말 본체(500)와 POD(504)의 접속 인터페이스는, OpenCable(TM) HOST-POD Interface Specification(OC-SP-HOSTPOD-IF-I12-030210) 및, 이 사양서로부터 참조되어 있는 사양서에 정의되어 있다. 여기에서는, 상세한 것은 생략하고, 본 발명에 관한 부분만을 해설한다.
도 7은, POD(504)의 내부 구성을 나타내는 블록도이다. POD(504)는, 제1 디스크램블러부(701), 제2 디스크램블러부(702), 스크램블러부(703), 제1 기억부(704), 제2 기억부(705), CPU(706)로 구성된다.
제1 디스크램블러부(701)는, CPU(706)로부터의 지시에 의해, 단말 장치(500)의 QAM 복조부(501)로부터 암호화된 신호를 수취하여 복호를 행한다. 그리고, 복호된 신호를 단말 장치(500)의 TS 디코더(505)에 보낸다. 디코드에 필요한 열쇠 등의 정보는 CPU(706)로부터 적절히 부여된다. 구체적으로는, 헤드엔드(101)는 몇개의 유료 채널을 방송하고 있다. 유저가, 이 유료 채널을 구매하면, 제1 디스크램블러부(701)는, CPU(706)로부터 열쇠 등이 필요한 정보를 수취하여 디스크램블함 으로써, 유저는 유료 채널을 열람할 수 있다. 열쇠 등이 필요한 정보가 부여되지 않은 경우에는, 제1 디스크램블러부(701)는, 디스크램블을 행하지 않고, 수취한 신호를 그대로 TS 디코더(505)에 보낸다.
제2 디스크램블러부(702)는, CPU(706)로부터의 지시에 의해, 단말 장치(500)의 QPSK 복조부(502)로부터 암호화된 신호를 수취하여, 복호를 행한다. 그리고, 복호된 데이터를 CPU(706)에 인도한다.
스크램블러부(703)는, CPU(706)로부터의 지시에 의해, CPU(706)로부터 수취한 데이터를 암호화하여, 단말 장치(500)의 QPSK 변조부(503)에 보낸다.
제1 기억부(704)는, 구체적으로는 RAM 등의 1차 기억 메모리로 구성되고, CPU(706)가 처리를 행할 때, 일시적으로 데이터를 보존하기 위해서 사용된다.
제2 기억부(705)는, 구체적으로는 플래시 ROM 등의 2차 기억 메모리로 구성되고, CPU(706)가 실행하는 프로그램을 격납하며, 또, 전원 OFF가 되어도 소거되어서는 곤란한 데이터의 보존에 사용된다.
CPU(706)는, 제2 기억부(705)가 기억하는 프로그램을 실행한다. 프로그램은 다수의 서브 프로그램으로 구성된다. 도 8은, 제2 기억부(705)가 기억하는 프로그램의 일례이다. 도 8에서는, 프로그램(800)은, 메인 프로그램(801), 초기화 서브 프로그램(802), 네트워크 서브 프로그램(803), 재생 서브 프로그램(804), PPV 서브 프로그램(805) 등 다수의 서브 프로그램으로 구성되어 있다.
여기에서 PPV란 Pay Per View의 약자이고, 영화 등 특정한 프로그램을 유료로 시청할 수 있도록 하는 서비스이다. 유저가 암호 인증 번호를 입력하면, 구입 한 것이 헤드엔드(101)에 통지되어, 스크램블이 해제되어, 시청할 수 있다. 이 시청에 의해, 유저는 후일, 구입 대금을 지불하는 것이다.
메인 프로그램(801)은, CPU(706)가 전원 투입시에 최초로 기동하는 서브 프로그램으로, 다른 서브 프로그램의 제어를 행한다.
초기화 서브 프로그램(802)은, 전원 투입시에 메인 프로그램(801)에 의해서 기동되고, 단말 장치(500)와의 정보 교환 등을 행하여, 초기화 처리를 행한다. 초기화 처리의 상세한 것은, OpenCable(TM) HOST-POD Interface Specification(OC-SP-HOSTPOD-IF-I12-030210) 및, 이 사양서로부터 참조되어 있는 사양서로 정의되어 있다. 또, 사양서에 정의되어 있지 않은 초기화 처리도 행한다. 여기에서는, 그 일부를 소개한다. 전원이 투입되면, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제1 주파수를 단말 장치(500)의 CPU(514)를 통해서, QPSK 복조부(502)에 통지한다. QPSK 복조부(502)는, 부여된 제1 주파수로 튜닝을 행하여, 신호를 제2 디스크램블러부(702)에 보낸다. 또, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제1 열쇠 등의 복호 정보를 제2 디스크램블러부(702)에 부여한다. 그 결과, 제2 디스크램블러부(702)는, 디스크램블러를 행하여, 초기화 서브 프로그램(802)을 실행하는 CPU(706)에 인도한다. 따라서, 초기화 서브 프로그램(802)은 정보를 수취할 수 있다. 본 실시 형태에서는, 초기화 서브 프로그램(802)은 네트워크 서브 프로그램(803)을 통해서 정보를 수취하는 것으로 한다. 상세한 것은 후술한다.
또, 초기화 서브 프로그램(802)은, 제2 기억부(705)가 기억하는 제2 주파수 를 단말 장치(500)의 CPU(514)를 통해서, QPSK 변조부(503)에 통지한다. 초기화 서브 프로그램(802)은 제2 기억부(705)가 기억하는 암호화 정보를 스크램블러부(703)에 부여한다. 초기화 서브 프로그램(802)이 송신하고 싶은 정보를, 네트워크 서브 프로그램(803)을 통해서, 스크램블러부(703)에 부여하면, 스크램블러부(703)는 부여된 암호화 정보를 이용하여 데이터를 암호화하여, 단말 장치(500)의 QPSK 변조부(503)에 부여한다. QPSK 변조부(503)는, 부여된 암호화된 정보를 변조하여, 헤드엔드(101)에 송신한다.
이 결과, 초기화 서브 프로그램(802)은, 단말 장치(500), 제2 디스크램블러부(702), 스크램블러부(703), 네트워크 서브 프로그램(803)을 통해서, 헤드엔드(101)와 쌍방향 통신을 행할 수 있다.
네트워크 서브 프로그램(803)은, 메인 프로그램(801), 초기화 서브 프로그램(802) 등의 다수의 서브 프로그램으로부터 사용되는, 헤드엔드(101)와의 쌍방향 통신을 행하기 위한 서브 프로그램이다. 구체적으로는, 네트워크 서브 프로그램(803)을 사용하는 다른 서브 프로그램에 대해서, TCP/IP에 의해서, 헤드엔드(101)와 쌍방향 통신을 행하고 있도록 작동한다. TCP/IP는, 다수의 장치 사이에서 정보 교환을 행하기 위한 프로토콜을 규정한 공지의 기술이고, 상세한 설명은 생략한다. 네트워크 서브 프로그램(803)은, 전원 투입시에 초기화 서브 프로그램(802)에 기동되면, 미리 제2 기억부(705)가 기억하고 있는 POD(504)를 식별하는 식별자인 MAC 어드레스(Media Access Control 어드레스의 약자)를, 단말 장치(500)를 통해서 헤드엔드(101)에 통지하여, IP 어드레스의 취득을 요구한다. 헤드엔 드(101)는, 단말 장치(500)를 통해서 POD(504)에 IP 어드레스를 통지하고, 네트워크 서브 프로그램(803)은, IP 어드레스를 제1 기억부(704)에 기억한다. 이후, 헤드엔드(101)와 POD(504)는, 이 IP 어드레스를, POD(504)의 식별자로서 사용하여 통신을 행한다.
재생 서브 프로그램(804)은, 제2 기억부(705)가 기억하는 제2 열쇠 등의 복호 정보나, 단말 장치(500)로부터 부여되는 제3 열쇠 등의 복호 정보를 제1 디스크램블러부(701)에 부여하여, 디스크램블을 가능하게 한다. 또, 네트워크 서브 프로그램(803)을 통해서, 제1 디스크램블러부(701)에 입력되어 있는 신호가, PPV 채널인 것의 정보를 수취한다. PPV 채널이라고 알았을 때에는, PPV 서브 프로그램(805)을 기동한다.
PPV 서브 프로그램(805)은, 기동되면, 단말 장치(500)에 프로그램의 구입을 재촉하는 메시지를 표시하여, 유저의 입력을 수취한다. 구체적으로는, 단말 장치(500)의 CPU(514)에 화면에 표시하고 싶은 정보를 보내면, 단말 장치(500)의 CPU(514) 상에서 동작하는 프로그램이, 단말 장치(500)의 디스플레이(509) 상에 메시지를 표시한다. 유저는, 단말 장치(500)의 입력부(513)를 통해서 암호 인증 번호를 입력하면, 단말 장치(500)의 CPU(514)가, 그것을 수취하여, POD(504)의 CPU(706) 상에서 동작하는 PPV 서브 프로그램(805)에 통지한다. PPV 서브 프로그램(805)은, 수취한 암호 인증 번호를 네트워크 서브 프로그램(803)을 통해서 헤드엔드(101)에 송신한다. 헤드엔드(101)는, 암호 인증 번호가 정확하면, 복호에 필요한 제4 열쇠 등의 복호화 정보를 네트워크 서브 프로그램(803)을 통해서, PPV 서 브 프로그램(805)에 통지한다. PPV 서브 프로그램(805)은 수취한 제4 열쇠 등의 복호화 정보를 제1 디스크램블러부(701)에 부여하고, 제1 디스크램블러부(701)는, 입력되어 있는 신호를 디스크램블한다.
도 5를 참조하여, TS 디코더(505)는, POD(504)로부터 수취한 신호의 필터링을 실시하여, 필요한 데이터를 오디오 디코더(506) 및 비디오 디코더(508), CPU(514)에 인도한다. 여기에서, POD(504)로부터 오는 신호는 MPEG2 트랜스포트 스트림이다. MPEG2 트랜스포트 스트림의 상세한 것은 MPEG 규격서 ISO/IEC13818-1에 기재되어 있고, 본 실시 형태에서는 상세한 것은 생략한다. MPEG2 트랜스포트 스트림은, 다수의 고정 길이 패킷으로 구성되고, 각 패킷에는, 패킷 ID가 붙여져 있다. 도 9는 패킷의 구성도이다. 900은 패킷이고, 고정 길이인 188바이트로 구성된다. 선두 4바이트가 헤더(901)로, 패킷의 식별 정보를 격납하고 있고, 나머지 184바이트가 페이로드(902)로, 송신하고 싶은 정보를 포함하고 있다. 903은, 헤더(901)의 내역이다. 선두로부터 12비트째∼24비트째까지의 13비트에 패킷 ID가 포함되어 있다. 도 10은 보내져오는 다수의 패킷의 열을 표현한 모식도이다. 패킷(1001)은, 헤더에 패킷 ID「1」을 갖고, 페이로드에는 영상(A)의 첫번째의 정보가 들어가 있다. 패킷(1002)은, 헤더에 패킷 ID「2」를 갖고, 페이로드에는 음성(A)의 첫번째의 정보가 들어가 있다. 패킷(1003)은, 헤더에 패킷 ID「3」을 갖고, 페이로드에는 음성(B)의 첫번째의 정보가 들어가 있다.
패킷(1004)은, 헤더에 패킷 ID「1」를 갖고, 페이로드에는 영상(A)의 두번째의 정보가 들어가 있으며, 이것은 패킷(1001)의 계속으로 되어 있다. 동일하게 패 킷(1005, 1026, 1027)도 다른 패킷의 후속 데이터를 격납하고 있다. 이와 같이, 동일 패킷 ID를 갖는, 패킷의 페이로드의 내용을 연결하면, 연속한 영상이나 음성을 재현할 수 있다.
도 10을 참조하여, CPU(514)가 패킷 ID「1」과 출력처로서「비디오 디코더(508)」를 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수취한 MPEG2 트랜스포트 스트림으로부터 패킷 ID「1」의 패킷을 추출하여, 비디오 디코더(508)에 인도한다. 도 10에서는, 영상 데이터만을 비디오 디코더(508)에 인도하게 된다. 동시에, CPU(514)가 패킷 ID「2」와「오디오 디코더(506)」를 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수취한 MPEG2 트랜스포트 스트림으로부터 패킷 ID「2」의 패킷을 추출하여, 오디오 디코더(506)에 인도한다. 도 10에서는, 음성 데이터만을 오디오 디코더(506)에 인도하게 된다.
이 패킷 ID에 따라서 필요한 패킷만을 취출하는 처리가, TS 디코더(505)가 행하는 필터링이다. TS 디코더(505)는 CPU(514)로부터 지시된 다수의 필터링을 동시에 실행할 수 있다.
도 5를 참조하여, 오디오 디코더(506)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 오디오 데이터를 연결하여, 디지털-아날로그 변환을 행하여 스피커(507)에 출력한다.
스피커(507)는, 오디오 디코더(506)로부터 부여된 신호를 음성 출력한다.
비디오 디코더(508)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 비디오 데이터를 부여된 비디오 해상도로 디코드하고, 디코드 한 비디오 데이터를 비디오 버퍼(517)에 격납한다. 여기에서, 부여된 비디오 해상도는, 후술하는 비디오 해상도 관리부(3102)로부터 비디오 디코더(508)로 전해지고, 비디오 디코더(508)는 비디오 해상도를 비디오 버퍼(517)에 격납한다.
또, 비디오 디코더(508)에 비디오 해상도가 전해지지 않은 경우, 디폴트의 비디오 해상도가 사용된다.
또, 비디오 해상도 관리부(3102)가 비디오 버퍼(517)에 비디오 해상도를 격납하여, 디코드일 때, 비디오 디코더(508)가 비디오 버퍼(517)에 격납되어 있는 비디오 해상도를 참조하여 디코드해도 좋다.
또, 동시에 비디오의 데이터의 해상도나 4 : 3이나 16 : 9 등의 영상의 종횡비 등의 영상 정보를 판독하여, 영상 정보에 변화를 검지한다. 검지한 정보는, 후술하는 비디오 포맷 해상도 변경 검지부(3104)에 통지된다.
스틸 디코더(515)는, CPU(514)로부터 지시된 MPEG-I 프레임 데이터(또는 스틸 데이터라고도 한다)를 부여된 스틸 해상도로 디코드하여, 디코드한 스틸 데이터를 스틸 버퍼(518)에 격납한다. 여기에서, 부여된 스틸 해상도는, 후술하는 스틸 해상도 관리부(3103)로부터 스틸 디코더(515)로 전해지고, 스틸 디코더(515)는 스틸 해상도를 스틸 버퍼(518)에 격납한다. 스틸 디코더(515)에 스틸 해상도가 전해지지 않은 경우, 디폴트의 스틸 해상도가 사용된다.
또, 스틸 해상도 관리부(3103)가 스틸 버퍼(518)에 스틸 해상도를 격납하고, 디코드일 때, 스틸 디코더(515)가 스틸 버퍼(518)에 격납되어 있는 스틸 해상도를 참조하여 디코드해도 좋다. MPEG2-I 프레임의 상세한 것은 MPEG 규격서 ISO/IEC13818-2에 기재되어 있고, 본 실시 형태에서는 상세한 것은 생략한다.
OSD 제어부(516)는, 부여된 OSD 해상도로 CPU(514)로부터의 지시된 OSD 데이터(그래픽스 데이터라고도 한다)를 OSD 버퍼(519)에 격납한다. 혹은, 문자 도형이 묘화되어 있는 1차 기억부(511)의 오프 스크린 버퍼의 내용을 OSD 버퍼(519)에 알파 블렌드 처리를 행하면서 고속 전송한다. 알파 블렌드 처리에 관해서는, 상세한 것은 DVB-MHP 규격서를 참조하기 바란다. 여기에서, 부여된 OSD 해상도는, 후술하는 OSD 해상도 관리부(3101)로부터 OSD 제어부(516)에 전해지고, OSD 제어부(516)는 OSD 해상도를 OSD 버퍼(519)에 격납한다. OSD 제어부(516)에 OSD 해상도가 전해지지 않은 경우, 디폴트의 OSD 해상도를 사용한다.
또, OSD 해상도 관리부(3101)가 OSD 버퍼(519)에 OSD 해상도를 격납해도 좋다.
또, OSD 제어부(516)의 구성 요소는 소프트웨어로서 실현하고, 하드웨어로서의 구성 요소로서는 삭제해도 좋다.
비디오 버퍼(517)는, 비디오 디코더(508)에 부여되는 비디오 해상도와 비디오 디코더(508)가 디코드한 비디오 데이터를 격납하는 버퍼이고, 구체적으로는 메모리 등으로 구성된다. 또한, 비디오 해상도는, 후술하는 비디오 해상도 관리부(3102)로부터 부여되어도 좋다.
스틸 버퍼(518)는, 스틸 디코더(515)로부터 부여되는 스틸 해상도와 스틸 디코더(515)가 디코드한 스틸 데이터를 격납하는 버퍼이고, 구체적으로는 메모리 등으로 구성된다. 또한, 스틸 해상도는, 후술하는 스틸 해상도 관리부(3103)로부터 부여되어도 좋다.
OSD 버퍼(519)는, OSD 제어부(516)로부터 부여되는 OSD 해상도와 OSD 제어부(516)로부터 전송된 OSD 데이터를 격납하는 버퍼이고, 구체적으로는 메모리 등으로 구성된다. 또한, OSD 해상도는, 후술하는 OSD 해상도 관리부(3101)로부터 부여되어도 좋다.
비디오 확대 축소부(520)는, 부여된 확대 축소 비율에 의해, 비디오 버퍼(517)에 격납되어 있는 비디오 데이터를 확대 축소하여 합성부(523)로 전해준다. 여기에서, 부여된 확대 축소 비율은, 후술하는 비디오 해상도 관리부(3102)로부터 전해진다. 또, 확대 축소 비율이 전해지지 않은 경우, 디폴트의 확대 축소 비율을 사용한다.
스틸 확대 축소부(521)는, 부여된 확대 축소 비율에 의해, 스틸 버퍼(518)에 격납되어 있는 스틸 데이터를 확대 축소하여 합성부(523)로 전해준다. 여기에서, 부여된 확대 축소 비율은, 후술하는 스틸 해상도 관리부(3103)로부터 전해진다. 또, 확대 축소 비율이 전해지지 않은 경우, 디폴트의 확대 축소 비율을 사용한다.
OSD 확대 축소부(522)는, 부여된 확대 축소 비율에 의해, OSD 버퍼(519)에 격납되어 있는 OSD 데이터를 확대 축소하여 합성부(523)로 전해준다. 여기에서, 부여된 확대 축소 비율은, 후술하는 OSD 해상도 관리부(3101)로부터 전해진다. 또, 확대 축소 비율이 전해지지 않은 경우, 디폴트의 확대 축소 비율을 사용한다.
합성부(523)는, CPU(514)로부터 지시된 각 버퍼의 Z 오더에 따라서, 비디오 확대 축소부(520)로부터 전해진 비디오 데이터와 스틸 확대 축소부(521)로부터 전 해진 스틸 데이터와 OSD 확대 축소부(522)로부터 전해진 OSD 데이터를 중첩하여, 디스플레이(509)에 출력한다. CPU(514)로부터 지시되는 각 버퍼의 Z 오더에 관해서 설명하면, 일반적인 텔레비전 수신 단말은, 문자 도형을 표시하는 OSD 버퍼, 비디오를 표시하는 비디오 버퍼, 정지 화면을 표시하는 스틸 버퍼의 3층 구조를 갖고 있고, 그 중첩의 순서를 Z 오더라고 부른다. 예를 들면, 도 57에서 설명하면, 5701이 시청자 측에서 볼 때 전면에 보이는 제1 버퍼, 5702가 5701의 배면인 제2 버퍼, 5703이 최배면인 제3 버퍼로 하면, 도 58과 같이 6패턴의 조합이 존재하게 된다.
디스플레이(509)는, 구체적으로는 브라운관이나 액정 등으로 구성되고, 비디오 디코더(508)로부터 부여된 비디오 신호를 출력하거나, CPU(514)로부터 지시된 메시지를 표시하거나 한다.
2차 기억부(510)는, 구체적으로는, 플래시 메모리나 하드디스크 등으로 구성되고, CPU(514)로부터 지시된 데이터나 프로그램을 보존하거나 삭제하거나 한다. 또, 보존되어 있는 데이터나 프로그램은 CPU(514)에 참조된다. 보존되어 있는 데이터나 프로그램은, 단말 장치(500)의 전원이 절단된 상태여도 계속 보존된다.
1차 기억부(511)는, 구체적으로는, RAM 등으로 구성되고, CPU(514)로부터 지시된 데이터나 프로그램을 일차적으로 보존하거나 삭제하거나 한다. 또, 보존되어 있는 데이터나 프로그램은 CPU(514)에 참조된다. 보존되어 있는 데이터나 프로그램은, 단말 장치(500)의 전원이 절단되었을 때에, 말소된다.
ROM(512)은, 개서 불가능한 메모리 디바이스이고, 구체적으로는 ROM이나 CD- ROM, DVD 등으로 구성된다. ROM(512)은, CPU(514)가 실행하는 프로그램이 격납되어 있다.
입력부(513)는, 구체적으로는, 프론트 패널이나 리모콘으로 구성되고, 유저로부터의 입력을 접수한다. 도 11은, 프론트 패널로 입력부(513)를 구성한 경우의 일례이다. 1100은 프론트 패널이고, 도 6의 프론트 패널부(603)에 상당한다. 프론트 패널(1100)은 7개의 버튼, 상부 커서 버튼(1101), 하부 커서 버튼(1102), 좌측 커서 버튼(1103), 우측 커서 버튼(1104), OK 버튼(1105), 취소 버튼(1106), EPG 버튼(1107)을 구비하고 있다. 유저가 버튼을 가압하면, 가압된 버튼의 식별자가, CPU(514)에 통지된다.
CPU(514)는, ROM(512)이 기억하는 프로그램을 실행한다. 실행하는 프로그램의 지시에 따라서, QAM 복조부(501), QPSK 복조부(502), QPSK 변조부(503), POD(504), TS 디코더(505), 디스플레이(509), 2차 기억부(510), 1차 기억부(511), ROM(512)을 제어한다.
도 12는, ROM(512)에 기억되어, CPU(514)에 실행되는 프로그램의 구성도의 일례이다.
프로그램(1200)은, 다수의 서브 프로그램으로 구성되고, 구체적으로 OS(1201), EPG(1202), JavaVM(1203), 서비스 매니저(1204), Java 라이브러리(1205)로 구성된다.
OS(1201)는, 단말 장치(500)의 전원이 투입되면, CPU(514)가 기동하는 서브 프로그램이다. OS(1201)는, 오퍼레이팅 시스템의 약자이고, Linux 등이 일례이다. OS(1201)은, 다른 서브 프로그램을 평행하게 실행하는 커넬(1201a) 및 라이브러리(1201b)로 구성되는 공지의 기술의 총칭이고, 상세한 설명은 생략한다. 본 실시 형태에서는, OS(1201)의 커넬(1201a)은, EPG(1202)와 JavaVM(1203)을 서브 프로그램으로서 실행한다. 또, 라이브러리(1201b)는, 이들 서브 프로그램에 대해서, 단말 장치(500)가 유지하는 구성 요소를 제어하기 위한 다수의 기능을 제공한다.
기능의 일례로서, 튜닝 기능을 소개한다. 튜닝 기능은, 다른 서브 프로그램으로부터 주파수를 포함하는 튜닝 정보를 수취하여, 그것을 QAM 복조부(501)에 인도한다. QAM 복조부(501)는 부여된 튜닝 정보에 기초하여 복조 처리를 행하여, 복조한 데이터를 POD(504)에 인도할 수 있다. 이 결과, 다른 서브 프로그램은 라이브러리(1201b)를 통해서 QAM 복조기를 제어할 수 있다.
EPG(1202)는, 유저에게 프로그램 일람을 표시 및, 유저로부터의 입력을 접수하는 프로그램 표시부(1202a)와, 채널 선국을 행하는 재생부(1202b)로 구성된다. 여기에서, EPG는 Electric Program Guide의 약자이다. EPG(1202)는, 단말 장치(500)의 전원이 투입되면, 커넬(1201a)에 의해서 기동되고, 기동된 EPG(1202)의 내부에서는, 프로그램 표시부(1202a)가 단말 장치(500)의 입력부(513)를 통해서, 유저로부터의 입력을 기다린다. 여기에서, 입력부(513)가 도 11에서 도시되는 프론트 패널로 구성되어 있는 경우, 유저가, 입력부(513)의 EPG 버튼(1107)을 가압하면, EPG 버튼의 식별자가 CPU(514)에 통지된다. CPU(514) 상에서 동작하는 서브 프로그램인 EPG(1202)의 프로그램 표시부(1202a)는, 이 식별자를 수취하여, 프로그램 정보를 디스플레이(509)에 표시한다. 도 13(1) 및 (2)는, 디스플레이(509)에 표시된 프로그램 표의 일례이다. 도 13(1)을 참조하여, 디스플레이(509)에는, 격자 형상으로 프로그램 정보가 표시되어 있다. 열(1301)에는, 시각 정보가 표시되어 있다. 열(1302)에는, 채널명「채널(1)」과, 열(1301)의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다. 「채널(1)」에서는, 9 : 00∼10 : 30에 프로그램「뉴스 9」가 방영되고, 10 : 30∼12 : 00는「영화 AAA」가 방영되는 것을 나타낸다. 열(1303)도 열(1302)과 동일하게 채널명「채널 2」와, 열(1301)의 시각에 대응하는 시간대에 방영되는 프로그램이 표시되어 있다. 9 : 00∼11 : 00에 프로그램「영화 BBB」가 방영되고, 11 : 00∼12 : 00는「뉴스 11」이 방영된다. 1330은 커서이다. 커서(1330)는, 프론트 패널(1100)의 좌측 커서(1103)와 우측 커서(1104)를 가압하면 이동한다. 도 13(1)의 상태에서, 우측 커서(1104)를 가압하면, 커서(1330)는 우측으로 이동하여, 도 13(2)와 같이 된다. 또, 도 13(2)의 상태에서, 좌측 커서(1103)를 가압하면, 커서(1330)는 좌측으로 이동하여, 도 13(1)과 같이 된다.
도 13(1)의 상태에서, 프론트 패널(1100)의 OK 버튼(1105)이 가압되어, 프로그램 표시부(1202a)는, 「채널 1」의 식별자를 재생부(1202b)에 통지한다. 도 13(2)의 상태에서, 프론트 패널(1100)의 OK 버튼(1105)이 가압되면, 프로그램 표시부(1202a)는, 「채널 2」의 식별자를 재생부(1202b)에 통지한다.
또, 프로그램 표시부(1202a)는, 표시하는 프로그램 정보를, POD(504)를 통해서 헤드엔드(101)로부터 정기적으로, 1차 기억부(511)에 기억해 둔다. 일반적으로, 헤드엔드로부터의 프로그램 정보의 취득은 시간이 걸린다. 입력부(513)의 EPG 버튼(1107)이 가압되었을 때, 1차 기억부(511)에 미리 보존된 프로그램 정보를 표시함으로써, 신속하게 프로그램 표를 표시할 수 있다.
재생부(1202b)는, 수취한 채널의 식별자를 이용하여, 채널을 재생한다. 채널의 식별자와 채널의 관계는, 채널 정보로서, 2차 기억부(510)에 미리 격납되어 있다. 도 14는 2차 기억부(510)에 격납되어 있는 채널 정보의 일례이다. 채널 정보는 표 형식으로 격납되어 있다. 열(1401)은 채널의 식별자이다. 열(1402)은 채널명이다. 열(1403)은 튜닝 정보이다. 여기에서, 튜닝 정보는 주파수나 전송 레이트, 부호화율 등을 포함하여, QAM 복조부(501)에 부여하는 값이다. 열 1404는 프로그램 넘버이다. 프로그램 넘버란, MPEG2 규격으로 규정되어 있는 PMT를 식별하기 위한 번호이다. PMT에 관해서는 후술한다. 행(1411∼1414)의 각 행은, 각 채널의 식별자, 채널명, 튜닝 정보의 조가 된다. 행(1411)은 식별자가「1」, 채널명이「채널 1」, 튜닝 정보에 주파수「150㎒」, 프로그램 넘버가「101」을 포함하는 조로 되어 있다. 재생부(1202b)는, 채널의 재생을 하기 위해서, 수취한 채널의 식별자를 그대로 서비스 매니저에게 인도한다.
또, 재생부(1202b)는, 재생 중에, 유저가 프론트 패널(1100)의 상부 커서(1101)와 하부 커서(1102)를 가압하면, 입력부(513)로부터 CPU(514)를 통해서, 가압된 통지를 수취하여, 재생하고 있는 채널을 변경한다. 우선, 재생부(1202b)는, 1차 기억부(511)에 현재 재생 중인 채널의 식별자를 기억한다. 도 15(1) (2) 및 (3)은, 1차 기억부(511)에 보존하고 있는 채널의 식별자의 예이다. 도 15(1)에서는 식별자「3」이 기억되어 있고, 도 14를 참조하여, 채널명「TV 3」의 채널이 재생 중인 것을 나타낸다. 도 15(1)의 상태에서, 유저가 상부 커서(1101)를 가압하면 재생부(1202b)는, 도 14의 채널 정보를 참조하여, 표 중의 앞의 채널인 채널명「채널 2」의 채널로 재생을 전환하기 위해서, 서비스 매니저에게 채널명「채널 2」의 식별자「2」를 인도한다. 동시에, 1차 기억부(511)에 기억되어 있는 채널 식별자「2」로 개서한다. 도 15(2)는, 채널 식별자가 개서된 상태를 나타낸다. 또, 도 15(1)의 상태에서, 유저가 하부 커서(1102)를 가압하면 재생부(1202b)는, 도 14의 채널 정보를 참조하여, 표 중의 다음의 채널인 채널명「TV Japan」의 채널로 재생을 전환하기 위해서, 서비스 매니저에게 채널명「TV Japan」의 식별자「4」를 인도한다. 동시에, 1차 기억부(511)에 기억되어 있는 채널 식별자「4」로 개서한다. 도 15(3)은, 채널 식별자가 개서된 상태를 나타낸다.
JavaVM(1203)은, Java(TM) 언어로 기술된 프로그램을 순차적으로 해석하여 실행하는 Java 버츄얼 머신이다. Java 언어로 기술된 프로그램은 바이트 코드라고 불리는, 하드웨어에 의존하지 않는 중간 코드로 컴파일된다. Java 버츄얼 머신은, 이 바이트 코드를 실행하는 인터프리터이다. 또, 일부의 Java 버츄얼 머신은, 바이트 코드를 CPU(514)가 이해 가능한 실행 형식으로 번역한 후, CPU(514)로 인도하여, 실행하는 것도 행한다. JavaVM(1203)은, 커넬(1201a)에 실행하는 Java 프로그램이 지정되어 기동된다. 본 실시 형태에서는, 커넬(1201a)은 실행하는 Java 프로그램으로서 서비스 매니저(1204)를 지정한다. Java 언어의 상세한 것은, 서적「Java Language Specification(ISBN 0-201-63451-1)」등의 많은 서적으로 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다. 또, JavaVM 자체의 상세한 동작 등은, 「Java Virtual Machine Specification(ISBN 0-201-63451-X)」등의 많은 서적으로 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다.
서비스 매니저(1204)는, Java 언어로 쓰여진 Java 프로그램이고, JavaVM(1203)에 의해서 순차적으로 실행된다. 서비스 매니저(1204)는, JNI(Java Native Interface)를 통해서, Java 언어로 기술되어 있지 않은 다른 서브 프로그램을 호출하거나, 또는, 호출되거나 하는 것이 가능하다. JNI에 관해서도, 서적 「Java Native Interface」등의 많은 서적으로 해설되어 있다. 여기에서는, 그 상세한 설명을 생략한다.
서비스 매니저(1204)는, JNI를 통해서, 재생부(1202b)로부터 채널의 식별자를 수취한다.
서비스 매니저(1204)는, 최초로 Java 라이브러리(1205) 중에 있는 Tuner(1205c)에, 채널의 식별자를 인도하여, 튜닝을 의뢰한다. Tuner(1205c)는, 2차 기억부(510)가 기억하는 채널 정보를 참조하여, 튜닝 정보를 획득한다. 현재, 서비스 매니저(1204)가 채널의 식별자「2」를 Tuner(1205c)에 인도하면, Tuner(1205c)는 도 14의 행(1412)을 참조하여 대응하는 튜닝 정보「156㎒,」를 획득한다. Tuner(1205c)는, OS(1201)의 라이브러리(1201b)를 통해서, QAM 복조부(501)에 튜닝 정보를 인도한다. QAM 복조부(501)는 부여된 튜닝 정보에 따라서 헤드엔드(101)로부터 송신되어 온 신호를 복조하여, POD(504)에 인도한다.
다음에 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 CA(1205d)에 디스크램블을 의로한다. CA(1205d)는, OS(1201)의 라이브러리(1201b)를 통해서 복호에 필요한 정보를 POD(504)에 부여한다. POD(504)는, 부여된 정보를 기초로, QAM 복조부(501)로부터 부여된 신호를 복호하여 TS 디코더(505)에 인도한다.
다음에 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 JMF(1205a)에 채널의 식별자를 부여하여, 영상·음성의 재생을 의뢰한다.
우선, 최초로 JMF(1205a)는, 재생해야 하는 영상과 음성을 특정하기 위한 패킷 ID를 PAT, PMT로부터 취득한다. PAT나 PMT는 MPEG2 규격으로 규정되어 있는, MPEG2 트랜스포트 스트림 내의 프로그램 구성을 표현하는 테이블이고, MPEG2 트랜스포트 스트림에 포함되는 패킷의 페이로드에 매입되어, 음성이나 영상과 함께 송신되는 것이다. 상세한 것은 규격서를 참조하기 바란다. 여기에서는, 개략만 설명한다. PAT는, Program Association Table의 약자로, 패킷 ID「0」의 패킷에 격납되어 송신되고 있다. JMF(1205a)는, PAT를 취득하기 위해서, OS(1201)의 라이브러리(1201b)를 통해서, TS 디코더(505)에 패킷 ID「0」과 CPU(514)를 지정한다. TS 디코더(505)가 패킷 ID「0」으로 필터링을 행하여, CPU(514)에 인도함으로써 JMF(1205a)는, PAT의 패킷을 수집한다. 도 16은, 수집한 PAT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1601)은 프로그램 넘버이다. 열(1602)은 패킷 ID이다. 열(1602)의 패킷 ID는 PMT을 취득하기 위해서 이용된다. 행(1611∼1613)은, 채널의 프로그램 넘버와 대응하는 패킷 ID의 조이다. 여기에서는, 3개의 채널이 정의되어 있다. 행(1611)은 프로그램 넘버「101」과 패킷 ID「501」의 조가 정의되어 있다. 현재, JMF(1205a)에 부여된 채널의 식별자를 「2」라고 하면, JMF(1205a)는 도 14의 행(1412)을 참조하여, 대응하는 프로그램 넘버「102」를 획 득하고, 다음에, 도 16의 PAT의 행(1612)을 참조하여, 프로그램 넘버「102」에 대응하는 패킷 ID「502」를 획득한다. PMT는, Program Map Table의 약자로, PAT에서 규정된 패킷 ID의 패킷에 격납되어 송신되고 있다. JMF(1205a)는, PMT를 취득하기 위해서, OS(1201)의 라이브러리(1201b)를 통해서, TS 디코더(505)에 패킷 ID와 CPU(514)를 지정한다. 여기에서, 지정하는 패킷 ID는「502」로 한다. TS 디코더(505)가 패킷 ID「502」로 필터링을 행하여, CPU(514)에 인도함으로써 JMF(1205a)는, PMT의 패킷을 수집한다. 도 17은 수집한 PMT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1701)은 스트림 종별이다. 열(1702)은 패킷 ID이다. 열(1702)에서 지정되는 패킷 ID의 패킷에는, 스트림 종별로 지정된 정보 페이로드에 격납되어 송신되고 있다. 열(1703)은 보충 정보이다. 행(1711∼1714)은 엘리멘트리 스트림이라고 불리는, 패킷 ID와 송신하고 있는 정보의 종별의 조이다. 행(1711)은 스트림 종별「음성」과 패킷 ID「5011」의 조이고, 패킷 ID「5011」의 페이로드에는 음성이 격납되어 있는 것을 나타낸다. JMF(1205a)는, PMT로부터 재생되는 영상과 음성의 패킷 ID를 획득한다. 도 17을 참조하여, JMF(1205a)는, 행(1711)으로부터 음성의 패킷 ID「5011」을, 행 1712로부터 영상의 패킷 ID「5012」를 획득한다.
다음에, JMF(1205a)는, OS(1201)의 라이브러리(1201b)를 통해서, 획득한 음성의 패킷 ID와 출력처로서 오디오 디코더(506), 영상의 패킷 ID와 출력처로서 비디오 디코더(508)의 조를, TS 디코더(505)에 부여한다. TS 디코더(505)는 부여된 패킷 ID와 출력처에 기초하여, 필터링을 행한다. 여기에서는 패킷 ID「5011」의 패킷을 오디오 디코더(506)에, 패킷 ID「5012」의 패킷을 비디오 디코더(508)에 인도한다. 오디오 디코더(506)는, 부여된 패킷의 디지털-아날로그 변환을 행하여 스피커(507)를 통해서 음성을 재생한다. 비디오 디코더(508)는, TS 디코더(505)로부터 부여된 MPEG2 트랜스포트 스트림의 패킷에 매입된 비디오 데이터를, 비디오 버퍼(517)에 격납한다.
비디오 확대 축소부(520)는, CPU(514)로부터 지시된 확대 축소 명령에 의해, 비디오 버퍼(517)에 격납되어 있는 데이터를 확대 축소하여 합성부(523)로 전해준다.
합성부(523)는, CPU(514)로부터 지시된 Z 오더에 따라서, 비디오 확대 축소부(520)로부터 전해진 데이터와 스틸 확대 축소부(521)로부터 전해진 데이터와 OSD 확대 축소부(522)로부터 전해진 데이터를 중첩하여, 디스플레이(509)에 출력한다.
마지막으로 서비스 매니저(1204)는, Java 라이브러리(1205) 중에 있는 AM(1205b)에 채널의 식별자를 부여하여, 데이터 방송 재생을 의뢰한다. 여기에서, 데이터 방송 재생이란, MPEG2 트랜스포트 스트림에 포함되는 Java 프로그램을 추출하여, JavaVM(1203)에 실행시키는 것이다. MPEG2 트랜스포트 스트림에 Java 프로그램을 매입하는 방법은, MPEG 규격서 ISO/IEC13818-6에 기술된 DSMCC라는 방식을 이용한다. 여기에서는 DSMCC의 상세한 설명은 생략한다. DSMCC 방식은, MPEG2 트랜스포트 스트림의 패킷 중에, 컴퓨터에서 사용되고 있는 디렉토리나 파일로 구성되는 파일 시스템을 인코드하는 방법을 규정하고 있다. 또, 실행하는 Java 프로그램의 정보는 AIT라고 불리는 형식으로, MPEG2 트랜스포트 스트림의 패킷 중에 매입 되어 송신되고 있다. AIT는, DVB-MHP 규격(정식으로는, ETSI TS 101 812 DVB-MHP 사양 V1.0.2)의 10장에 정의되어 있는, Application Information Table의 약자이다.
AM(1205b)는, 우선, AIT을 획득하기 위해서, JMF(1205a)와 동일하게 PAT, PMT를 취득하여, AIT가 격납되어 있는 패킷의 패킷 ID를 획득한다. 현재, 부여된 채널의 식별자가「2」이고, 도 16의 PAT, 도 17의 PMT가 송신되어 있으면, JMF(1205a)와 동일한 순서로, 도 17의 PMT를 획득한다. AM(1205b)은, PMT로부터 스트림 종별이「데이터」이고 보충 정보로서「AIT」를 갖는 엘리멘트리 스트림으로부터 패킷 ID를 추출한다. 도 17을 참조하여, 행 1713의 엘리멘트리 스트림이 해당하고, 패킷 ID「5013」을 획득한다.
AM(1205b)은, OS(1201)의 라이브러리(1201b)를 통해서 TS 디코더(505)에 AIT의 패킷 ID와 출력처 CPU(514)을 부여한다. TS 디코더(505), 부여된 패킷 ID로 필터링을 행하여 CPU(514)에 인도한다. 이 결과, AM(1205b)은, AIT의 패킷을 수집할 수 있다. 도 18은, 수집한 AIT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1801)은 Java 프로그램의 식별자이다. 열(1802)은 Java 프로그램의 제어 정보이다. 제어 정보에는「autostart」「present」「kill」등이 있고, 「autostart」는 즉시 단말 장치(500)가 이 프로그램을 자동적으로 실행하는 것을 의미하며, 「present」는 자동 실행하지 않는 것을 의미하고, 「kill」은 프로그램을 정지하는 것을 의미한다. 열(1803)은 DSMCC 방식으로 Java 프로그램을 포함하고 있는 패킷 ID를 추출하기 위한 DSMCC 식별자이다. 열(1804)은 Java 프로그램의 프로그램명이 다. 행(1811과 1812)은 Java 프로그램의 정보의 조이다. 행(1811)으로 정의되는 Java 프로그램은, 식별자「301」, 제어 정보「autostart」, DSMCC 식별자「1」, 프로그램명「a/TopXlet」의 조이다. 행(1812)으로 정의되는 Java 프로그램은, 식별자「302」, 제어 정보「present」, DSMCC 식별자「1」, 프로그램명「b/GameXlet」의 조이다. 여기에서 2개의 Java 프로그램은 동일 DSMCC 식별자를 갖지만, 이것은 1개의 DSMCC 방식으로 인코드된 파일 시스템 내에 2개의 Java 프로그램이 포함되어 있는 것을 나타낸다. 여기에서는, Java 프로그램에 대해서 4개의 정보밖에 규정하지 않지만, 실제로는 보다 많은 정보가 정의된다. 상세한 것은 DVB-MHP 규격을 참조하기 바란다.
AM(1205b)은, AIT 중에서「autostart」의 Java 프로그램을 찾아내어, 대응하는 DSMCC 식별자 및 Java 프로그램명을 추출한다. 도 18을 참조하여, AM(1205b)은 행(1811)의 Java 프로그램을 추출하여, DSMCC 식별자「1」및 Java 프로그램명「a/TopXlet」를 획득한다.
다음에 AM(1205b)은, AIT로부터 취득한 DSMCC 식별자를 이용하여, Java 프로그램을 DSMCC 방식으로 격납하고 있는 패킷의 패킷 ID를 PMT로부터 획득한다. 구체적으로는, PMT 중에서 스트림 종별이「데이터」이고, 보충 정보의 DSMCC 식별자가 합치되는 엘리멘트리 스트림의 패킷 ID를 취득한다.
현재, DSMCC 식별자가「1」이고, PMT가 도 17이라고 하면, 행(1714)의 엘리멘트리 스트림이 합치되어, 패킷 ID「5014」를 취출한다.
AM(1205b)는, OS(1201)의 라이브러리(1201b)를 통해서 TS 디코더(505)에 DSMCC 방식으로 데이터가 매입된 패킷의 패킷 ID와 출력처로서 CPU(514)를 지정한다. 여기에서는, 패킷 ID「5014」를 부여한다. TS 디코더(505), 부여된 패킷 ID로 필터링을 행하여, CPU(514)에 인도한다. 이 결과, AM(1205b)은, 필요한 패킷을 수집할 수 있다. AM(1205b)은, 수집한 패킷으로부터, DSMCC 방식에 따라서 파일 시스템을 복원하여, 1차 기억부(511)에 보존한다. MPEG2 트랜스포트 스트림 중의 패킷으로부터 파일 시스템 등의 데이터를 취출하여 1차 기억부(511) 등의 기억 수단에 보존한 것을 이후, 다운로드라고 부른다.
도 19는, 다운로드한 파일 시스템의 일례이다. 도면 중, 원은 디렉토리를, 사각은 파일을 나타내고, 1901은 루트 디렉토리, 1902는 디렉토리「a」, 1903은 디렉토리「b」, 1904는 파일「TopXlet.class」, 1905는 파일「GameXlet.class」이다.
다음에 AM(1205b)은, 1차 기억부(511)에 다운로드한 파일 시스템 중에서 실행하는 Java 프로그램을 JavaVM(1203)에 인도한다. 현재, 실행하는 Java 프로그램명이「a/TopXlet」라고 하면, Java 프로그램명의 마지막에「.class」를 부가한 파일「a/TopXlet.class」가 실행해야 하는 파일이 된다. 「/」는 디렉토리나 파일명의 단락이고, 도 19를 참조하여, 파일(1904)이 실행해야 하는 Java 프로그램이다. 다음에 AM(1205b)는, 파일(1904)을 JavaVM(1203)에 인도한다.
JavaVM(1203)은, 인도된 Java 프로그램을 실행한다.
서비스 매니저(1204)는, 다른 채널의 식별자를 수취하면, Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해서 재생하고 있는 영상·음성 및 Java 프로그램의 실행을, 동일하게 Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해서 정지하고, 새롭게 수취한 채널의 식별자에 기초하여, 영상·음성의 재생 및 Java 프로그램의 실행을 행한다.
Java 라이브러리(1205)는, ROM(512)에 격납되어 있는 다수의 Java 라이브러리의 집합이다. 본 실시 형태에서는, 여기에서는, Java 라이브러리(1205)는, JMF(1205a), AM(1205b), Tuner(1205c), CA(1205d), POD Lib(1205e), 해상도 전환부(1205f), AWT(1205g), STL(1205h) 등을 포함하고 있다.
POD Lib(1205e)은, 라이브러리(1201b) 및 CPU(514)을 통해서 POD(504)로부터의 정보 취득이나 POD(504)의 제어를 행하는 기능을 제공한다.
해상도 전환부(1205f)는, CPU(514)을 통해서, 비디오 디코더(508), 비디오 확대 축소부(520), 스틸 디코더(515), 스틸 확대 축소부(521), OSD 제어부(516), OSD 확대 축소부(522)를 제어하는 기능을 제공한다. 상세한 것은 후술한다.
AWT(1205g)는, Java 프로그램으로부터의 묘화 지시를 접수한다. 접수한 지시에 기초하여, 필요한 정보를 OSD 제어부(516)에 보냄으로써, OSD 버퍼에 문자 도형을 묘화한다. 구체적인 묘화 처리의 예는, 선을 긋거나 사각을 그리는 등이고, Java.awt 패키지로 규정되어 있는 클래스 및 인터페이스 사양으로 실현되는 공지의 기술이다. 따라서, 상세한 것은 생략한다. 또한, 문자 도형의 묘화를 행할 때, 일단, 1차 기억부(511)로부터 오프 스크린용의 메모리를 획득하여, 획득한 오프 스크린 버퍼에 문자 도형을 묘화한 후, 오프 스크린의 내용을 OSD 제어부(516)에 전송해도 좋다.
STL(1205h)는, Java 프로그램으로부터의 표시하는 MPEG-I 프레임 데이터와 그 표시 위치를 접수한다. STL(1205h)는, 접수한 MPEG-I 프레임 데이터와 표시 위치를, 스틸 디코더(515)에 인도한다. 스틸 디코더(515)는, 부여된 표시 위치에 MPEG-I 프레임 데이터를 디코드하여, 스틸 버퍼(518)에 격납한다. 이것에 의해 Java 프로그램은, 스틸 버퍼로의 묘화를 행할 수 있다.
도 24는, 비디오의 표시 처리에 관한 플로 차트이다. TS 디코더(505)는 비디오 데이터를 비디오 디코더(508)에 전송한다(S2401). 비디오 디코더(508)는, 전송된 비디오 데이터를 디코드하여, 그 결과를 비디오 버퍼(517)에 격납한다(S2402). CPU(514)로부터 비디오의 표시에 관해서 확대 축소의 지시가 있는지를 판단한다(S2403). 확대 축소의 지시가 있는 경우에는, 비디오 확대 축소부(520)는 비디오 버퍼(517)에 격납되어 있는 데이터에 대해서 확대 축소 처리를 행하여(S2404), 합성부(523)에 전송한다(S2405). 확대 축소의 지시가 없는 경우에는, 비디오 확대 축소부(520)는 비디오 버퍼(517)에 격납되어 있는 데이터를 합성부(523)에 전송한다(S2405).
도 25는, 스틸의 표시 처리에 관한 플로 차트이다. CPU(514)로부터 스틸 디코더(515)로 MPEG2-I 프레임 데이터가 전해진다(S2501). 스틸 디코더(515)는, 전해진 MPEG2-I 프레임 데이터를 디코드하여, 그 결과를 스틸 버퍼(518)에 격납한다(S2502). CPU(514)로부터 스틸의 표시에 관해서 확대 축소의 지시가 있는지를 판단한다(S2503). 확대 축소의 지시가 있는 경우에는, 스틸 확대 축소부(521)는 스틸 버퍼(518)에 격납되어 있는 데이터에 대해서 확대 축소 처리를 행하여(S2504), 합성부(523)에 전송한다(S2505). 확대 축소의 지시가 없는 경우에는, 스틸 확대 축소부(521)는 스틸 버퍼(518)에 격납되어 있는 데이터를 합성부(523)에 전송한다.
도 26은, OSD의 표시 처리에 관한 플로 차트이다. CPU(514)로부터 OSD 제어부(516)로 문자나 도형 데이터가 전해진다(S2601). OSD 제어부(516)는 전해진 문자나 도형 데이터에 기초하여, OSD 버퍼(519)에 이미지를 구성한다(S2602). CPU(514)로부터 OSD의 표시에 관해서 확대 축소의 지시가 있는지를 판단한다(S2603). 확대 축소의 지시가 있는 경우에는, OSD 확대 축소부(522)는 OSD 버퍼(519)에 격납되어 있는 데이터에 대해서 확대 축소 처리를 행하여(S2604), 합성부(523)에 전송한다(S2605). 확대 축소의 지시가 없는 경우에는, OSD 확대 축소부(522)는 OSD 버퍼(519)에 격납되어 있는 데이터를 합성부(523)에 전송한다.
여기에서, 확대 축소의 이미지를, 예를 들어서 설명하면, 도 28의 2801과 같이, 폭 720픽셀, 높이 480픽셀의 데이터를, 폭 960픽셀, 높이 540로 확대하면 도 28의 2802와 같이 된다.
도 59는, 도 24에서 도시되는 플로 차트에서 생성되는 비디오와 도 25에서 도시되는 플로 차트에서 생성되는 스틸과 도 26에서 도시되는 플로 차트에서 생성되는 OSD의 합성 처리에 관한 플로 차트이다. 합성부(523)는, CPU(514)로부터 Z 오더의 변경 지시가 있는지를 판단하여(S5901), 변경 지시가 있는 경우에는, 변경 지시에 따라서, 제1 버퍼(5701), 제2 버퍼(5702), 제3 버퍼(5703)에, 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519)의 어느 버퍼가 해당하는지를 결정한다(S5902). 변경 지시가 없는 경우에는, 이전의 Z 오더에 따른다. Z 오더Z 오더 합은, 도 58과 같이 6패턴의 조합 중 어느 하나이다. 다음에 합성부(523)는, 최배면인 제3 버퍼(5703)에 해당하는 버퍼가, 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519)의 어느 버퍼가 해당하는지를 판단하여(S5903), 그 버퍼가, 비디오 버퍼(517)인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S5904), 스틸 버퍼(518)인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S5905), OSD 버퍼(519)인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S5906). 예를 들면, 합성하는 데이터의 이미지가 도 29의 2901인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3001과 같이 된다. 다음에 합성부(523)는, 제2 버퍼(5702)에 해당하는 버퍼가, 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼의 어느 버퍼(519)가 해당하는지를 판단하여(S5907), 그 버퍼가, 비디오 버퍼(517)인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S5908), 스틸 버퍼(518)인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S5909), OSD 버퍼(519)인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S5910). 예를 들면, 합성하는 데이터의 이미지가 도 29의의 2902인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3002와 같이 된다. 다음에 합성부(523)는, 최전면인 제1 버퍼(5701)에 해당하는 버퍼가, 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519)의 어느 버퍼가 해당하는지를 판단하여(S5911), 그 버퍼가, 비디오 버퍼(517)인 경우에는 합성부(523)에서 비디오 데이터를 합성하고(S5912), 스틸 버퍼(518)인 경우에는 합성부(523)에서 스틸 데이터를 합성하며(S5913), OSD 버퍼(519)인 경우에는 합성부(523)에서 OSD 데이터를 합성한다(S5914). 예를 들면, 합성하는 데이터의 이미지가 도 29의 2903인 경우, 합성한 후의 이미지를 나타내면, 도 30의 3003과 같이 된다. 마지막으로 합성 결과를 디스플레이(509)에 출력하여 표시한다(S5915).
다음에, Java 프로그램의 다운로드·보존 및, Java 프로그램의 표시 동작에 대해서 설명한다.
서비스 매니저(1204)는, Java 라이브러리(1205)에 포함되는 POD Lib(1205e)을 통해서 헤드엔드(101)와 쌍방향 통신을 행한다. 이 쌍방향 통신은, POD Lib(1205e)는 OS(1201)의 라이브러리(1201b) 및, POD(504)을 통해서, QPSK 복조부(502), QPSK 변조부(503)를 사용하여 실현된다.
서비스 매니저(1204)는, 이 통신을 이용하여 헤드엔드(101)로부터, 단말 장치(500)가 2차 기억부(510)에 보존해야 하는 Java 프로그램의 정보를 수취한다. 이 정보를 XAIT 정보라고 부른다. XAIT 정보는, 헤드엔드(101)와 POD(504) 사이에서, 임의의 형식으로 송신된다. 어떠한 송신 형식을 채용해도, XAIT에 필요로 하는 정보가 포함되어 있으면, 본 발명은 실시 가능하다.
도 20은, 헤드엔드(101)로부터 취득한 XAIT의 정보의 일례를 모식적으로 나타낸 표이다. 열(2001)은 Java 프로그램의 식별자이다. 열(2002)은 Java 프로그램의 제어 정보이다. 제어 정보에는「autoselect」「present」등이 있고, 「autoselect」는 단말 장치(500)가 전원 투입시에 이 프로그램을 자동적으로 실행하는 것을 의미하며, 「present」는 자동 실행하지 않는 것을 의미한다. 열(2003)은, DSMCC 방식으로 Java 프로그램을 포함하고 있는 패킷 ID를 추출하기 위한 DSMCC 식별자이다. 열(2004)은 Java 프로그램의 프로그램명이다. 열(2005)은 Java 프로그램의 우선도이다. 행(2011과 2012)은 Java 프로그램의 정보의 조이다. 행(2011)에서 정의되는 Java 프로그램은, 식별자「701」, 제어 정보「autoselect」, DSMCC 식별자「1」, 프로그램명「a/Banner1Xlet」의 조이다. 여기에서는, Java 프로그램에 대해서 5개의 정보밖에 규정하지 않지만, 보다 많은 정보가 정의되어 있어도 본 발명은 실시 가능하다.
서비스 매니저(1204)는, XAIT 정보를 수취하면, AIT 정보로부터 Java 프로그램을 다운로드한 순서와 동일 순서로, MPEG2 트랜스포트 스트림으로부터 파일 시스템을 1차 기억부(511)에 보존한다. 그 후, 보존한 파일 시스템을 2차 기억부(510)에 복사한다. 또한, 1차 기억부(511)를 통하지 않고, 직접 2차 기억부(510)에 다운로드하는 것도 실시 가능하다. 다음에, 서비스 매니저(1204)는, XAIT 정보에 다운로드한 파일 시스템의 격납 위치를 대응시켜서 2차 기억부(510)에 보존한다. 도 21은, 2차 기억부(510)가 XAIT 정보와 다운로드한 파일 시스템이 대응되어 보존되고 있는 일례를 나타낸다. 도 21 중에서, 도 20과 동일 번호의 요소는 도 20과 동일하기 때문에, 설명은 생략한다. 열(2101)은 대응하는 다운로드한 파일 시스템의 보존 위치를 격납한다. 도면 중, 보존 위치는 화살표로 나타내고 있다. 2110은 다운로드한 파일 시스템이고, 내부에 탑 디렉토리(2111), 디렉토리「a」(2112), 디렉토리「b」(2113), 파일「Banner1Xlet.class」(2114), 파일「Banner2Xlet.class」(2115)를 유지한다.
여기에서, XAIT 정보는, Java 프로그램을 보존한 후 보존하고 있지만, Java 프로그램을 보존하기 전에 보존하는 것도 실시 가능하다.
단말 장치(500)에 전원이 투입된 후, OS(1201)가, 서비스 매니저(1204)를 JavaVM(1203)에 지정하고, JavaVM(1203)이 서비스 매니저(1204)를 기동한 후, 서비스 매니저(1204)는, 최초로 2차 기억부(510)에 보존된 XAIT 정보를 참조한다. 여기에서 각 Java 프로그램의 제어 정보를 참조하여 「autoselect」의 프로그램을 JavaVM(1203)에 인도하여, 기동한다. 도 21을 참조하여, 행(2011)에서 정의되는 Java 프로그램「Banner1Xlet」이 기동된다.
Java 프로그램「Banner1Xlet」이 기동되면, Java 프로그램「Banner1Xlet」이 문자나 도형을 표시하는 경우, Java 프로그램「Banner1Xlet」은 CPU(514)에 대해서 OSD의 표시를 지시한다. CPU(514)는 OSD 제어부(516)로 문자나 도형 데이터를 전해주고, OSD 표시 처리가 행해져서, 최종적으로 합성부(523)에서 OSD 버퍼(519)는 비디오 버퍼(517)와 스틸 버퍼(518)가 합성되어, 디스플레이(509)에 표시된다.
다음에, 본 발명의 주요 기능인 영상 해상도 전환 기능에 대해서 설명한다. 도 31은, 영상 해상도 전환 기능의 구성도이다.
어플리케이션 프로그램(3100)은, 예를 들면, Java 프로그램「Banner1Xlet」과 같은 어플리케이션이다.
해상도 전환부(1205f)는, OSD 해상도 관리부(3101), 비디오 해상도 관리부(3102), 스틸 해상도 관리부(3103), 비디오 포맷 해상도 변경 검지부(3104), 해상도 선택 판단부(3105)를 포함하며, 영상 해상도 전환 기능을 맡는다.
OSD 해상도 관리부(3101)는, OSD 버퍼(519)의 해상도를 관리한다. OSD 해상도 관리부(3101)는, 어플리케이션 프로그램(3100)으로부터 현재의 OSD 버퍼(519)의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 OSD 버퍼(519)의 해상도가 변경된 것을 통지하는 기능을 갖는다. OSD 버퍼(519)의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
비디오 해상도 관리부(3102)는, 비디오 버퍼(517)의 해상도를 관리한다. 비디오 해상도 관리부(3102)는, 어플리케이션 프로그램(3100)으로부터 현재의 비디오 버퍼(517)의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 비디오 버퍼(517)의 해상도가 변경된 것을 통지하는 기능을 갖는다. 비디오 버퍼(517)의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
스틸 해상도 관리부(3103)는, 스틸 버퍼(518)의 해상도를 관리한다. 스틸 해상도 관리부(3103)는, 어플리케이션 프로그램(3100)으로부터 현재의 스틸 버퍼(518)의 해상도의 변경 요구를 접수하는 기능과, 어플리케이션 프로그램(3100)에 스틸 버퍼(518)의 해상도가 변경된 것을 통지하는 기능을 갖는다. 스틸 버퍼(518)의 해상도의 변경 요구를 접수한 경우, 해상도 선택 판단부(3105)에 통지한다.
비디오 포맷 해상도 변경 검지부(3104)는, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우, 해상도 선택 판단부(3105)에 통지한다.
해상도 선택 판단부(3105)는, OSD 해상도 관리부(3101)에 현재의 OSD 버퍼(519)의 해상도 변경 요구가 있었던 경우와, 비디오 해상도 관리부(3102)에 현재의 비디오 버퍼(517)의 해상도 변경 요구가 있었던 경우와, 스틸 해상도 관리 부(3103)에 현재의 스틸 버퍼(518)의 해상도 변경 요구가 있었던 경우와, 비디오 포맷 해상도 변경 검지부(3104)로부터 비디오 포맷의 해상도의 변경 통지가 있었던 경우에, 텔레비전 수신 단말의 각 버퍼 사이의 표시 가능한 조합을 고려하여, 각 버퍼의 해상도를 선택한다. 여기에서, 표시 가능한 조합을 설명하면, 텔레비전 수신 단말은, 문자 도형을 표시하는 OSD 버퍼(519), 비디오를 표시하는 비디오 버퍼(517), 정지 화면을 표시하는 스틸 버퍼(518)의 3층 구조를 갖고 있고, 각 버퍼 사이에서는 표시 가능한 조합을 갖고 있다. 예를 들면, 도 60, 도 61과 같은 조합이다. 텔레비전 수신 단말이 도 60에 도시하는 조합 2(6002)로 각 버퍼를 표시하고 있을 때에, 비디오 디코더(508)에서 수신한 비디오 포맷이, 화상 해상도가 가로 1920픽셀 세로 1080픽셀 및 화면 종횡비가 16 : 9로 변경된 경우, 비디오 포맷에 맞추어, 조합 4(6004)로 각 버퍼의 해상도를 변경하는 경우가 있다. 이 도 60, 도 61에 도시되는 각 버퍼의 조합은, 2차 기억부(510) 또는, 1차 기억부(511), 또는, ROM(512)에 기억되어 있다. 현재, 각 버퍼의 조합이 ROM(512)에 격납되어 있는 것으로 하면, 해상도 선택 판단부(3105)는, 표시 가능한 조합을 고려할 때, ROM(512)을 참조하여, 가능한 조합 중에서 특정한 규정에 따라서, 최적의 1개의 조합을 선택하는 것을 의미한다.
도 62, 도 63은, OSD 해상도 관리부(3101)에 현재의 OSD 버퍼(519)의 해상도 변경 요구가 있었던 경우의 해상도 선택 판단부(3105)의 플로 차트이다. OSD 해상도 관리부(3101)는 해상도 선택 판단부(3105)에 OSD 해상도를 전해주어 변경 요구를 행한다(S6201). 해상도 선택 판단부(3105)는 변경 요구된 OSD 해상도를 1차 기 억부(511)에 기억해 둔다(S6202). 다음에, 비디오 해상도 관리부(3102)에 현재의 비디오 해상도를 문의하여 취득한다(S6203). 다음에, 도 60, 도 61에 도시되는 다수의 OSD 버퍼의 해상도와 비디오 버퍼의 해상도의 조합으로부터, 변경 요구된 OSD 해상도와 현재의 비디오 해상도의 조합이 일치하고 있는 것의 선택을 시도한다(S6204). 다음에, S6204의 결과에서, 선택 가능한지를 판단한다(S6205).
S6205에서 선택 가능한 경우, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S6304).
또, S6205에서 선택 가능하지 않았던 경우, 도 60, 도 61의 조합 중에서 OSD 버퍼의 해상도와 변경 요구된 OSD 해상도가 일치하고 있는 조합의 선택을 시도한다(S6206). 다음에, 선택한 조합의 비디오의 해상도와 현재의 비디오의 해상도가 일치하고 있는지를 비교하여, 비디오의 해상도가 변경되는지의 여부를 판단한다(S6207). S6207의 결과, 변경되는 경우에만, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S6208). 다음에, 스틸 해상도 관리부(3103)에 현재의 스틸 해상도를 문의하여 취득한다(S6301). 선택한 조합의 스틸의 해상도와 현재의 스틸의 해상도가 일치하고 있는지를 비교하여, 스틸의 해상도가 변경되는지의 여부를 판단한다(S6302). S6301의 결과, 변경되는 경우에만, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S6303). 다음에, OSD 해상도 관리부(3101)에 OSD 해상도 변경 통지가 행해진다(S6304).
여기에서, 변경된 비디오 버퍼(517)의 해상도와 비디오 디코더(508)가 디코드한 비디오 영상의 해상도가 상이한 경우, 비디오 디코더(508)는 비디오 영상의 해상도를 변경된 비디오 버퍼(517)의 해상도에 맞추어, 확대 또는 축소하여 비디오 버퍼(517)에 격납한다.
비디오 확대 축소부(520)는 비디오 버퍼(517)에 격납된 비디오 데이터를 OSD 버퍼의 해상도에 맞추어, 확대 또는 축소한다. 예를 들면, 변경된 해상도의 조합이 도 62의 조합 8(6204)이라고 가정하여 설명하면, OSD 버퍼(519)의 해상도는 960*540이고, 비디오 버퍼(517)의 해상도와 스틸 버퍼(518)의 해상도는 1920*1080이기 때문에, 비디오 확대 축소부(520)는, 비디오 버퍼(517)에 격납된 비디오 데이터를 1920*1080로부터 960*540로 축소하고, 스틸 확대 축소부(521)는, 스틸 버퍼(518)에 격납된 스틸 데이터를 1920*1080로부터 960*540으로 축소함으로써, 비디오, 스틸, OSD의 해상도가 동일하게 되어, 합성부(523)는 합성을 행할 수 있다.
또한, 상기의 예에서는, 비디오 확대 축소부(520), 스틸 확대 축소부(521)가 OSD 버퍼(519)의 해상도에 맞추어 확대 또는 축소되고 있지만, 스틸 확대 축소부(521), OSD 확대 축소부(522)가 비디오 버퍼(517)의 해상도에 맞추어 확대 또는 축소되거나, 또는, 비디오 확대 축소부(520), OSD 확대 축소부(522)가 스틸 버퍼(518)의 해상도에 맞추어 확대 또는 축소하는 것으로 해도 좋다.
이와 같이, 표시 가능한 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519)의 해상도의 조합은, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)의 동작을 규정하는 확대 축소 정보를 내포하고 있다. 혹은, 표시 가능한 비디오 버퍼(517), 스틸 버퍼(518), OSD 버퍼(519)의 해상도의 조합과 대응하여, 명시적으로 확대 축소 정보를 2차 기억부(510), 1차 기억부(511), ROM(512) 등 에 기억해도 좋다. 여기에서, 확대 축소 정보는 구체적으로, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522) 각각에 대해서 정의되어 있어도 좋고, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522) 공통으로 합성부(523)에 출력해야 하는 해상도로서 규정되어 있어도 좋다. 또, 이 공통의 해상도를 지정하는 공통 해상도 지정부를 부가함으로써, 합성부(523)에 출력하는 비디오, OSD, 스틸의 해상도를 용이하게 변경할 수 있도록 해도 좋다. 여기에서, 공통 해상도 지정부는 어플리케이션 프로그램으로부터 해상도를 지정해도 좋고, 해상도 선택 판정부(3105)가 해상도를 지정해도 좋다.
또, 해상도 선택 판단부(3105)는, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)에 대해서, 확대 축소의 지시도 행한다.
도 64, 도 65는, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우의 해상도 선택 판단부(3105)의 플로 차트이다. 비디오 포맷 해상도 변경 검지부(3104)는 해상도 선택 판단부(3105)에 비디오 포맷 해상도 변경을 통지한다(S6401).
해상도 선택 판단부(3105)는, 도 60, 도 61에 도시되는 다수의 OSD 버퍼의 해상도와 비디오 버퍼의 해상도의 조합으로부터, 통지된 비디오 포맷 해상도와 1차 기억부(511)에 기억되어 있는 변경 요구 OSD 해상도의 조합과 일치하고 있는 것의 선택을 시도한다(S6402). S6402의 결과, 선택 가능한지를 판단하여(S6403), S6403에서 선택이 가능하지 않은 경우에만, 도 60, 도 61의 조합 중에서 OSD 버퍼의 해상도와 1차 기억부(511)에 기억되어 있는 변경 요구 OSD 해상도가 일치하고 있는 조합의 선택을 시도한다(S6404).
다음에, 비디오 해상도 관리부(3102)에 현재의 비디오 해상도를 문의하여 취득한다(S6405). 다음에, 선택한 조합의 비디오의 해상도와 현재의 비디오의 해상도가 일치하고 있는지를 비교하고, 비디오의 해상도가 변경되는지의 여부를 판단하여(S6406), S6406의 결과, 변경되는 경우에만, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S6407).
다음에, 스틸 해상도 관리부(3103)에 현재의 스틸 해상도를 문의하여 취득한다(S6501). 다음에, 선택한 조합의 스틸의 해상도와 현재의 스틸의 해상도가 일치하고 있는지를 비교하고, 스틸의 해상도가 변경되는지의 여부를 판단하여(S6502), S6502의 결과, 변경되는 경우에만, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S6503).
또, 비디오 디코더(508)에서 수신한 비디오 포맷의 해상도가 이전에 디코드하고 있었던 비디오 포맷의 해상도와 상이한 경우의 해상도 선택 판단부(3105)는, 도 66, 도 67에 도시하는 플로 차트의 내용이어도 되는 것으로 한다.
비디오 포맷 해상도 변경 검지부(3104)는 해상도 선택 판단부(3105)에 비디오 포맷 해상도 변경을 통지한다(S6601).
해상도 선택 판단부(3105)는, OSD 해상도 관리부(3101)에 현재의 OSD 해상도를 문의하여 취득한다(S6602). 다음에, 도 60, 도 61에 도시되는 다수의 비디오 버퍼의 해상도와 OSD 버퍼의 해상도의 조합으로부터, 통지된 비디오 포맷 해상도와 현재의 OSD 해상도의 조합과 일치하고 있는 것의 선택을 시도한다(S6603). 다음 에, S6603의 결과, 선택 가능한지를 판단한다(S6604).
S6604에서 선택이 가능한 경우, 비디오 해상도 관리부(3102)에 현재의 비디오 해상도를 문의하여 취득한다(S6605). 다음에 선택한 조합의 비디오의 해상도와 현재의 비디오의 해상도가 일치하고 있는지를 비교하여, 비디오의 해상도가 변경되는지의 여부를 판단하여(S6606), S6606의 결과, 변경되는 경우에만, 비디오 해상도 관리부(3102)에 비디오 해상도 변경 통지가 행해진다(S6607). 다음에, 스틸 해상도 관리부(3103)에 현재의 스틸 해상도를 문의하여 취득한다(S6701). 다음에, 선택한 조합의 스틸의 해상도와 현재의 스틸의 해상도가 일치하고 있는지를 비교하여, 스틸의 해상도가 변경되는지의 여부를 판단하여(S6702), S6702의 결과, 변경되는 경우에만, 스틸 해상도 관리부(3103)에 스틸 해상도 변경 통지가 행해진다(S6703).
도 68은, OSD 해상도 관리부(3101)가 해상도 변경 통지를 수취한 경우의 플로 차트이다. OSD 해상도 관리부(3101)는 해상도 변경 통지를 수취하면(S6801), OSD 해상도 관리부(3101)는 OSD 제어부(516)에 변경된 OSD 해상도를 전해주고(S6802), OSD 제어부(516)는 변경된 OSD 해상도를 OSD 버퍼(519)에 격납하며, OSD 데이터를 OSD 버퍼(519)에 전송하여 격납한다(S6803). OSD 해상도 관리부(3101)는, OSD 버퍼(519)와 비디오 버퍼(517)와 스틸 버퍼(518)를 합성하기 위해서 OSD 확대 축소부(521)에 확대 축소 비율을 전해준다(S6804). OSD 확대 축소부(521)는 OSD 버퍼(519)에 격납된 OSD 데이터가 전해진 확대 축소 비율로 확대 또는 축소를 행한다(S6805). 또한, OSD 해상도 관리부(3101)가 변경된 OSD 해상도를 OSD 버퍼(519)에 격납하고, OSD 제어부(516)는 OSD 버퍼(519)에 격납된 OSD 해상도를 참조하여 전송해도 좋다.
도 69는, 비디오 해상도 관리부(3102)가 해상도 변경 통지를 수취한 경우의 플로 차트이다. 비디오 해상도 관리부(3102)는 해상도 변경 통지를 수취하면(S6901), 비디오 해상도 관리부(3102)는 비디오 디코더(508)에 변경된 비디오 해상도를 전해주고(S6902), 비디오 디코더(508)는 변경된 비디오 해상도와 변경된 비디오 해상도로 디코드한 비디오 데이터를 비디오 버퍼(517)에 격납한다(S6903). 비디오 해상도 관리부(3102)는, OSD 버퍼(519)와 비디오 버퍼(517)와 스틸 버퍼(518)를 합성하기 위해서 비디오 확대 축소부(520)에 확대 축소 비율을 전해준다(S6904). 비디오 확대 축소부(520)는 비디오 버퍼(517)에 격납된 비디오 데이터를 전해진 확대 축소 비율로 확대 또는 축소를 행한다(S6905). 또한, 비디오 해상도 관리부(3102)가 변경된 비디오 해상도를 비디오 버퍼(517)에 격납하고, 비디오 디코더(508)는 비디오 버퍼(517)에 격납된 비디오 해상도를 참조하여 디코드해도 좋다.
도 70은, 스틸 해상도 관리부(310)가 해상도 변경 통지를 수취한 경우의 플로 차트이다. 스틸 해상도 관리부(3103)는 해상도 변경 통지를 수취하면(S7001), 스틸 해상도 관리부(3103)는 스틸 디코더(515)에 변경된 스틸 해상도를 전해주고(S7002), 스틸 디코더(515)는 변경된 스틸 해상도와 변경된 스틸 해상도로 스틸 데이터를 디코드하여 스틸 버퍼(518)에 격납한다(S7003). 스틸 해상도 관리부(3103)는, OSD 버퍼(519)와 비디오 버퍼(517)와 스틸 버퍼(518)를 합성하기 위해 서 스틸 확대 축소부(521)에 확대 축소 비율을 전해준다(S7004). 스틸 확대 축소부(521)는 스틸 버퍼(518)에 격납된 스틸 데이터를 전해진 확대 축소 비율로 확대 또는 축소를 행한다(S7005). 또한, 스틸 해상도 관리부(3103)가 변경된 스틸 해상도를 스틸 버퍼(518)에 격납하고, 스틸 디코더(515)는 스틸 버퍼(518)에 격납된 스틸 해상도를 참조하여 디코드해도 좋다.
예를 들면, 어플리케이션 프로그램(3100)이 비디오 표시를 작게 행하여, 어플리케이션의 표시를 전체면에서 행하는 것과 같은 어플리케이션인 것으로 한다. 구체적으로는, JMF(1205a)는 비디오 영상의 확대 축소나 표시 위치를 지정하는 기능을 제공하고, 어플리케이션 프로그램(3100)은 이들 기능을 이용한다. 이 경우, 도 39와 같이 표시 화면(3900) 상에서는 어플리케이션의 표시인 OSD 표시 에어리어(3901)가 대부분을 차지하고, 비디오 표시 에어리어(3902)가 작다. 비디오 표시 에어리어(3902)는, JMF(1205a)가 제공하는 기능에 의해 사이즈 및 표의 위치가 결정되어 있다. 이 때에 비디오 포맷이 변경된 경우에는, 해상도 선택 판단부(3105)는 현재 표시하고 있는 OSD 해상도에 맞추어, 표시 가능한 조합으로 변경하는 것이 바람직하다. 왜냐하면, 어플리케이션에서는, 이미 비디오 영상은 축소 표시되어 있고, 화질은 명확하게 열화하고 있다. 비디오 플레인의 해상도의 변화에 따라서 OSD 버퍼(519)의 해상도를 변화시켜도, 비디오 영상의 화질의 열화는 회피할 수 없다. 한편, OSD 버퍼(519)의 해상도를 변화에 따른 어플리케이션 프로그램(3100)은, OSD 표시 에어리어(3901)를 차묘화할 필요가 있다. 큰 표시 에어리어에 대한 묘화 처리는 일반적으로 시간이 걸린다. 또, OSD 버퍼(519)의 해상도에 따른 문자 도형 정보를 다수 준비할 필요가 있으며, 많은 메모리를 필요로 한다. 그리고, 번잡한 처리를 어플리케이션 프로그램(3100)에 실장하지 않으면 안된다. 따라서, 어플리케이션 프로그램(3100)이, 명시적으로, OSD 해상도 관리부(3101)에 대해서 희망의 OSD 해상도의 변경 요구를 하면, OSD 해상도가 우선되게 된다. 이 결과, 어플리케이션 프로그램(3100)의 복잡함이나, 여분의 문자 도형 데이터의 유지가 표로 된다. 또, OSD 버퍼(519)의 해상도가 우선되면, 비디오 확대 축소부(520)는, 비디오 버퍼(517)에 격납된 비디오 영상을 유지된 해상도에 맞추도록, 확대 축소하게 된다.
(실시 형태 8)
실시 형태 7에서, 도 38, 도 39에 도시되는 2개의 어플리케이션이 동시에 실행되어 있는 경우, 어느쪽의 어플리케이션을 우선할지를 결정할 필요가 있다. 본 실시 형태에서는, 해상도 전환부(1205f)의 구성을 도 56으로 한다. 도 31과 동일 번호의 구성 요소는 동일 기능을 행하기 때문에, 설명을 생략한다. 변경 허가부(5601)는, 어플리케이션 프로그램(3100)의 변경 요구의 허가를 행한다. 어플리케이션 프로그램(3100)은, OSD 해상도 관리부(5602), 비디오 해상도 관리부(5603), 스틸 해상도 관리부(5604)에 해상도의 변경 요구를 행하기 전에, 변경 허가부(5601)에 변경 허가를 얻는다. 허가를 얻은 후, 필요한 변경 요구를 행하여, 변경 요구가 필요없게 되면, 변경 허가부(5601)에 허가가 불필요하게 된 것을 통지한다. 변경 허가부(5601)는, 이미 허가를 발행한 후에 다른 어플리케이션이 허가를 구하여 왔을 때, 2개의 어플리케이션의 우선도를 비교하여, 어느쪽으로 허가를 부 여할지를 결정하고, 어플리케이션의 우선도는, 실시 형태 7에서의 도 20의 예와 같이 어플리케이션에 미리 할당된 우선도를 변경 허가부(5601)가 참조해도 좋으며, 어플리케이션 프로그램(3100)이 변경 허가부(5601)에 명시적으로 부여해도 좋다. OSD 해상도 관리부(5602), 비디오 해상도 관리부(5603), 스틸 해상도 관리부(5604)는, OSD 해상도 관리부(3101), 비디오 해상도 관리부(3102), 스틸 해상도 관리부(3103)의 기능에 더하여, 변경 허가부(5601)에 허가를 얻고 있지 않은 어플리케이션 프로그램(3100)으로부터의 요구를 접수하지 않는다. 본 실시 형태를 실현함으로써, 어느 어플리케이션의 요구를 접수할지를 명확하게 할 수 있기 때문에, 다수의 어플리케이션의 동시 실행이 가능하게 된다.
또한, 실시 형태 1, 2, 3, 4, 5, 6, 7, 8을 통해서, 이하의 응용이 가능하다.
본 발명은, 퍼스널 컴퓨터나 휴대 전화 등의 정보 기기이면, 적응 가능하다.
또, POD(504)는 착탈 가능한 형태로 하고 있지만, 내장하고 있어도 실시 가능하다. 또한, 내장한 경우, POD(504)의 CPU(706)를 분리하여, CPU(514)가 CPU(706)의 동작도 행하는 것도 실시 가능하다.
POD Lib(1205e)에 등록되는 Java 프로그램은, 다운로드된 Java 프로그램뿐만 아니라, 미리 내장되어 있는 Java 프로그램에서도 실시 가능하다. 또, SD 메모리 카드 등의 착탈 가능한 기억 매체를 착탈하면 슬롯부를 장착하고, 거기에서 Java 프로그램을 취입하는 것도 가능하다. 또, 네트워크에 접속하는 네트워크부를 장착하여, 인터넷으로부터 Java 프로그램을 취출하는 것도 가능하다.
또, ROM(512)이 보존하는 내용을 2차 기억부(510)가 보존함으로써, ROM(512)을 삭제하는 것도 실시 가능하다. 또, 2차 기억부(510)는, 다수의 서브 2차 기억부로 구성하고, 개개의 서브 2차 기억부가 상이한 정보를 보존해도 실시 가능하다. 예를 들면, 1개의 서브 2차 기억부는 튜닝 정보만을 보존하고, 다른 서브 2차 기억부는, OS(1201)의 라이브러리(1201b)를 보존하며, 또 다른 서브 2차 기억부는, 다운로드한 Java 프로그램을 보존하는 등, 상세하게 분할하는 것이 가능하다.
또, 등록된 Java 프로그램을 2차 기억부(510)에 보존하고 있었지만, 1차 기억부(511)에 보존하는 것도 실시 가능하다. 1차 기억부(511)에 보존하는 경우, 전원 OFF시에, 보존된 정보는 모두 사라진다.
또, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)는, 확대 축소를 행한 결과를 그대로 합성부(523)에 인도하는 것으로 하고 있지만, 제2 비디오 버퍼, 제2 스틸 버퍼, 제2 OSD 버퍼를 부가하여, 비디오 확대 축소부(520), 스틸 확대 축소부(521), OSD 확대 축소부(522)는, 확대 축소를 행한 결과를 제2 비디오 버퍼, 제2 스틸 버퍼, 제2 OSD 버퍼에 격납하고, 합성부(523)는, 제2 비디오 버퍼, 제2 스틸 버퍼, 제2 OSD 버퍼의 내용을 판독하여 합성하는 것으로 해도 좋다.
이상과 같이, 본 발명의 해상도 전환 장치에 의하면, 그래픽스를 생성하는 그래픽스 생성 수단과, 수신한 비디오 영상을 출력하는 영상 생성 수단과, 상기 수신한 비디오 영상의 해상도를 검출하는 영상 해상도 검출 수단과, 상기 그래픽스의 해상도와 상기 비디오 영상의 해상도를 조로 한 해상도 조를 기억하는 해상도 조 기억 수단과, 상기 해상도 검출 수단이 검출한 영상의 해상도에 기초하여 해상도 조를 해상도 조 기억 수단으로부터 선택하는 해상도 조 선택 수단과, 상기 해상도 조 선택 수단이 선택한 해상도 조에 기초하여, 상기 그래픽스와 상기 수신한 비디오 영상을 합성하여 출력하는 합성 수단을 구비함으로써, 비디오 영상과 그래픽스를 합성하여 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 수신한 비디오 영상의 해상도의 변화를 검출하는 영상 해상도 변화 검출 수단을 구비하고, 상기 해상도 조 선택 수단은, 상기 영상 해상도 변화 검출 수단이 상기 수신한 비디오 영상의 해상도의 변화를 검출하였을 때에, 해상도 조를 선택함으로써, 해상도의 결정 처리를 수시로 행하지 않게 되어, 처리량을 경감할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 기억 수단은, 상기 합성 수단이 합성 가능한 해상도 조만을 기억함으로써, 합성을 할 수 없다는 자체를 회피할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단은, 상기 해상도 검출 수단이 검출한 영상의 해상도를 포함하는 해상도 조를 해상도 조 기억 수단으로부터 선택함으로써, 비디오 영상을 그대로 표시함으로써, 아름답게 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단은, 상기 그래픽스의 해상도가 변화하지 않는 해상도 조를 선택함으로써, 그래픽스가 해상도의 변화에 의해 축소되어 보이기 어렵게 되거나, 종횡비의 변화로 일그러지는 등을 피 할 수 있으며, 아름다운 그래픽스 표시를 계속할 수 있다.
또, 상기 해상도 전환 장치는 또한, 어플리케이션을 실행하는 어플리케이션 실행 수단과, 상기 어플리케이션으로부터의 묘화 지시를 접수하는 묘화 실행 접수 수단을 구비하고, 상기 그래픽스 생성 수단은, 상기 묘화 실행 접수 수단이 접수한 묘화 지시에 따라서 그래픽스를 생성함으로써, 어플리케이션이 생성한 그래픽스와 비디오 영상을 합성하여 출력할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단이 상기 해상도를 선택하였을 때, 상기 어플리케이션에 해상도 조가 변화한 것을 통지하는 해상도 조 변경 통지 수단을 구비함으로써, 어플리케이션은 해상도의 변화를 알 수 있기 때문에, 해상도에 따른 그래픽스를 다시 표시하는 것이 가능하다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단이 상기 해상도를 선택하였을 때, 그래픽스의 해상도가 변화하였을 때에, 상기 어플리케이션에 그래픽스의 해상도가 변화한 것을 통지하는 그래픽스 해상도 변경 통지 수단을 구비함으로써, 어플리케이션은 그래픽스의 해상도의 변화만을 알 수 있기 때문에, 해상도에 따른 그래픽스를 효율적으로 다시 표시하는 것이 가능하다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단이 상기 해상도를 선택하였을 때, 비디오 영상의 해상도가 변화하였을 때에, 상기 어플리케이션에 비디오 영상의 해상도가 변화한 것을 통지하는 비디오 영상 해상도 변경 통지 수단을 구비함으로써, 어플리케이션은 Java 클래스 라이브러리를 사용하여 확대 축소하고 있는 비디오 영상을 보다 아름답게 표시하는 등의 처리를 행할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 어플리케이션으로부터 상기 그래픽스의 해상도의 변경 요구를 접수하는 그래픽스 해상도 변경 요구 접수 수단을 구비하고, 상기 해상도 조 선택 수단은, 그래픽스 해상도 변경 요구 접수 수단이 접수한 그래픽스의 해상도에 기초하여, 상기 해상도 조를 선택함으로써, 어플리케이션이 소망하는 그래픽스 해상도로 표시를 행할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단은, 그래픽스 해상도 변경 요구 접수 수단이 접수한 그래픽스의 해상도를 포함하는 상기 해상도 조를 선택함으로써, 어플리케이션이 소망하는 그래픽스 해상도로 표시를 행할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 어플리케이션으로부터 상기 비디오 영상의 해상도의 변경요구를 접수하는 비디오 영상 해상도 변경 요구 접수 수단을 구비하고, 상기 해상도 조 선택 수단은, 비디오 영상 해상도 변경 요구 접수 수단이 접수한 비디오 영상의 해상도에 기초하여, 상기 해상도 조를 선택함으로써 어플리케이션은 소망의 해상도로 비디오 영상을 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단은, 비디오 영상 해상도 변경 요구 접수 수단이 접수한 비디오 영상의 해상도를 포함하는 상기 해상도 조를 선택함으로써 어플리케이션은 소망의 해상도로 비디오 영상을 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스 생성 수단이 생성한 그래픽스를 확대 또는 축소하는 그래픽스 확대 축소 수단과, 상기 영상 생성 수단이 출 력한 비디오 영상을, 확대 또는 축소하는 영상 확대 축소 수단을 구비하고, 상기 합성 수단은, 상기 그래픽스 확대 축소 수단과 상기 영상 확대 축소 수단이 확대 또는 축소된 그래픽스 및 비디오 영상을 합성함으로써, 그래픽스와 비디오 영상을 동일 해상도로 하여 아름답게 합성하여 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스 확대 축소 수단과 상기 영상 확대 축소 수단이 확대 또는 축소를 행하여 생성하는 그래픽스와 비디오 영상의 해상도를 지정하는 확대 축소 해상도 지정 수단을 구비함으로써 그래픽스와 비디오 영상을 소망의 해상도로 변환한 후, 아름답게 합성하여 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 기억 수단은 상기 해상도 조에 대응하여, 상기 그래픽스 확대 축소 수단과 상기 영상 확대 축소 수단이 확대 또는 축소하여 실현하는 해상도를 유지함으로써, 반환 전의 해상도와 변환 후의 해상도를 명시적으로 지정할 수 있다. 이 결과, 정수배의 확대 축소 등, 열화가 적은 확대 축소를 행하여 아름답게 합성하여 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스 및 상기 비디오 영상의 바람직한 조합인 우선 해상도 조를 기억하는 우선 해상도 조 기억 수단을 구비하고, 상기 우선도 조 선택 수단은, 상기 우선 해상도 조 기억 수단이 기억하는 우선 해상도 조에 기초하여 상기 해상도 조를 선택함으로써, 보다 아름답게 표시 가능한 해상도의 조합을 우선적으로 채용하여, 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스 및 상기 비디오 영상의 바람직한 조합인 우선 해상도 조를 기억하는 우선 해상도 조 기억 수단을 구비하 고, 상기 해상도 조 선택 수단은, 상기 해상도 검출 수단이 검출한 영상의 해상도를 포함하는 해상도 조를 해상도 조 기억 수단으로부터 선택할 수 없었던 경우, 상기 우선 해상도 조 기억 수단이 기억하는 우선 해상도 조에 기초하여 상기 해상도 조를 선택함으로써, 비디오 영상의 해상도를 유지하고 싶은 것이지만, 그것이 가능하지 않은 경우에는, 백업으로서 등록해 둔 해상도의 조합을 이용함으로써, 아름다운 표시를 행할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스 및 상기 비디오 영상의 바람직한 조합인 우선 해상도 조를 기억하는 우선 해상도 조 기억 수단을 구비하고, 상기 해상도 조 선택 수단은, 상기 그래픽스의 해상도가 변화하지 않는 해상도 조를 선택할 수 없었던 경우, 상기 우선 해상도 조 기억 수단이 기억하는 우선 해상도 조에 기초하여 상기 해상도 조를 선택함으로써, 그래픽스의 해상도를 유지하고 싶은 것이지만, 그것이 가능하지 않은 경우에는, 백업으로서 등록해 둔 해상도의 조합을 이용함으로써, 아름다운 표시를 행할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 수신한 비디오 영상의 해상도의 변화를 검출하는 영상 해상도 변화 검출 수단을 구비하고, 상기 해상도 조 선택 수단은, 상기 영상 해상도 변화 검출 수단이 상기 수신한 비디오 영상의 해상도의 변화를 검출하였을 때, 상기 그래픽스 해상도 변경 요구 접수 수단이 직전에 접수한 그래픽스의 해상도를 포함하는 상기 해상도 조를 선택함으로써, 이전에 어플리케이션이 지정한 그래픽스의 해상도를 유지할 수 있고, 어플리케이션의 그래픽스 표시를 자동적으로 유지할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 수신한 비디오 영상의 해상도의 변화를 검출하는 영상 해상도 변화 검출 수단을 구비하고, 상기 해상도 조 선택 수단은, 상기 영상 해상도 변화 검출 수단이 상기 수신한 비디오 영상의 해상도의 변화를 검출하여, 상기 그래픽스 해상도 변경 요구 접수 수단이 그래픽스의 해상도의 변경 요구를 접수하고 있지 않을 때, 상기 수신한 비디오 영상의 해상도를 포함하는 상기 해상도 조를 선택함으로써, 어플리케이션은 그래픽스의 해상도를 지정하고 있지 않은 것으로부터, 비디오 영상의 해상도를 우선하고 있다고 생각하여, 입력된 비디오 영상의 해상도로 비디오 영상을 출력함으로써, 자동적으로 아름답게 표시할 수 있다.
또, 그래픽스를 생성하는 그래픽스 생성 수단과, 수신한 비디오 영상을 출력하는 영상 생성 수단과, 정지 화면을 출력하는 스틸 생성 수단과, 상기 수신한 비디오 영상의 해상도를 검출하는 영상 해상도 검출 수단과, 상기 그래픽스의 해상도와 상기 비디오 영상의 해상도와 상기 정지 화면의 해상도를 조로 한 해상도 조를 기억하는 해상도 조 기억 수단과, 상기 해상도 검출 수단이 검출한 영상의 해상도에 기초하여 해상도 조를 해상도 조 기억 수단으로부터 선택하는 해상도 조 선택 수단과, 상기 해상도 조 선택 수단이 선택한 해상도 조에 기초하여, 상기 그래픽스와 상기 수신한 비디오 영상과 상기 정지 화면을 합성하여 출력하는 합성 수단을 구비함으로써, 비디오 영상과 그래픽스와 정지 화면을 합성하여 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 그래픽스와 상기 비디오 영상과 상기 정지 화면 중 어느 하나를 지정하는 플레인 지정 수단과, 상기 해상도 선택 수 단은, 상기 플레인 지정 수단이 기억하는 상기 그래픽스 또는 상기 비디오 영상 또는 상기 정지 화면의 해상도를 유지하면서, 해상도 조를 해상도 조 기억 수단으로부터 선택함으로써, 표시의 주체가 되는 플레인의 해상도를 유지할 수 있고, 아름다운 표시를 유지할 수 있다.
또, 상기 해상도 전환 장치는 또한, 어플리케이션을 실행하는 어플리케이션 실행 수단과, 상기 어플리케이션으로부터의 묘화 지시를 접수하는 묘화 실행 접수 수단을 구비하고, 상기 그래픽스 생성 수단은, 상기 묘화 실행 접수 수단이 접수한 묘화 지시에 따라서 그래픽스를 생성함으로써, 어플리케이션이 생성한 그래픽스와 비디오 영상과 정지 화면을 합성하여 출력할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 어플리케이션으로부터 상기 정지 화면의 해상도의 변경 요구를 접수하는 정지 화면 해상도 변경 요구 접수 수단을 구비하고, 상기 해상도 조 선택 수단은, 상기 정지 화면 해상도 변경 요구 접수 수단이 접수한 정지 화면의 해상도에 기초하여, 상기 해상도 조를 선택함으로써 정지 화면의 해상도를 유지하여, 정지 화면을 아름답게 계속 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 상기 해상도 조 선택 수단은, 상기 정지 화면 해상도 변경 요구 접수 수단이 접수한 정지 화면의 해상도를 포함하는 상기 해상도 조를 선택함으로써 정지 화면의 해상도를 유지하여, 정지 화면을 아름답게 계속 표시할 수 있다.
또, 상기 해상도 전환 장치는 또한, 정지 화면의 해상도의 변경 요구의 허가를 행하는 정지 화면 변경 요구 허가 수단을 구비하고, 상기 정지 화면 해상도 변 경 요구 접수 수단은, 상기 정지 화면 변경 요구 허가 수단으로부터 변경 요구의 허가를 받은 어플리케이션으로부터의 상기 정지 화면의 해상도의 변경 요구만을 접수함으로써, 다수의 어플리케이션으로부터의 요구 접수의 배타 제어를 행할 수 있고, 다수 어플리케이션에 의한 정지 화면의 해상도의 빈번한 전환에 의한 표시 화면의 깜박임을 피할 수 있다.
또, 상기 해상도 전환 장치는 또한, 그래픽스의 해상도의 변경 요구의 허가를 행하는 그래픽스 변경 요구 허가 수단을 구비하고, 상기 그래픽스 해상도 변경 요구 접수 수단은, 상기 그래픽스 변경 요구 허가 수단으로부터 변경 요구의 허가를 받은 어플리케이션으로부터의 상기 그래픽스의 해상도의 변경 요구만을 접수함으로써, 다수 어플리케이션에 의한 그래픽스의 해상도가 빈번한 전환에 의한 표시 화면의 깜박임을 피할 수 있다.
또, 상기 해상도 전환 장치는 또한, 비디오 영상의 해상도의 변경 요구의 허가를 행하는 비디오 영상 변경 요구 허가 수단을 구비하고, 상기 비디오 영상 해상도 변경 요구 접수 수단은, 상기 비디오 영상 변경 요구 허가 수단으로부터 변경 요구의 허가를 받은 어플리케이션으로부터의 상기 비디오 영상의 해상도의 변경 요구만을 접수함으로써, 다수 어플리케이션에 의한 비디오 영상의 해상도의 빈번한 전환에 의한 표시 화면의 깜박임을 피할 수 있다.
또, 컴퓨터 판독 가능한 기록 매체로서, 그래픽스를 생성하는 그래픽스 생성 수단과, 수신한 비디오 영상을 출력하는 영상 생성 수단과,
상기 수신한 비디오 영상의 해상도를 검출하는 영상 해상도 검출 수단과, 상 기 그래픽스의 해상도와 상기 비디오 영상의 해상도를 조로 한 해상도 조를 기억하는 해상도 조 기억 수단과, 상기 해상도 검출 수단이 검출한 영상의 해상도에 기초하여 해상도 조를 해상도 조 기억 수단으로부터 선택하는 해상도 조 선택 수단과, 상기 해상도 조 선택 수단이 선택한 해상도 조에 기초하여, 상기 그래픽스와 상기 수신한 비디오 영상을 합성하여 출력하는 합성 수단의 각 기능을 발휘하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로 함으로써, 가반성(可搬性)을 높일 수 있다.
또한, 산업상의 이용 가능성으로서, 본 발명은, 영상과 그래픽스를 표시하는 장치 등으로서, 예를 들면, 디지털 방송에서 인터렉티브 프로그램을 수신하는 텔레비전 수신 단말 등으로서, 특히, 영상과 그래픽스와 정지 화면에 대해서 해상도를 전환하여 표시하는 장치 등으로서 이용할 수 있다.