KR20060120583A - 프로그램 실행 장치 - Google Patents

프로그램 실행 장치 Download PDF

Info

Publication number
KR20060120583A
KR20060120583A KR1020067002574A KR20067002574A KR20060120583A KR 20060120583 A KR20060120583 A KR 20060120583A KR 1020067002574 A KR1020067002574 A KR 1020067002574A KR 20067002574 A KR20067002574 A KR 20067002574A KR 20060120583 A KR20060120583 A KR 20060120583A
Authority
KR
South Korea
Prior art keywords
program
unit
channel
java
identifier
Prior art date
Application number
KR1020067002574A
Other languages
English (en)
Inventor
다카카즈 시오미
시게아키 와타나베
요시노리 이마니시
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20060120583A publication Critical patent/KR20060120583A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Circuits Of Receivers In General (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

내장 프로그램(1200)은 Java 프로그램의 일부의 기능을 포함한다. 내장 프로그램(1200)은 Java 프로그램의 기동 처리 기간 동안 그 일부의 기능을 실행한다. 그러므로, 기동 시간은 단축된다. 또한, 본 발명은 내장 프로그램(1200)의 동작 상태에 대한 정보를 Java 프로그램에 제공하여, Java 프로그램 기동 처리 완료시 Java 프로그램의 일관된 실행을 가능하게 한다.

Description

프로그램 실행 장치{PROGRAM EXECUTING APPARATUS}
본 발명은, 프로그램을 다운로드해 실행하는 프로그램 실행 장치에 관한 것으로, 특히 기존의 프로그램이 실행하고 있던 기능을 다운로드된 프로그램이 계승해 실행하는 것에 관한 것이다.
현재, Java 프로그램은 여러가지 정보 기기상에서 실행되고 있다. 디지털 TV, 퍼스널 컴퓨터상이나 휴대 전화 등에 Java VM로 불리는 Java 프로그램을 실행하는 가상 머신이 탑재되어, Java 프로그램을 실행하고 있다.
종래의 디지털 TV에 있어서의 Java 프로그램을 실행하는 기능은, 일본 특허 공개 제2003-504753호에 기재되어 있다. 도 1은 디지털 TV 수신기를 통해 로딩된 어플리케이션을 관리하기 위해서, 어플리케이션 매니저가 실장된 Java 프로그램을 실행하는 종래의 디지털 TV의 구성도의 일례이다. 디지털 TV수신기(3002)는 신호 모니터(3013)에 의해 방송 데이터 스트림(3021)을 수신한다. 신호 모니터(3013)는 방송 데이터 스트림(3021)내에 Java 프로그램인 어플리케이션의 유무를, 신호 데이터(3022)를 통해 어플리케이션 매니저(3012)에 통지한다. 어플리케이션 매니저(3012)는 신호 데이터(3022)를 이용하여 어플리케이션을 로딩하고 실행한다. 어플리케이션이 실행되면, 디스플레이 정보가 디스플레이 문맥(3023)의 형태로 디스플 레이 매니저(3011)로부터 제공된다. 또한, 디스플레이 매니저(3011)는 적절한 디스플레이 정보를 텔레비젼 모니터(3001)에 제공한다.
어플리케이션 매니저(3012)는, 룰(3014)에 따라서 동작하여, 어플리케이션 상태를 로드 상태, 일시정지 상태, 액티브 상태, 말소 상태로 천이시킨다. 룰은, 예를 들면, "한번에 하나의 어플리케이션만이 액티브된다" 및 "한번에 하나의 어플리케이션만이 디스플레이된다" 등이다.
그렇지만, 종래의 기술에서는, Java프로그램을 실행하고, 그 기능을 실제로 사용자에게 제공할 수 있기까지 긴 시간을 필요로 한다고 하는 문제가 있다. 이것에는, 몇가지 요인이 있다. 우선, Java 프로그램을 실행하기 위해서는, 거기에 앞서 Java VM를 기동해 둘 필요가 있지만, 일반적으로 Java VM의 기동에는 시간이 걸린다는 점을 들 수 있다. 또, Java 프로그램을 다운로드 완료할 때까지의 대기 시간도 필요하다. 디지털 TV나 정보 기기등에서는, 이러한 처리를 수행하는 시간 및 대기 시간이 포함되므로, Java프로그램의 기동을 결정하고 나서 실제로 기동 완료하기까지는 시간이 걸린다. 특히, Java 프로그램이 전원 투입시에 자동적으로 다운로드되어 실행되는 정보 기기에 대해서는, 전원을 투입 후, 일정 시간 동안 아무것도 디스플레이되지 않는 시간이 계속 되어, 사용자를 불안하게 만드는 문제를 초래한다. 특히, CPU 처리 속도가 별로 빠르지 않은 디지털 TV 등의 정보 가전에서, 이러한 현상이 현저하다.
원래는 Java 프로그램에 의해 수행되는 부분 기능을 내장 프로그램으로서 구현하고, Java 프로그램이 기동되는 동안 이를 실행함에 의해, 본 발명은 관측자 입 장에서 기동 공정에 요하는 시간을 단축시키고 또한 내장 프로그램과 Java 프로그램 사이에서 Java 프로그램의 기동 완료시 내장 프로그램의 동작 상태를 계승함에 의해 Java 프로그램이 일관된 방식으로 구동되도록 하는 정보 제공 유닛을 제공하는 것을 목적으로 한다.
본 발명에 따르면, Java 프로그램을 실행하는 Java VM 및 Java 프로그램의 일부의 기능인 부분 기능을 갖는 내장 프로그램을 가지는 프로그램 실행 장치는, 내장 프로그램과 Java VM을 실행하는 실행 유닛 및 내장 프로그램의 동작 결과 생성된 정보를 Java 프로그램에 제공하는 정보 제공 유닛을 포함하며, Java 프로그램이 기동하기 전에, 내장 프로그램이 그 기능을 일부를 실행하고, 다음으로 Java 프로그램에 의해 계승되는 것이 가능해진다. 따라서, 원래는 Java 프로그램에 의해 제공되던 기능을 사용자에게 단시간에 제공하는 것이 가능해진다.
또한, 이러한 구조로 상기 정보 제공 유닛은, Java 프로그램이 정보 제공 유닛을 이용하기 전에, 내장 프로그램의 구동 결과로서 생성된 정보를 Java 프로그램에 제공하여, Java 프로그램이 내장 프로그램에 의해 초래된 상태를 계승하는 것이 가능해진다.
또한, 이러한 구조로 상기 정보 제공 유닛은, Java 프로그램이 기동하기 전에, 내장 프로그램의 구동 결과로서 생성된 정보를 Java 프로그램에 제공하여, Java 프로그램이 내장 프로그램에 의해 의한 상태를 계승하는 것이 가능해진다.
또한, 이러한 구조로 상기 정보 제공 유닛은, Java 프로그램이 내장 프로그램이 종료되기 전에, 내장 프로그램의 구동 결과로서 생성된 정보를 Java 프로그램에 제공하여, Java 프로그램이 내장 프로그램에 의해 초래된 상태를 계승하는 것이 가능해진다.
또한, 이러한 구조에서 프로그램 실행 장치는 Java 프로그램이 내장 프로그램의 종료 명령을 지시하기 위한 내장 프로그램 종료 지시 유닛을 더 포함하여, Java 프로그램이 내장 Java 프로그램을 명시적으로 종료시키는 것이 가능해진다. 따라서, Java 프로그램과 내장 프로그램이 동일 또는 유사한 기능을 병행적으로 동작하여 사용자를 혼란스럽게 하는 것을 방지할 수 있다.
또한, Java 프로그램을 실행하는 Java VM; 입력을 받아들이는 입력 유닛, 방송을 수신하는 수신 유닛; 수신 유닛이 수신한 방송에 포함되는 채널을 재생하는 채널 재생 유닛; 입력 유닛으로부터의 지시에 근거해, 재생해야 할 채널을 채널 재생 유닛에 지시하는 재생 프로그램; 재생 프로그램과 Java VM을 실행하는 실행 유닛; 및 재생 프로그램이 마지막에 지시한 채널을 Java 프로그램에 제공하는 정보 제공 유닛을 포함하는 프로그램 실행 장치를 구비함에 의해, Java 프로그램이 기동하기 전에, 재생되고 있는 채널을 Java 프로그램이 계승할 수 있다. 따라서, 본래 Java 프로그램이 수행하는 채널의 재생을 단시간에 사용자에게 제공할 수 있다.
또한, 프로그램 실행 장치는 Java 프로그램을 기억하는 제1 기억 유닛; 및 재생 프로그램을 기억하는 제2 기억 유닛을 더 포함하는 구성으로, 기억한 Java 프로그램 및 재생 프로그램을 몇번이나 실행하거나 또는 이들을 바꾸는 것이 가능하다.
또한, 채널 재생 유닛이 채널내에 포함된 비디오 및 오디오를 재생하는 구조로, 사용자에게 비디오 및 오디오의 재생을 제공할 수 있다.
또한, 프로그램 실행 장치가 채널내에 포함되는 비디오, 오디오 및 Java 프로그램을 재생하는 서비스 재생 유닛을 더 포함하여, 사용자에게 비디오, 오디오 및 Java 프로그램의 재생을 제공할 수 있다.
또한, 서비스 재생 유닛은 그 일부 또는 전부가 Java VM에 의해서 실행되며, Java 프로그램으로부터 재생해야 할 서비스를 받아들여서, Java 프로그램이 채널을 재생할 수 있다.
또한, 상기 서비스 재생 유닛은 상기 재생 유닛으로부터 재생될 서비스를 받아들이며, 상기 서비스 재생 유닛이 재생될 서비스를 받아들이지 않는 경우에는 상기 재생 유닛은 상기 채널 재생 유닛을 이용하는 채널을 재생하고, 상기 서비스 재생 유닛이 재생될 서비스를 받아들이는 경우에는 상기 서비스 재생 유닛을 이용하는 채널을 재생하여, Java VM 이 기동하기 전이므로 서비스 재생이 이용될 수 없는 경우에 비디오 및 오디오를 재생하는 것이 가능하다.
또한, 프로그램 실행 장치에서, 상기 서비스 재생 유닛이 재생해야할 서비스의 접수를 개시한 것을 통지하는 서비스 접수 개시 통지 유닛을 더 포함하여, 서비스 재생 유닛은, Java 프로그램을 포함한 재생을 개시할 수 있다.
*또한, 프로그램 실행 장치가 Java 프로그램을 실행하는 Java VM, 입력을 받아들이는 입력 유닛, 방송을 수신하는 수신 유닛, 상기 수신 유닛이 수신한 방송에 포함되는 채널에 포함되는 비디오, 오디오 및 데이터를 재생하는 채널 재생 유닛, 상기 수신 유닛이 수신한 방송에 포함되는 채널에 포함되는 비디오, 오디오 및 데이터를 재생하는 서비스 재생 유닛, 재생해야 할 채널의 식별자를 받아들여, 상기 서비스 재생 유닛이 채널의 재생이 가능한 때에는 상기 서비스 재생 유닛을 이용해 채널을 재생하고, 상기 서비스 재생 유닛이 채널의 재생이 불가능한 때에는 상기 채널 재생 유닛을 이용해 채널을 재생하는 채널 식별자 접수 유닛, 상기 입력 유닛으로부터의 지시에 근거해, 재생해야 할 채널의 식별자를 상기 채널 식별자 접수 유닛에 지시하는 재생 프로그램, 상기 재생 프로그램과 상기 Java 프로그램을 실행하는 실행 유닛 및 상기 재생 프로그램이 상기 채널 식별자 접수 유닛에 마지막으로 지시한 채널을 상기 Java 프로그램에 제공하는 정보 제공 유닛을 포함함에 의해, 재생 프로그램이 동일한 처리를 실시하는 것만이 요구되어, 실장이 용이할 뿐만 아니라 코드 크기도 작게 된다.
또한, 프로그램 실행 장치는 상기 채널 식별자 접수 유닛이 받아들인 채널의 상기 식별자를 기억하는 채널 식별자 기억 유닛을 더 포함하며, 상기 채널 식별자 접수 유닛은 상기 서비스 재생 유닛이 채널의 재생이 가능하게 되었을 때에, 상기 채널 식별자 기억 유닛에 기억한 상기 채널의 상기 식별자를 상기 서비스 재생 유닛에 제공하고, 채널을 재생하여, Java VM가 기동하지 않고 서비스 재생 유닛을 사용할 수 없을 때에, 재생될 수 없었던 채널내에 포함된 Java 프로그램의 재생을 개시할 수 있다.
이하 유닛들로 기능할 수 있는 프로그램이 기억되는 컴퓨터 판독 가능한 기록 매체로서, Java 프로그램을 실행하는 Java VM, 상기 Java 프로그램의 일부의 기능인 부분 기능을 갖는 내장 프로그램, 상기 내장 프로그램 및 상기 Java VM을 실행하는 실행 유닛, 및 상기 내장 프로그램이 동작 결과로서 생성된 정보를 상기 Java 프로그램에 제공하는 정보 제공 유닛을 포함하는 컴퓨터 판독 가능 기록 매체로 본 발명을 구현함에 의해, 휴대성을 높일 수 있다.
도 1은 종래의 디지털 텔레비젼의 구성을 도시하는 도면.
도 2는 본 발명의 제1 실시예에 따른 케이블 텔레비젼 시스템의 구조를 도시하는 도면.
도 3은 본 발명에 따른 케이블 텔레비젼 시스템에서 헤드 단부와 단말 장치 사이의 통신을 위해 이용되는 주파수 대역 사용예를 도시하는 도면.
도 4는 본 발명에 따른 케이블 텔레비젼 시스템의 헤드 엔드와 단말 장치 사이의 통신을 위해 이용되는 주파수 대역 사용예를 도시하는 도면.
도 5는 본 발명에 따른 케이블 텔레비젼 시스템의 헤드 엔드와 단말 장치 사이의 통신을 위해 이용되는 주파수 대역 사용예를 도시하는 도면.
도 6은 본 발명에 따른 케이블 텔레비젼 시스템의 단말 장치의 구성을 도시하는 도면.
도 7은 본 발명에 따른 케이블 텔레비젼 시스템의 단말 장치의 외관도의 예.
도 8은 본 발명에 따른 POD(504)의 하드웨어 구성을 도시하는 도면.
도 9는 본 발명에 따른 POD(504)내에 저장된 프로그램의 구조를 도시하는 도 면.
도 10은 MPEG 규격에서 정의된 패킷의 구조를 도시하는 도면.
도 11은 MPEG2 전송 스트림의 예를 도시하는 도면.
도 12는 입력 유닛(513)이 전면 패널 형태로 구성되는 경우의 외관도의 예를 도시하는 도면.
도 13은 본 발명에 따른 단말 장치(500)에 기억된 프로그램의 구조를 도시하는 도면.
도 14(1)은 본 발명에 따라 디스플레이(509)에 의해 디스플레이되는 디스플레이 스크린의 예를 도시하는 도면.
도 14(2)는 본 발명에 따라 디스플레이(509)에 의해 디스플레이되는 디스플레이 스크린의 예를 도시하는 도면.
도 15는 본 발명에 따른 제2 기억 유닛(510)내에 기억되는 정보의 예를 도시하는 도면.
도 16은 본 발명에 따른 제2 기억 유닛(510)내에 기억되는 정보의 예를 도시하는 도면.
도 17은 본 발명에 따른 MPEG2 규격에서 규정된 PAT의 콘텐츠를 도시하는 개략도.
도 18은 본 발명에 따른 MPEG2 규격에서 규정된 PMT의 콘텐츠를 도시하는 개략도.
도 19는 본 발명에 따른 DVB-MHP 규격에서 규정된 AIT의 콘텐츠를 도시하는 개략도.
도 20은 본 발명에 따른 DSMCC 포맷에서 전송될 파일 시스템을 도시하는 개략도.
도 21은 본 발명에 따른 XAIT의 콘텐츠를 도시하는 개략도.
도 22는 본 발명에 따른 제2 기억 유닛(510)내에 기억되는 정보의 예를 도시하는 도면.
도 23은 본 발명에 따른 복수개의 서브 프로그램이 기동하는 순서의 예를 도시하는 개략도.
도 24는 본 발명에 따른 Java 프로그램의 구조예를 도시하는 도면.
도 25는 본 발명에 따른 재생 유닛(1202b) 및 Java 프로그램이 기동하는 순서의 예를 도시하는 도면.
도 26은 본 발명에 따른 재생 유닛(1202b)의 동작예를 도시하는 흐름도.
도 27은 본 발명에 따른 Java 프로그램의 동작예를 도시하는 흐름도.
도 28은 본 발명에 따른 Java 프로그램의 동작예를 도시하는 흐름도.
도 29는 본 발명에 따른 단말 장치(2800)내에 기억된 프로그램의 구조예를 도시하는 도면.
도 30은 본 발명에 따른 채널 식별자 수신 유닛(2806)의 동작예를 도시하는 흐름도.
(제1 실시예)
본 발명에 따른 케이블 텔레비젼 시스템의 실시예가 도면을 참조로 이하 설명된다. 도 2는 케이블 시스템을 구성하는 장치의 관계를 나타낸 블럭도이며, 헤드 엔드(101) 및 3개의 단말장치(A111), 단말장치(B112), 단말장치(C113)로 구성된다. 본 실시예에서, 1개의 헤드 엔드에 대해서 3개의 단말장치가 결합되고 있지만, 임의의 수의 단말장치가 헤드 엔드에 결합되어도, 본 발명은 실시 가능하다.
헤드 엔드(101)은, 복수의 단말장치에 대해서 비디오 및 오디오·데이터등의 방송 신호를 송신하고, 단말장치로부터 데이터 송신을 수신한다. 이것을 실현하기 위해, 헤드 엔드(101)으로 단말장치(A111), 단말장치(B112), 단말장치(C113)간의 전송에 이용되는 주파수대역은, 분할해서 이용된다. 도 3은, 주파수대역의 분할의 일례를 나타내는 표이다. 주파수 대역은, Out Of Band(약칭 OOB)와 In-Band의 2 유형이 있다. 주파수 대역 5~130MHz가 OOB에 할당되어, 주로 헤드 엔드(101)와 단말장치(A111), 단말장치(B112), 및 단말장치(C113) 사이의 데이터의 교환에 사용된다. 주파수 대역 130MHz~864MHz는 In-Band에 할당되어, 주로 비디오 및 오디오를 포함한 방송 채널에 사용된다. OOB에서는 QPSK 변조 방식이, In-Band는 QAM 64 변조 방식이 사용된다. 변조 방식 기술에 대해서는, 본 발명에 관련성이 적은 공지된 기술이므로, 상세한 설명은 생략한다. 도 4는 OOB 주파수대역의 더욱 상세한 사용예이다. 70MHz~74MHz의 주파수 대역이 헤드 엔드(101)로부터의 데이터 송신에 사용된다. 이 경우, 모든 단말장치(A111), 단말장치(B112), 단말장치(C113)가, 헤드 엔드(101)로부터 같은 데이터를 받게 된다. 한편, 10.0MHz~10.1MHz의 주파수 대역이 단말장치(A111)로부터 헤드 엔드(101)로의 데이터 송신에 사용된다. 10.1MHz~10.2MHz의 주파수 대역이 단말장치(B112)로부터 헤드 엔드(101)로의 데이터 송신에 사용된다. 10.2MHz~10.3MHz의 주파수 대역이 단말장치(C113)로부터 헤드 엔드(101)로의 데이터 송신에 사용된다. 따라서, 각 단말장치 고유의 데이터를 각 단말장치(A111), 단말장치(B112), 단말장치(C113)로부터 헤드 엔드(101)에 송신하는 것이 가능하다. 도 5는, In-Band의 주파수 대역에 대한 사용예이다. 주파수 대역 150~156MHz와 156~162MHz이 각각 텔레비젼 채널1 및 텔레비젼 채널2로 할당되며, 다음 주파수들이 6MHz 간격으로 텔레비젼 채널로 할당된다. 310MHz 및 그 다음 주파수들은, 1MHz 단위로 라디오 채널로 할당된다. 이러한 각 채널은 아날로그 방송 또는 디지털 방송용으로 이용될 수 있다. 디지털 방송의 경우는, MPEG2 사양에 근거한 전송 패킷 형태로 전송되어, 이 경우, 오디오 및 비디오 데이터에 추가로 각종 데이터 방송 시스템용 데이터도 송신될 수 있다.
헤드 엔드(101)은, 각각의 주파수 범위에 대해 적절한 방송 신호를 송신하기 위해, QPSK 변조 유닛나 QAM 변조 유닛등을 구비한다. 또한, 단말장치로부터의 데이터를 수신하기 위해, QPSK 복조 유닛을 구비한다. 또한, 헤드 엔드(101)은, 상술한 변조 유닛 및 복조 유닛에 관련된 여러가지 기기를 더 구비한다. 그러나, 본 발명은 주로 단말장치에 관련되므로, 상세한 설명은 생략한다.
단말장치(A111), 단말장치(B112), 단말장치(C113)는, 헤드 엔드(101)로부터 방송 신호를 수신해 재생한다. 또한, 단말장치(A111), 단말장치(B112), 단말장치(C113)는, 헤드 엔드(101)에 대해서, 각 단말장치 고유의 데이터를 송신한다. 본 실시예에서, 이러한 3개의 단말 장치는 동일한 구성을 가질 것이다.
도 6은, 각 단말장치의 하드웨어 구성을 나타내는 블럭도이다. (500)은 단말장치이며, QAM 복조 유닛(501), QPSK 복조 유닛(502), QPSK 변조 유닛(503), TS 디코더(505), 오디오 디코더(506), 스피커(507), 비디오 디코더(508), 디스플레이(509), 제2 기억 유닛(510), 제1 기억 유닛(511), ROM(512), 입력 유닛(513), 및 CPU(514)로 구성된다. 또 단말장치(500)에는, POD(504)를 착탈할 수 있다.
도 7은, 단말장치(500)의 외관의 일례인 박형 TV이다.
(601)은, 박형 TV의 금속 케이스이며, POD(504)를 제외한, 단말장치(500)의 모든 구성요소가 내장되어 있다.
(602)는 디스플레이이며, 도 6에 있어서의 디스플레이(509)에 대응한다.
(603)은 복수의 버튼으로 구성되는 전면 패널이며, 도 6의 입력 유닛(513)에 대응한다.
(604)는 신호 입력 단자이며, 헤드 엔드(101)와의 신호의 송수신을 위해 케이블선이 접속된다. 신호 입력 단자는, 도 6에 도시된 QAM 복조 유닛(501), QPSK 복조 유닛(502), QPSK 변조 유닛(503)에 접속된다.
(605)는, 도 6의 POD(504)에 대응하는 POD 카드이다. POD(504)는, 도 7의 POD 카드(605)의 경우와 같이, 단말장치(500)과는 독립한 형태를 취해, 단말장치(500)에 착탈 가능해지고 있다. POD(504)의 자세한 설명은 후술한다.
(606)은 POD 카드(605)를 삽입하는 삽입 슬롯이다.
도 6을 참조하여, QAM 복조 유닛(501)은, CPU(514)로부터 지정된 주파수를 포함한 튜닝 정보에 따라, 헤드 엔드(101)에서 QAM 변조되어 송신되어 온 신호를 복조하여, 그 결과를 POD(504)에 전달한다.
QPSK 복조 유닛(502)은, CPU(514)로부터 지정된 주파수를 포함한 튜닝 정보에 따라, 헤드 엔드(101)에서 QPSK 변조되고 송신되어 온 신호를 복조하여, POD(504)에 전달한다.
QPSK 변조 유닛(503)은, CPU(514)로부터 지정된 주파수를 포함한 변조 정보에 따라, POD(504)로부터 전달된 신호를 QPSK 복조하여, 그 결과를 헤드 엔드(101)에 송신한다.
도 7에 도시된 것처럼, POD(504)는 단말장치 본체(500)으로부터 착탈 가능하다. 단말 본체(500)와 POD(504) 사이의 접속 인터페이스는, OpenCable(TM)HOST-POD Interface Specification(OC-SP-HOSTPOD-IF-I12-030210) 및, 이 시방서로부터 참조되고 있는 시방서에서 정의되고 있다. 그러므로, 자세한 설명은 생략하고, 본 발명에 관련된 구성 요소에 대해서만 설명한다.
도 8은, POD(504)의 내부 구성을 나타내는 블럭도이다. POD(504)는, 제1 디스크램블러 유닛(701), 제2 디스크램블러 유닛(702), 스크램블러 유닛(703), 제1 기억 유닛(704), 제2 기억 유닛(705) 및 CPU(706)로 구성된다.
제1 디스크램블러 유닛(701)은, CPU(706)로부터의 지시에 의해, 단말장치(500)의 QAM 복조 유닛(501)으로부터 스크램블된 신호를 수신하고, 이러한 신호를 디스크램블한다. 다음으로, 제1 디스크램블러 유닛(701)은 디스크램블된 신호를 단말장치(500)의 TS 디코더(505)에 송신한다. 키와 같이 디스크램블러에 필요한 정보가 필요에 따라 CPU(706)에 의해 제공된다. 구체적으로는, 헤드 엔드(101)는 몇개의 유료 채널을 방송하고, 사용자가 이러한 유료 채널을 시청할 권리를 구매한 경우, 제1 디스크램블러 유닛(701)은, CPU(706)로부터 키와 같이 필요한 정보를 수신하고, 디스크램블러를 수행한다. 따라서, 사용자는 이러한 유료 채널을 시청할 수 있다. 키와 같은 필요한 정보가 제공되지 않는 경우, 제1 디스크램블러 유닛(701)은 디스크램블링을 수행하지 않고 수신된 신호를 TS 디코더(505)에 직접 전달한다.
제2 디스크램블러 유닛(702)은, CPU(706)으로부터의 지시에 의해, 단말 장치(500)의 QPSK 복조 유닛(502)으로부터 스크램블된 신호를 수신하고, 이러한 신호를 디스크램블한다. 다음으로, 제2 디스크램블러 유닛(702)은 디스크램블된 데이터를 CPU(706)에 전달한다.
스크램블러 유닛(703)은, CPU(706)로부터의 지시에 의해, CPU(706)로부터 수신한 데이터를 스크램블하고, 그 결과를 단말장치(500)의 QPSK 변조 유닛(503)에 전송한다.
제1 기억 유닛(704)는, 구체적으로는 RAM등의 일차 메모리로 구성되어 CPU(706)가 처리를 수행할 때 데이터를 일시 기억하기 위한 것이다.
제2 기억 유닛(705)는, 구체적으로는 플래시 ROM과 같은 이차 메모리로 구성되어, 전원 오프시에도 삭제되지 말아야 할 데이터를 기억하기 위한 것 외에도 CPU(706)에 의해 실행될 프로그램을 기억하기 위한 것이다.
CPU(706)는, 제2 기억 유닛(705)가 기억하는 프로그램을 실행한다. 프로그램은 복수의 서브 프로그램으로 구성된다. 도 9는, 제2 기억 유닛(705)이 기억하 는 프로그램의 일례이다. 도 9에서, 프로그램(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)은 시방서에 정의되어 있지 않은 초기화 처리도 실시한다. 여기에서는, 그러한 초기화 처리의 일부가 소개된다. 전원이 투입되면, 초기화 서브 프로그램(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)와 쌍방향 통신을 실시할 수 있다.
메인 프로그램(801) 및 초기화 서브 프로그램(802) 등의 복수의 서브 프로그램에 의해 이용되는 네트워크 서브 프로그램(803)은 헤드 엔드(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)에게 제공하여, 디스크램블링을 가능하게 한다. 또, 재생 서브 프로그램(804)은 제1 디스크램블러 유닛(701)에 입력되는 신호가 PPV 채널임을 나타내는 정보를 네트워크 서브 프로그램(803)을 통하여 수신한다. PPV 채널인 것에 대해 통지되면, 재생 서브 프로그램(804)은 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)은, 입력되고 있는 신호를 디스크램블 한다.
도 6을 참조하면, TS 디코더(505)는 POD(504)로부터 받은 신호의 필터링을 실시해, 필요한 데이터를 오디오 디코더(506), 비디오 디코더(508) 및 CPU(514)에 전달한다. 여기서, POD(504)로부터 송신된 신호는 MPEG2 트랜스포트 스트림이다. MPEG2 트랜스포트 스트림의 자세한 것은 MPEG 규격서 ISO/IEC 13818-1에 기재되어 있어 본 실시예에서는 자세한 것은 생략한다. MPEG2 트랜스포트 스트림은, 복수의 고정 길이 패킷(fixed length packet)으로 구성되고, 각 패킷에는 패킷 ID가 할당된다. 도 10은 패킷의 구성도이다. (900)은 패킷이며, 고정 길이 188 바이트로 구성된다. 선두 4 바이트는 패킷의 식별 정보를 기억하는 헤더(901)이다. 나머지 184 바이트는 송신하고 싶은 정보를 기억하는 페이로드(payload; 902)이다. (903) 은, 헤더(901)의 내역(breakdown)이다. 선두로부터 12비트~24비트까지의 13비트에 패킷 ID가 포함되어 있다. 도 11은 전송될 복수의 패킷 열을 표현한 모식도이다. 패킷(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를 가지는 패킷의 페이로드의 콘텐츠를 연결하면, 비디오 및 오디오를 연속으로 재생할 수 있다.
도 11을 참조로, CPU(514)가 패킷 ID "1"과 출력 목적지로 "비디오 디코더(508"를 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수신한 MPEG2 트랜스포트 스트림으로부터 패킷 ID "1"의 패킷을 추출하고, 이를 비디오 디코더(508)에 전달한다. 그러므로, 도 11에서, 비디오 데이터만이 비디오 디코더(508)에 전달된다. 동시에, CPU(514)가 패킷 ID "2"와 출력 목적지로 "오디오 디코더(506"을 TS 디코더(505)에 지시하면, TS 디코더(505)는 POD(504)로부터 수신된 MPEG2 트랜스포트 스트림으로부터 패킷 ID "2"의 패킷을 추출하고, 이를 오디오 디코더(506)에 전달한다. 도 11에서, 오디오 데이터만이 오디오 디코더(506)에 전달된다.
패킷 ID에 따라 필요한 패킷만을 추출하는 이러한 처리는 TS 디코더(505)가 실시하는 필터링에 해당한다. TS 디코더(505)는 CPU(514)로부터 지시로 하나 이상의 필터링을 동시에 실행할 수 있다.
도 6을 참조하고, 오디오 디코더(506)는 TS 디코더(505)로부터 주어진 MPEG2 트랜스포트 스트림의 패킷에 내장된 오디오 데이터를 연결(concatenate)하고, 연결된 데이터에 대해 디지털-아날로그 변환을 실시하고, 그 결과를 스피커(507)에 출력한다.
스피커(507)은 오디오 디코더(506)로부터 주어진 신호를 오디오로 출력한다.
비디오 디코더(508)는 TS 디코더(505)로부터 주어진 MPEG2 트랜스포트 스트림의 패킷에 내장된 비디오 데이터를 연결하고, 연결된 데이터에 대해 디지털-아날로그 변환을 실시하고, 그 결과를 디스플레이(509)에 출력한다.
디스플레이(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)은, 구체적으로는, 프런트 패널이나 리모콘으로 구성되어 사용자로부터의 입력을 받아들인다. 도 12는, 프런트 패널로 입력 유닛(513)을 구성했을 경우의 일례이다. (1100)은 프런트 패널이며,도 7의 프런트 패널 유닛(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)을 제어한다.
도 13은 ROM(512)에 기억되어 CPU(514)에 의해 실행되는 프로그램의 구성도의 일례이다.
프로그램(1200)은, 복수의 서브 프로그램으로 구성되어 구체적으로는 OS(1201), EPG(1202), Java VM(1203), 서비스 매니저(1204), Java 라이브러리 (1205)로 구성된다.
OS(1201)는, 단말장치(500)의 전원이 투입되면, CPU(514)가 기동하는 서브 프로그램이다. OS(1201)는, 운영 체제(operating system)의 약어이며, Linux 등이 일례이다. OS(1201)는, 다른 서브 프로그램과 병행해 실행하는 커널(1201a) 및 라이브러리(1201b)로 구성되는 공지의 기술의 총칭으로서, 상세한 설명은 생략한다. 본 실시예에서는, OS(1201)의 커널(1201a)는, EPG(1202)와 Java VM(1203)를 서브 프로그램으로서 실행한다. 또, 라이브러리(1201b)는 이것들 서브 프로그램에 대해 단말장치(500)의 구성요소를 제어하기 위한 복수의 기능을 제공한다.
본 실시예에서는, 라이브러리(1201b)는 기능의 일례로서 튜너(1201b1), 조건부 억세스(1201b2), AV 재생(1201b3)을 포함한다. 튜너(1201b1)는, 다른 서브 프로그램이나 Java 라이브러리(1205)의 튜너(1205c)로부터 주파수를 포함한 튜닝 정보를 받아들여, 그것을 QAM 복조 유닛(501)에 전달한다. 따라서, QAM 복조 유닛(501)은 주어진 튜닝 정보에 근거해 복조 처리를 실시하고, 복조한 데이터를 POD(504)에 전달한다. 이 결과, 다른 서브 프로그램 및 Java 라이브러리(1205)의 튜너(1205c)는 라이브러리(1201b)를 통해 QAM 복조 유닛을 제어할 수 있다.
조건부 억세스(1201b2)는, 다른 서브 프로그램이나 Java 라이브러리(1205)의 CA(1205d)로부터 스크램블링에 필요한 정보를 받아들여, POD(504)에게 제공한다. 이 결과, POD(504)는, 주어진 정보를 바탕으로, QAM 복조 유닛(501)으로부터 주어진 신호를 디스크램블하고, 그 결과 신호를 TS 디코더(505)에 전달한다.
AV 재생(1201b3)은 다른 서브 프로그램이나 Java 라이브러리(1205)의 JMF(1205a)로부터 오디오의 패킷 ID와 비디오의 패킷 ID를 받고, TS 디코더(508)에게 수신 비디오 패킷 ID 및 출력 목적지인 비디오 디코더(508) 세트와 수신 오디오 패킷 ID 및 출력 목적지인 오디오 디코더(506) 세트를 제공한다. 이 결과, TS 디코더(505)는 제공된 패킷 ID와 출력 목적지를 기초로, 필터링을 실시해, 비디오 및 오디오를 재생한다. EPG(1202)는, 사용자에게 프로그램 리스트를 디스플레이하고 사용자로부터의 입력을 받아들이기 위한 프로그램 표시 유닛(1202a) 및 채널 선국을 실시하는 재생 유닛(1202b)으로 구성된다. 여기서, EPG는 Electric Program Guide의 약어이다. EPG(1202)는, 단말장치(500)의 전원이 투입되면, 커널(1201a)에 의해서 기동된다. 기동된 EPG(1202)의 내부에서는, 프로그램 표시 유닛(1202a)와 재생 유닛(1202b)이 동시에 기동된다. 프로그램 표시 유닛(1202a)가 기동되면, 단말장치(500)의 입력 유닛(513)을 통해 사용자로부터의 입력을 기다린다. 여기서, 입력 유닛(513)이 도 12에 도시된 프런트 패널로 구성되어 있는 경우, 사용자가, 입력 유닛(513) 상의 EPG 버튼(1107)을 누르면, EPG 버튼의 식별자가 CPU(514)에 통지된다. CPU(514)상에서 동작하는 서브 프로그램인 EPG(1202)의 프로그램 표시 유닛(1202a)은 이 식별자를 받아, 프로그램 정보를 디스플레이(509)에 표시한다. 도 14 (1) 및 (2)은, 디스플레이(509)에 표시된 프로그램 표의 일례이다. 도 14(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)를 누르면 이동한다. 도 14(1)에 도시된 상태에서 오른쪽 커서(1104)를 누르면, 커서(1330)은 오른쪽으로 이동하고, 도 14(2)와 같이 된다. 또, 도 14(2)에 도시된 상태에서, 왼쪽 커서(1103)를 누르면, 커서(1330)는 왼쪽으로 이동하여, 도 14(1)과 같이 된다.
도 14(1)에 도시된 상태에서, 프런트 패널(1100)의 OK 버튼(1105)이 눌려지면, 프로그램 표시 유닛(1202a)은, "채널 1"의 식별자를 재생 유닛(1202b)에 통지한다. 도 14(2)상태로, 프런트 패널(1100)의 OK버튼(1105)이 눌려지면, 프로그램 표시 유닛(1202a)은, "채널 2"의 식별자를 재생 유닛(1202b)에 통지한다.
또, 프로그램 표시 유닛(1202a)은, 표시하는 프로그램 정보를, POD(504)를 통해 헤드 엔드(101)으로부터 제1 기억 유닛(511)에 주기적으로 기억한다. 일반적으로, 헤드 엔드로부터의 프로그램 정보의 취득은 시간이 걸린다. 그러나, 입력 유닛(513)의 EPG 버튼(1107)이 눌려졌을 때, 제1 기억 유닛(511)에 미리 기억된 프로그램 정보를 표시하는 것으로, 재빠르게 프로그램표를 표시할 수 있다.
재생 유닛(1202b)은, 수신된 채널 식별자를 이용하여 채널을 재생한다. 즉, 채널을 구성하는 비디오와 오디오를 재생한다. 채널의 식별자와 채널의 관계는, 채널 정보로서 제2 기억 유닛(510)에 미리 저장된다. 도 15는 제2 기억 유닛(510) 에 저장된 채널 정보의 일례이다. 채널 정보는 표 형식으로 저장된다. 열(1401)은, 채널의 식별자이다. 열(1402)는, 채널명이다. 열(1403)은 튜닝 정보이다. 여기서, 튜닝 정보는 주파수나 전송 레이트, 부호화비(coding ratio) 등을 포함하여, QAM 복조 유닛(501)에게 제공될 값으로서 표시된다. 열(1404)는 프로그램 번호이다. 프로그램 번호란, MPEG2규격으로 규정되고 있는 PMT를 식별하기 위한 번호이다. PMT에 관해서는, 후술한다. 행(1411)~(1414)의 각 행은, 각 채널의 식별자, 채널명, 튜닝 정보의 세트가 된다. 행(1411)은 식별자가 "1", 채널명이 "채널 1", 튜닝 정보로 주파수 "150MHz", 프로그램 번호가 "101"을 포함하는 세트를 표시한다. 재생 유닛(1202b)은, 채널의 재생을 실시하기 위해, 받은 채널의 식별자를 그대로 서비스 매니저에 전달한다.
또, 재생중에 사용자가 프런트 패널(1100) 상의 상 커서(1101) 및 하 커서(1102)를 누르면, 재생 유닛(1202b)은 입력 유닛(513)으로부터 CPU(514)를 통하여 그러한 사용자에 의한 누름을 통지 받고, 재생하고 있는 채널을 변경한다. 상 커서(1101)가 눌려지면, 현재 재생중의 채널보다 그 값이 하나 더 작은 채널 식별자를 가지는 채널이 재생되고, 또한 하 커서(1102)가 눌려지면, 현재 재생중의 채널보다 그 값이 하나 더 큰 채널 식별자를 가지는 채널이 재생된다. 우선, 재생 유닛(1202b)은 제2 기억 유닛(512)에 현재 재생중의 채널의 식별자를 기억한다. 도 16(1), (2) 및 (3)은 제2 기억 유닛(512)에 기억되는 채널의 식별자의 예이다. 도 15(1)에서는 식별자 "3"이 기억됨을 도시하고, 도 15를 참조하면, 채널명 "TV(3"을 갖는 채널이 재생됨이 도시된다. 도 16의 (1)에 도시된 상태에서, 사용자가 상 커 서(1101)을 누르면, 재생 유닛(1202b)은 도 15에 도시된 채널 정보를 참조하고, 표 중에서 그 값이 현재 재생중의 채널보다 하나 더 작은 식별자를 가지는 채널인 채널명 "채널 2"의 채널을 신규로 재생하기 위하여, 서비스 매니저에 채널명 "채널 2"의 식별자 "2"를 전달한다. 동시에, 재생 유닛(1202b)은 식별자를 제2 기억 유닛(512)에 기억되고 있는 채널 식별자 "2"에 고쳐 쓴다. 도 16의 (2)는 채널 식별자를 고쳐 쓸 수 있었던 상태를 나타낸다. 또, 도 16의 (1)에 도시된 상태로, 사용자가 하 커서(1102)를 누르면, 재생 유닛(1202b)은 도 15의 채널 정보를 참조해, 표 중에서 현재 재생중의 채널보다 하나 더 큰 식별자를 가지는 채널인 채널명 "TV Japan"의 채널을 신규 재생하기 위하여, 서비스 매니저에 채널명 "TV Japan"의 식별자 "4"를 전달한다. 동시에, 재생 유닛(1202b)은 식별자를 제2 기억 유닛(512)에 기억되고 있는 채널 식별자 "4"에 고쳐 쓴다. 도 16의 (3)은 고쳐 쓴 채널 식별자를 도시한다. 채널 식별자는 제2 기억 유닛(512)에 기억되고 있으므로, 단말장치(500)의 전원이 턴 오프될 때도 보존되고 있다.
더욱이, 재생 유닛(1202b)은, 단말장치(500)의 전원이 투입되었을 때에, 기동되면, 제2 기억 유닛(512)에 기억되고 있는 채널 식별자를 읽어내고, 그 채널 식별자를 서비스 매니저에 전달한다. 이것에 의해, 단말장치(500)는 전원 투입시에 전회의 가동시에 재생되고 있던 마지막 채널의 재생을 개시할 수 있다.
Java VM(1203)는, Java(TM)언어로 기술된 프로그램을 순서대로 해석해 실행하는 Java 버추얼 머신이다. Java 언어로 기술된 프로그램은 바이트 코드(byte code)로 불리는, 하드웨어에 의존하지 않는 중간 코드로 컴파일 된다. Java 버추 얼 머신은, 이 바이트 코드를 실행하는 인터프리터이다. 또, 일부의 Java 버추얼 머신은, 바이트 코드를 CPU(514)가 이해 가능한 실행 형식으로 번역하고 나서, 그 결과를 CPU(514)에 전달하며, 여기서 이를 실행한다. Java VM(1203)는, 실행하는 Java 프로그램이 커널(1201a)에 의해 지정되어 기동된다. 본 실시예에서는, 커널(1201a)는, 실행하는 Java 프로그램으로서 서비스 매니저(1204)를 지정한다. Java 언어의 자세한 것은, 서적 "Java Language Specification(ISBN 0-201-63451-1"등이 많은 서적으로 해설되고 있다. 여기에서는, 그 상세를 생략한다. 또, Java VM 자체의 상세한 동작 등은, "Java Virtual Machine Specification(ISBN 0-201-63451―X"등의 많은 서적으로 해설되고 있다. 여기에서는, 그 상세를 생략한다.
*서비스 매니저(1204)는, Java 언어로 쓰여진 Java 프로그램이며, Java VM(1203)에 의해서 순서대로 실행된다. 서비스 매니저(1204)는 JNI(Java Native Interface)를 통해 Java 언어로 기술되지 않은 다른 서브 프로그램을 호출하거나 또는, 불려 가거나 하는 것이 가능하다. JNI에 관해서도, 서적 "Java Native Interface"등의 많은 서적으로 해설되고 있다. 여기에서는, 그 상세를 생략한다.
서비스 매니저(1204)는, JNI를 통해 재생 유닛(1202b)으로부터 채널 식별자를 받는다.
먼저, 서비스 매니저(1204)는 Java 라이브러리(1205) 안에 있는 튜너(1205c)에 채널의 식별자를 전달하여, 튜닝을 의뢰한다. 튜너(1205c)는,제2 기억 유닛(510)이 기억하는 채널 정보를 참조해, 튜닝 정보를 획득한다. 지금, 서비스 매니 저(1204)가 채널의 식별자 "2"를 튜너(1205c)에 전달하면, 튜너(1205c)는 도 15에 도시된 행(1412)을 참조하고, 채널에 대응하는 튜닝 정보 "156MHz"를 획득한다. 튜너(1205c)는 OS(1201)의 라이브러리(1201b)의 튜너(1201b1)를 통해 QAM 복조 유닛(501)에 튜닝 정보를 전달한다. QAM 복조 유닛(501)은 주어진 튜닝 정보에 따라서 헤드 엔드(101)으로부터 송신되어 온 신호를 복조하고, 그 결과 신호를 POD(504)에 전달한다.
다음으로, 서비스 매니저(1204)는 Java 라이브러리(1205) 안에 있는 CA(1205d)에 디스크램블링을 의뢰한다. CA(1205d)는, OS(1201)의 라이브러리(1201b)의 조건부 억세스(1201b2)를 통해 디스크램블링에 필요한 정보를 POD(504)에게 준다. POD(504)는, 주어진 정보를 바탕으로, QAM 복조 유닛(501)으로부터 주어진 신호를 디스크램블링하고, 그 결과 신호를 TS 디코더(505)에 전달한다.
다음으로, 서비스 매니저(1204)는 Java 라이브러리(1205) 안에 있는 JMF(1205a)에 채널의 식별자를 주어 비디오 및 오디오의 재생을 의뢰한다.
우선, JMF(1205a)는 재생해야 할 비디오과 오디오를 특정하기 위한 패킷 ID를 PAT, PMT로부터 취득한다. PAT 및 PMT는 MPEG2규격으로 규정되고 있는, MPEG2 트랜스포트 스트림내의 프로그램 구성을 표현하는 테이블이다. PAT 및 PMT는 MPEG2 트랜스포트 스트림에 포함되는 패킷의 페이로드내에서 오디오 및 비디오와 함께 송신된다. PAT 및 PMT에 대한 자세한 것은 규격서를 참조하라. 여기에서는, PAT 및 PMT의 개략만 설명한다. PAT는, Program Association Table의 약어로, 패킷 ID "0"의 패킷에 격납되어 송신되고 있다. PAT를 취득하기 위해, JMF(1205a)는 OS(1201)의 라이브러리(1201b)를 통해 TS 디코더(505)에 패킷 ID "0" 및 CPU(514)를 지정한다. 다음으로, TS 디코더(505)가 패킷 ID "0"을 기초로 필터링을 실시하고, 그 결과를 CPU(514)에 전달한다. 따라서, JMF(1205a)는 PAT의 패킷을 수집한다. 도 17은 수집한 PAT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1601)은, 프로그램 번호이다. 열(1602)는, 패킷 ID이다. 열(1602)에 도시된 패킷 ID는 PMT를 취득하기 위해서 이용된다. 각각의 행(1611)~(1613)은 채널의 프로그램 번호와 대응하는 패킷 ID의 한 세트이다. 여기에서는, 3개의 채널이 정의되고 있다. 행(1611)은 프로그램 번호 "101" 및 패킷 ID "501"의 세트가 정의되고 있다. JMF(1205a)에 제공되는 채널 식별자가 "2"이면, JMF(1205a)는, 도 15의 행(1412)을 참조하고, 그러한 채널 식별자에 대응하는 프로그램 번호 "102"를 획득하고, 다음으로 도 17에 도시된 PAT의 행(1612)를 참조하여, 프로그램 번호 "102"에 대응하는 패킷 ID "502"를 획득한다. PMT는, Program Map Table의 약어로, PAT로 규정된 패킷 ID를 갖는 패킷내에서 송신된다. PMT를 취득하기 위해, JMF(1205a)는 OS(1201)의 라이브러리(1201b)를 통해 TS 디코더(505)에 패킷 ID와 CPU(514)를 지정한다. 여기서, 지정하는 패킷 ID는 "502"이다. 다음으로, TS 디코더(505)는 패킷 ID "502"를 기초로 필터링을 실시하고, 그 결과를 CPU(514)에 전달한다. 따라서, JMF(1205a)는 PMT의 패킷을 수집할 수 있다. 도 18은 수집한 PMT의 정보의 일례를 모식적으로 나타낸 표이다. 열(1701)은 스트림 유형이다. 열(1702)는 패킷 ID이다. 스트림 유형별로 지정된 정보가 열(1702)로 지정되는 패킷 ID를 갖는 패킷에의 페이로드내에서 송신된다. 열(1703)은 보충 정보이다. 각각의 행 (1711)~(1714)는 초보 스트림으로 불리는, 패킷 ID와 송신하고 있는 정보의 유형의 쌍이다. 행(1711)은, 스트림 유형 "오디오"이고 패킷 ID "5011"인 쌍이며, 패킷 ID "5011"를 갖는 패킷의 페이로드에 오디오가 기억됨을 나타낸다. JMF(1205a)는 PMT로부터 재생될 비디오와 오디오의 패킷 ID를 획득한다. 도 18을 참조하면, JMF(1205a)는 행(1711)으로부터 오디오의 패킷 ID "5011"을, 행(1712)으로부터 비디오의 패킷 ID "5012"를 획득한다.
다음에, JMF(1205a)는 OS(1201)의 라이브러리(1201b)의 AV 재생(1201b3)에 획득한 오디오의 패킷 ID와 비디오의 패킷 ID를 전달한다. 이에 따라, AV 재생(1201b3)는, 받은 오디오의 패킷 ID와 출력 목적지로서 오디오 디코더(506)의 쌍과 받은 비디오의 패킷 ID와 출력 목적지로서 비디오 디코더(508)의 쌍을, TS 디코더(505)에게 제공한다. TS 디코더(505)는 제공된 패킷 ID와 출력 목적지를 기초로, 필터링을 실시한다. 여기에서, 패킷 ID "5011"의 패킷을 오디오 디코더(506)에, 패킷 ID "5012"의 패킷을 비디오 디코더(508)에 전달한다. 오디오 디코더(506)는, 주어진 패킷의 디지털-아날로그 변환을 실시해 스피커(507)를 통해 오디오를 재생한다. 비디오 디코더(508)는, 주어진 패킷의 디지털-아날로그 변환을 실시해 디스플레이(509)에 비디오를 표시한다.
마지막으로, 서비스 매니저(1204)는 Java 라이브러리(1205)안에 있는 AM(1205b)에 채널의 식별자를 제공하여, 데이터 방송 재생을 의뢰한다. 여기서, 데이터 방송 재생이란, MPEG2 트랜스포트 스트림에 포함되는 Java 프로그램을 추출해, Java VM(1203)이 이를 실행시키도록 하는 것을 의미한다. MPEG2 트랜스포트 스트림에 Java 프로그램을 내장시키는 기술로서, MPEG 규격서 ISO/IEC 13818-6에 기술된 DSMCC라고 하는 방식이 이용된다. 여기에서는, DSMCC의 상세한 설명은 생략한다. DSMCC 규격서는, MPEG2 트랜스포트 스트림의 패킷안에, 컴퓨터에서 사용되고 있는 디렉토리나 파일로 구성되는 파일 시스템을 encode 하는 방법을 규정하고 있다. 또, 실행하는 Java 프로그램의 정보는 AIT로 불리는 형식에서, MPEG2 트랜스포트 스트림의 패킷내에서 송신된다. AIT는, DVB-MHP 규격(정식으로는, ETSI TS 101 812 DVB-MHP 사양 V 1. 0. 2)의 10번째 장에 정의되고 있는, Application Information Table의 약어이다.
먼저, AIT를 획득하기 위해 JMF(1205b)의 경우와 같이 AM(1205b)은 PAT 및 PMT를 취득해, AIT를 기억하는 패킷의 패킷 ID를 획득한다. 지금, 주어진 채널의 식별자가 "2"이고 도 17에 도시된 PAT 및 도 18d에 도시된 PMT가 송신되는 경우, AM(1205b)은 JMF(1205a)와 같은 순서로, 도 18에 도시된 PMT를 획득한다. 다음으로, AM(1205b)는 PMT로부터 스트림 유형이 "데이터"이고 보충 정보로서 "AIT"를 가지는 초보 스트림으로부터 패킷 ID를 추출한다. 도 18에 도시된 것처럼, 행(1713)의 초보 스트림은 그러한 초보 스트림에 해당하고, 따라서 AM(1205b)는 이로부터 패킷 ID "5013"을 획득한다.
AM(1205b)는, OS(1201)의 라이브러리(1201b)를 통해 TS 디코더(505)에 AIT의 패킷 ID와 출력 목적지로서의 CPU(514)를 제공한다. 다음으로, TS 디코더(505)는 주어진 패킷 ID를 기초로 필터링을 실시하고, 결과를 CPU(514)에 전달한다. 이 결과, AM(1205b)는 AIT의 패킷을 수집할 수 있다. 도 19는 수집한 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 식별자를 갖는다. 이는 2개의 Java 프로그램이 동일 DSMCC 방식에 따라 인코드된 파일 시스템내에 포함되어 있는 것을 나타낸다. 여기에서, 각각의 Java 프로그램에 대해 4개의 정보만 규정되었지만, 실제로는 보다 많은 정보가 규정된다. 자세한 것은 DVB-MHP 규격을 참조한다.
AM(1205b)는, AIT로부터 "autostart" Java 프로그램을 찾아내, 대응하는 DSMCC 식별자 및 Java 프로그램명을 추출한다. 도 19를 참조하면, AM(1205b)는 행(1811)의 Java 프로그램을 추출하고, DSMCC 식별자 "1" 및 Java 프로그램명 "a/TopXlet"를 획득한다.
다음에 AM(1205b)는, AIT로부터 취득한 DSMCC 식별자를 이용하여 Java 프로그램을 DSMCC 방식으로 기억하는 패킷의 패킷 ID를 PMT로부터 획득한다. 구체적으로는, PMT로부터 스트림 유형이 "데이터"이고 보충 정보내의 DSMCC 식별자가 합치하는 초보 스트림내에 포함되는 패킷 ID를 취득한다.
지금, DSMCC 식별자가 "1"이며, PMT가 도 18에 도시된 것으로 하면, 행(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)과 같은 기억 유닛에 기억하는 처리를 이후 다운로드라고 부른다.
도 20은 다운로드한 파일 시스템의 일례이다. 도면에서, 원은 디렉토리를 사각은 파일을 나타내며, (1901)은 루트 디렉토리, (1902)는 디렉토리 "a", (1903)은 디렉토리 "b", (1904)는 파일 "TopXlet.java", (1905)는 파일 "GameXlet.java"이다.
다음에, AM(1205b)는 제1 기억 유닛(511)에 다운로드한 파일 시스템 중에서 실행하는 Java 프로그램을 Java VM(1203)에 전달한다. 여기서, 실행하는 Java 프로그램명이 "a/TopXlet"라고 하면, Java 프로그램명의 마지막에 ". class"를 부가한 파일 "a/TopXlet. class"가 실행해야 할 파일이 된다. "/"은 디렉토리나 파일명의 단락이며,도 20에 도시된 것처럼, 파일(1904)은 실행해야 할 Java 프로그램이다. 다음에 AM(1205b)는 파일(1904)을 Java VM(1203)에 전달한다.
Java VM(1203)는 그러한 수신된 Java 프로그램을 실행한다.
다른 채널의 식별자를 수신하면, 서비스 매니저(1204)는 Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해 재생하고 있는 비디오 및 오디오 및 Java 프로그램의 실행을, 같은 Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해 정지시키고, 새롭게 수신한 채널 식별자에 기초하여 비디오 및 오디오의 재생 및 Java 프로그램의 실행을 수행한다.
또, 서비스 매니저(1204)는 재생 유닛(1202b) 뿐만이 아니라, Java VM(1203)상에서 실행되는 Java 프로그램으로부터 채널 식별자를 수신할 수 있다. 구체적으로는, 채널의 식별자를 받기 위한 Java 언어의 클래스 및 그 방법을 제공한다. 채널의 식별자를 받으면, 서비스 매니저(1204)는 Java 라이브러리(1205)에 포함되는 각각의 라이브러리를 통해 현재 재생하고 있는 비디오 및 오디오 및 Java 프로그램의 실행을, 동일 Java 라이브러리(1205)에 포함되는 각 라이브러리를 통해 정지하고, 그 후, 새롭게 수신한 채널의 식별자에 기초하여 새로운 비디오 및 오디오의 재생 및 Java 프로그램의 실행을 실시한다. 또한, 서비스 매니저(1204)는 Java 프 로그램의 다운로드·기억 및 실행도 실시한다.
서비스 매니저(1204)는, 기동시의 POD의 초기화 처리의 종료 이후에, 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에 필요로 하는 정보가 포함되어 있으면, 본 발명은 실시 가능하다.
도 21은 헤드 엔드(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/PPV1Xlet"의 조이다. 여기에서는, 각 Java 프로그램에 대해서 5개의 정보 밖에 규정하지 않지만, 보다 많은 정보가 정의되고 있어도 본 발명은 실시 가능하다.
XAIT 정보를 받아들이면, 서비스 매니저(1204)는 AIT 정보로부터 Java 프로그램을 다운로드한 순서와 같은 순서로, MPEG2 트랜스포트 스트림으로부터 파일 시스템을 제1 기억 유닛(511)에 기억한다. 그 후, 서비스 매니저(1204)는 기억한 파일 시스템을 제2 기억 유닛(510)에 복사한다. 덧붙여, 제1 기억 유닛(511)을 통하지 않고, 직접 제2 기억 유닛(510)에 다운로드하는 것도 가능하다. 다음에, 서비스 매니저(1204)는 XAIT 정보와 다운로드한 파일 시스템의 기억 위치를 관련시킨 결과를 제2 기억 유닛(510)에 기억한다. 도 22는 XAIT 정보와 다운로드한 파일 시스템이 서로에 대해 관련되어 제2 기억 유닛(510)에 기억되는 일례를 나타낸다. 도 22에서, 도 21과 같은 번호의 요소는 도 21과 동일하며, 따라서 그 설명은 생략한다. 열(2101)은 대응하는 다운로드한 파일 시스템의 기억 위치를 기억한다. 도 22에서, 기억 위치는 화살표로 가리키고 있다. (2110)은 다운로드한 파일 시스템이며, 내부에 톱 디렉토리(2111), 디렉토리 "a"(2112), 디렉토리 "b"(2113), 파일 "ZapperXlet. class"(2114), 파일 "PPV(2)Xlet. class"(2115)를 포함한다.
여기서, XAIT 정보는 Java 프로그램이 기억된 이후에 기억되지만, Java 프로그램을 기억하기 이전에 XAIT 정보가 기억되는 것도 가능하다.
단말장치(500)에 전원이 투입된 후, OS(1201)가 서비스 매니저(1204)를 Java VM(1203)로 지정한다. 다음으로, Java VM(1203)에 의해 기동된 이후, 서비스 매니 저(1204)는, 제2 기억 유닛(510)에 먼저 기억된 XAIT 정보를 참조한다. 여기서, 각 Java 프로그램의 제어 정보를 참조하고, "autoselect" 프로그램을 Java VM(1203)에 전달하여, 그 프로그램을 기동시킨다. 도 22를 참조로, 행(2011)에서 정의되는 Java 프로그램 "ZapperXlet"가 기동된다.
Java 라이브러리(1205)는 ROM(512)에 기억된 복수의 Java 라이브러리의 집합이다. 본 실시예에서는, Java 라이브러리(1205)는, JMF(1205a), AM(1205b), 튜너(1205c), CA(1205d), POD Lib(1205e), 재생 Lib(1205f), IO(1205g), AWT(1205h)등을 포함한다.
JMF(1205a), AM(1205b), 튜너(1205c), CA(1205d), POD Lib(1205e)의 기능은, 이미 기술되어 있으므로 생략한다.
재생 Lib(1205f)는 제2 기억 유닛(510)이 기억하고 있는, 현재 재생하고 있는 채널의 식별자를 Java 프로그램에 건네주기 위한 Java 언어의 클래스 및 방법(이하 Java API로 칭함)을 제공한다. 이 Java API를 이용하는 것으로, Java 프로그램은, 현재 재생중인 채널을 알 수 있다.
IO(1205g)는 Java 프로그램이 제2 기억 유닛(510)에 데이터를 쓰기 위한 Java API 혹은 그 쓴 데이터를 제2 기억 유닛(510)으로부터 읽어들이기 위한 Java API를 Java 프로그램에 제공한다. 이 API의 이용자는 Java 프로그램이 임의의 데이터를 제2 기억 유닛(510)에 기억할 수 있도록 한다. 이러한 기억된 데이터는 단말장치(500)의 전원이 오프가 되어도 사라지지 않기 때문에, 단말장치(500)의 전원이 투입된 후, 다시 그 데이터를 읽어들일 수 있다.
AWT(1205h)는, Java 프로그램이 랜더링(rendering)을 실시하거나 입력 유닛(513)으로부터의 키 입력 통지를 받기 위한 Java API를 제공한다. 구체적으로는, "The Java class Libraries Second Edition, Volume 2" (ISBN0-201-31003-1)로 정의되는 Java. awt 패키지, Java. awt. event 패키지 및 그 외의 Java. awt의 서브 패키지가 상당한다. 여기에서는, 상세한 설명을 생략한다.
다음으로, 본 발명의 주요 부분인, 단말장치(500)의 전원 투입시에 있어서의 재생 유닛(1202b)의 예외 처리와 Java 프로그램 "ZapperXlet"의 동작에 대해 설명한다.
*도 23은 단말장치(500)의 전원 투입시에 있어서의, 주요 서브 프로그램의 기동 순서를 나타낸 모식도이다. 이 도면에서, 횡축은 시간 경과를 나타낸다. 화살표(2201)의 좌단은, 커널(1201a)의 기동하고, 이 기동 후 동작을 계속 하는 것을 표현하고 있다. 유사하게, 화살표 (2202),(2203),(2204)의 좌단은, 각각 재생 유닛(1202b), Java VM(1203), 서비스 매니저(1204) 각각이 기동하고, 이 기동후 동작을 계속 하는 것을 표현하고 있다.
(2211)은, 단말장치(500)에 전원이 투입된 시각이다. 이 때, 커널(1201a)는 기동된다. 커널(1201a)는 자신의 초기화 처리 등을 끝낸 후,(2212)로 나타나는 시각에 EPG(1202)를 기동하는 것에 의해서 재생 유닛(1202b)를 기동하고, 동시에 Java VM(1203)도 기동한다. Java VM(1203)은 자신의 초기화 처리 등을 끝낸 후, (2213)으로 나타나는 시각에 서비스 매니저(1204)를 기동한다. 서비스 매니저 (1204)는, 자신의 초기화 처리 등을 끝낸 후, (2214)로 나타나는 시각부터, 재생하는 채널의 식별자를 받을 수 있다.
도 23으로부터 분명한 것처럼, 시각(2212)로부터 시각(2214)까지의 사이에, 재생하고 싶은 채널의 식별자를 서비스 매니저(1204)에 전달하더라도, 서비스 매니저(1204)는 어떠한 식별자도 수신할 수 없다. 따라서, 채널을 재생할 수 할 수 없다.
따라서, 시각(2212)로부터 시각(2214)까지의 사이는, 재생 유닛(1202b)은 서비스 매니저로부터의 지시 없이, 독자적으로 채널 재생을 실시할 수 있다.
재생 유닛(1202b)은 라이브러리(1201b)에 직접 액세스 가능하고, 이것에 의해 Java 라이브러리(1205)를 구성하는 튜너(1205c), CA(1205d)및 JMF(1205c)와 동등한 기능을 갖춘다. 우선, 기동과 동시에, 제2 기억 유닛(510)이 기억하는 채널의 식별자를 읽어낸다. 이 채널의 식별자는, 전회의 전원 오프전에 마지막에 재생되고 있던 채널의 식별자이다. 다르게는, 제2 기억 유닛(510)은 전원 투입시에 재생해야 할 특정의 채널의 식별자를 기억하고, 재생 유닛(1202b)은 그것을 읽어들이는 것도 가능하다.
다음에 재생 유닛(1202b)은, 제2 기억 유닛(510)이 기억하는 채널 정보를 참조해, 튜닝 정보를 획득한다. 지금, 채널의 식별자 "2"의 채널을 재생하고 싶다고 하면, 도 15에 도시된 행(1412)를 참조하고, 이 채널에 대응하는 튜닝 정보 "156MHz"를 획득한다. 재생 유닛(1202b)은, OS(1201)의 라이브러리(1201b)의 튜너(1201b1)를 통해 QAM 복조 유닛(501)에 튜닝 정보를 전달한다. QAM 복조 유닛 (501)은 주어진 튜닝 정보에 따라서 헤드 엔드(101)로부터 송신되어 온 신호를 복조해, 그 결과 신호를 POD(504)에 전달한다.
다음에 재생 유닛(1202b)은, OS(1201)의 라이브러리(1201b)의 조건부 억세스(1201b2)를 통해 디스크램블링에 필요한 정보를 POD(504)에게 준다. 주어진 정보를 바탕으로, POD(504)는 QAM 복조 유닛(501)으로부터 주어진 신호를 디스크램블링하고, 이 결과 신호를 TS 디코더(505)에 전달한다.
마지막으로, 재생 유닛(1202b)은, JMF(1205a)의 경우와 같이, TS 디코더(505)를 사용해 PAT 및 PMT 정보를 취득하고, 재생해야 할 오디오과 비디오의 패킷 ID를 획득한다. 재생 유닛(1202b)은 OS(1201)의 라이브러리(1201b)의 AV 재생(1201b3)에 획득한 오디오의 패킷 ID와 비디오의 패킷 ID를 전달한다. 이에 따라, AV 재생(1201b3)는, 수신한 오디오의 패킷 ID와 출력 목적지로서 오디오 디코더(506)의 세트와 수신한 비디오의 패킷 ID와 출력 목적지로서 비디오 디코더(508)의 세트를 TS 디코더(505)에게 준다. TS 디코더(505)는 주어진 패킷 ID와 출력 목적지를 기초로 필터링을 실시한다. 오디오 디코더(506)는 TS 디코더(505)로부터 주어진 패킷의 디지털-아날로그 변환을 실시해, 스피커(507)를 통해 오디오를 재생한다. 또, 비디오 디코더(508)는 TS 디코더(505)로부터 주어진 패킷의 디지털-아날로그 변환을 실시해, 디스플레이(509)에 비디오를 표시한다.
재생 유닛(1202b)은, 시각(2214) 이후는, 통상 대로 채널의 식별자를 서비스 매니저(1204)에 전달한다. 재생 유닛(1202b)은 서비스 매니저(1204)가 채널의 식별자를 받을 수 있는 시각을, 서비스 매니저(1204)로부터의 통지에 의해 알 수 있 다. 구체적으로는, 재생 유닛(1202b)내에 준비된 함수를 서비스 매니저(1204)가 호출한다. 다르게는, 재생부(1204)는 콜백 함수를 서비스 매니저(1204)에 등록하고, 서비스 매니저(1204)는 등록된 콜백 함수를 호출할 수 있다. 다르게는, 서비스 매니저(1204)는, Java VM(1203)에 통지하고, 다음으로 재생 유닛(1202b)에 통지하는 것과 같은 간접 통지하는 것도 가능하다. 다시 말하면, 여러가지 방법으로, 서비스 매니저(1204)가 채널의 식별자를 받을 수 있는 시각을 재생 유닛(1202b)이 아는 것이 가능하다. 이 결과, 시각(2214) 이전에는, 재생 유닛(1202b)에 의해 오디오·비디오의 재생만이 가능하고, 시각(2214) 이후는, 서비스 매니저(1204)에 의해 오디오·비디오의 재생 외에도 채널에 포함되는 Java 프로그램의 실행도 가능해진다. 단말 장치(500)가 상술한 기동시에 있어서의 재생 유닛(1202b)의 예외 처리를 이용하는 것에 의해, 서비스 매니저(1204)의 기동전에, 비디오 및 오디오의 재생을 실시할 수 있다. 그 결과, 전원 투입 후의 사용자 대기 시간을 외관상 단축할 수 있다. 즉, 전원을 투입했는데 화면에 아무것도 표시되지 않는 시간을 단축할 수 있다.
여기서, 입력 유닛(513)을 통해 시각(2212)으로부터 시각(2214)의 사이에 사용자로부터의 입력을 재생 유닛(1202b)이 수신하는 것이 가능하다. 이 경우, 상술한 대로, 재생 유닛(1202b)은 독자적으로 비디오과 오디오의 재생을 실시함과 동시에,제2 기억 유닛(510)에, 재생하고 있는 비디오과 오디오를 포함한 채널의 식별자를 기억한다.
도 24는, Java 프로그램 "ZapperXlet"의 구성의 일례이다. Java 프로그램 "ZapperXlet"는, 4개의 서브 프로그램: 채널 기억 서브 프로그램(2301), 기동 서브 프로그램(2302), 채널 재생 서브 프로그램(2303), 입력 서브 프로그램(2304)으로 구성된다.
Java 프로그램 "ZapperXlet"는, 도 22에 도시된 디렉토리 "a" (2112)에 기억된 Java 프로그램이며, 제2 기억 유닛(510)에 기억되어 서비스 매니저(1204)가 기동시에 자동적으로 기동하는 프로그램이다.
채널 기억 서브 프로그램(2301)은, Java 라이브러리(1205)의 IO(1205g)를 통해 Java 프로그램 "ZapperXlet"에 의해 관리되는 채널 식별자를 기억한다. 또, 기억한 채널 식별자를 제2 기억 유닛(510)으로부터 읽어낸다. 여기서, Java 프로그램 "ZapperXlet"가 사용하는 제2 기억 유닛(510)내의 영역은, 재생 유닛(1202b)이 사용하는 영역과는 다르다. 즉, 제2 기억 유닛(510)에는, 재생 유닛(1202b)에 의해 기억되는 채널 식별자와 Java 프로그램 "ZapperXlet"에 의해 기억되는 채널 식별자 2 종류의 채널 식별자가 기억된다.
기동 서브 프로그램(2302)은 Java 프로그램 "ZapperXlet"의 기동시에 최초로 실행되는 서브 프로그램이다. 우선, 기동 서브 프로그램(2302)은 재생 Lib(1205f)를 호출해, 현재 재생하고 있는 채널의 채널 식별자를 취득한다. 다음으로, 취득한 채널 식별자를 채널 재생 서브 프로그램(2303)에 전달한다. 동시에, 기동 서브 프로그램(2302)은 이 값을 채널 기억 서브 프로그램(2301)을 통해 제2 기억 유닛(510)에 기억한다. 그러나, 채널의 재생을 하지 않고, 재생 Lib(1205f)가 채널의 식별자를 돌려주지 않을 때, 기동 서브 프로그램(2302)은 채널 기억 서브 프로그램 (2301)을 통해 제2 기억 유닛(510)으로부터 기억되고 있는 채널 식별자를 읽어내, 이를 채널 재생 서브 프로그램(2303)에 전달한다. 더욱이, 제2 기억 유닛(510)이 채널 식별자를 기억하고 있지 않을 때는, 미리 정해진 디폴트 채널 식별자를 채널 재생 서브 프로그램(2303)에 전달한다.
채널 재생 서브 프로그램(2303)은 받은 채널 식별자를 서비스 매니저(1204)에게 주어, 다른 채널로 변경된다.
입력 서브 프로그램(2304)은 Java 라이브러리(1205)의 AWT(1205h)를 통해 입력 유닛(513)으로부터 사용자가 입력한 키에 대한 통지를 받는다. 구체적으로는, 입력 서브 프로그램(2304)은 키의 식별자를 받는다. 입력 서브 프로그램(2304)은 받은 키의 식별자에 대응하는 채널 식별자를 채널 재생 서브 프로그램(2303)에 전달한다. 여기서, 본 발명에 따른 실시예는 키 식별자와 채널 식별자 사이의 대응에 한정되지 않는다. 입력 유닛(513)은 "0"으로부터 "9"의 숫자 키를 갖추어 사용자가 채널 식별자에 상당하는 숫자를 입력할 수 있고, 재생 유닛(1202b)의 경우와 같이 상 커서 버튼(1101), 하 커서 버튼(1102)의 누름에 의해 다른 채널로 변경될 수 있다.
여기서, Java 프로그램이 AWT(1205h)를 통해 입력 유닛(513)으로부터 사용자의 키 입력을 받을 때는, 재생 유닛(1202b)은, 입력 유닛(513)으로부터 사용자의 키 입력을 받을 수 없다.
따라서, Java 프로그램 "ZapperXlet"가 동작중인 동안, Java 프로그램 "ZapperXlet"가 AWT(1205h)를 통해 입력 유닛(513)으로부터 사용자의 키 입력을 받 아, 재생 유닛(1202b)과 동등하게 작업할 수 있다. 또, 이 시점 이후, 재생 유닛(1202b)은 입력 유닛(513)으로부터의 입력을 받을 수 없기 때문에 정상 동작하지 않고, 따라서 프로그램 "ZapperXlet"은 재생 유닛(1202b)의 동작을 계승하게 된다.
이와 같이, 재생 Lib(1205f)를 준비하는 것으로써, 재생 유닛(1202b)이 프로그램 "ZapperXlet"의 기동 전에, 재생하고 있는 채널의 식별자를 Java 프로그램이 취득할 수 있게 된다. 따라서, Java 프로그램이 재생 유닛(1202b)의 기능을 가지는 경우, 재생 유닛(1202b)이 재생하고 있던 채널을 계승하여 재생할 수 있게 된다. 이는 사용자에게 혼란을 주지 않고, 그러한 Java 프로그램이 채널 채널 변경 기능을 계승할 수 있다.
도 25는 재생 Lib(1205f)에 의해 제공되는 효과의 예를 도시하며, 단말장치(500)의 전원 투입시에 있어서의, 재생 유닛(1202b)과 Java 프로그램 "ZapperXlet"이 기동되는 순서를 나타낸 모식도이다. 이 도면에서, 횡축은 시간 경과를 나타낸다. 화살표(2401)의 좌단은 재생 유닛(1202b)의 기동을 나타내며, 이 기동 이후에 계속 동작됨을 표현하고 있다. 유사하게, 화살표(2402)의 좌단은, Java 프로그램 "ZapperXlet"의 기동을 나타내며, 이 기동 이후에 계속 동작됨을 표현하고 있다. (2405)는, 각 시점에서 실제로 재생되고 있는 채널의 식별자를 나타내고 있다.
(2405)는 단말장치(500)가 각 시각에 재생하고 있는 채널의 식별자를 나타낸다. 시각(2411)으로부터 시각(2412)까지는 채널 식별자 "3"의 채널을 재생하고, 시각(2412)으로부터 시각(2414)까지는 채널 식별자 "2"의 채널을 재생하며, 시각(2414) 이후는 채널 식별자 "1"의 채널을 재생하고 있는 것을 나타낸다.
시각(2411)은 단말장치(500)에 전원이 투입된 후, 재생 유닛(1202b)이 기동한 시각이다. 여기서, 재생 유닛(1202b)은 제2 기억 유닛(510)이 기억하고 있던 채널 식별자 "3"의 채널을 재생한다고 가정한다. 시각(2412)은 사용자가 입력 유닛(513)으로 채널 변경 지시를 입력하고, 재생 유닛(1202b)이 재생하고 있는 채널을 채널 식별자 "3"의 채널로부터 채널 식별자 "2"의 채널로 변경하는 것을 가리킨다. 시각(2413)은, Java 프로그램 "ZapperXlet"가 기동한 시각이다. 여기서, Java 프로그램 "ZapperXlet"는, 재생 Lib(1205f)를 통해, 채널 식별자 "2"의 채널이 재생중인 것을 알아, 아무것도 하지 않는다. 시각(2414)은 사용자가 입력 유닛(513)으로 채널 변경 지시를 입력하고, Java 프로그램 "ZapperXlet"가 재생하고 있는 채널을 채널 식별자 "2"의 채널로부터 채널 식별자 "1"의 채널로 변경한 것을 가리킨다.
여기서, 본 실시예의 효과를 비교 설명하기 위해서, 만일 재생 Lib(1205f)가 존재하지 않았던 경우를 생각한다. 도 25를 참조하면, 재생 프로그램(1202b)는 시각(2411)에서 채널 식별자 "3"의 채널을 재생하고, 시각(2412)에서 사용자의 지지를 받아, 채널 식별자 "2"의 채널을 재생한다. Java 프로그램 "ZapperXlet"는 시각(2413)에서 채널 기억 서브 프로그램(2301)을 이용하여 제2 기억 유닛(510)에 기억한 채널의 식별자를 읽어내고, 그 채널 식별자의 채널을 재생한다. 만약, 그 채널의 식별자가 "4"이면, 사용자가 선택한 채널 식별자 "2"의 채널의 재생이 돌연 중단되고, 채널 식별자 "4"의 채널의 재생이 시작된다. 이것은, 사용자를 놀라게 하는 한편, 사용자는 자신이 보고 싶은 채널 식별자 "2"의 채널을 다시 선택해야 하는 수고를 필요로 한다.
만일 재생 Lib(1205f)가 존재하지 않는, 또 하나의 예를 고려한다. 여기서, Java 프로그램 "ZapperXlet"는 기동시에는 채널 재생을 실시하지 않는다고 가정한다. 또한, 단말장치(500)는 Java 프로그램 "ZapperXlet"가 채널 재생을 하는 것으로 기대하여 재생 유닛(1202b)이 채널을 재생하지 않거나 또는 재생부(1202)가 존재하지 않는 단말인 경우에는, 전원 투입 후에 어느 채널도 자동적으로 재생되지 않는다. 이것은 전원 투입 후, 사용자가 반드시 채널을 지정할 필요가 있어 불편하다. 또한, 단말이 정상적으로 동작하는지 여부를 판단하는 것은 어렵다. 이와 같이, 재생 Lib(1205f)를 채용함에 의해, Java 프로그램 "ZapperXlet"가 실시해야 할 동작의 일부를, 서비스 매니저(1204)가 기동되기 이전에, 재생 유닛(1202b)이 실시하도록 함에 의해, 단말장치(500)의 기동 직후에 사용자에게 채널내에 포함되는 비디오 및 오디오를 제시할 수 있다.
도 26은 재생 유닛(1202b)의 기동시의 동작의 일례를 나타내는 흐름도이다.
도 26을 참조하면, 재생 유닛(1202b)은 기동하게 되는 경우 내부의 변수 "서비스 매니저 기동 플래그"에 "false"를 세트 한다(스텝 S2501). 다음에, 재생 유닛(1202b)은 채널 기억 서브 프로그램을 통해 제2 기억 유닛(510)으로부터, 채널 식별자를 꺼낸다(스텝 S2502). 변수 "서비스 매니저 기동 플래그"의 값을 참조하고(스텝 S2503), 그 값이 "false"라면, 재생 유닛(1202b)은 취득한 채널 식별자에 대응하는 채널내에 포함되는 비디오 및 오디오를 재생하고(스텝 S2504), 그 값이 "true"라면, 취득한 채널 식별자를 서비스 매니저(1204)에 전달하여, 채널의 재생 을 의뢰한다(스텝 S2505).
그 후, 서비스 매니저(1204)의 기동 통지를 받으면(스텝 S2506), 재생 유닛(1202b)은 내부 변수 "서비스 매니저 기동 플래그"에 "true"를 세트 한다(스텝 S2507). 또는, 사용자로부터의 입력을 받아들이면(스텝 S2508), 입력에 대응하는 채널 식별자를 취득, 혹은 산출하고(스텝 S2509), 제어를 스텝 S2503로 이동함에 의해, 재생하는 채널을 다른 것으로 변경한다.
도 27은 Java 프로그램 "ZapperXlet"의 동작의 일례를 나타내는 흐름도이다.
도 27을 참조하면, Java 프로그램 "ZapperXlet"는 재생 Lib(1205f)로부터 채널의 재생 상태를 취득한다(스텝 S2601). 재생되는 채널이 없는 경우(스텝 S2602), Java 프로그램 "ZapperXlet"는 제2 기억 유닛(510)이 기억하는 채널 식별자를 취득한다(스텝 S2603). 채널 식별자를 취득할 수 없는 경우(스텝 S2604), Java 프로그램 "ZapperXlet"는 채널 식별자로서 선정된 디폴트 값을 이용한다(스텝 S2605). 다음으로, Java 프로그램 "ZapperXlet"는 채널 식별자를 전달하여 서비스 매니저에게 채널의 재생을 의뢰한다(스텝 S2606).
덧붙여 본 실시예에서, 재생 유닛(1202b)이 비디오 및 오디오만을 재생하지만, 부제(subtitles), 텔레텍스트(teletext)나 자막 방송 등의 재생할 수도 있다. 이것을 실현하려면 , 단말장치(500)는 부제, 텔레텍스트나 자막 방송을 재생하는 서브 재생 모듈을 갖추고, 재생 유닛(1202b)은 그러한 서브 재생 모듈에 필요한 정보를 전달해야 한다.
또, 본 실시예는 재생 유닛(1202b)이, 비디오 및 오디오의 재생에 앞서, Java 프로그램 "ZapperXlet"의 일부의 기능을 실시하는 예를 보이지만, 다른 동작 대상에 관해서도 적응 가능하다. 예를 들면, 애니메이션의 재생에 있어서는, 본 실시예는 단말장치내에 기억된 서브 프로그램이 애니메이션의 제1 프레임만을 표시하고, Java 프로그램이 그 후의 프레임을 승계하고 디스플레이하는 경우에 역시 적용 가능하다. 이 경우, 단말장치내에 기억되는 서브 프로그램에 의해 수행되는 디스플레이의 상태를 Java 프로그램에 통지하기 위한 기구가 단말장치에 구비된다.
또한, 본 실시예에서, Java 프로그램이 AWT(1205h)를 통해 입력 유닛(513)으로부터 사용자의 키 입력을 수신하는 경우, 재생 유닛(1202b)은 입력 유닛(513)으로부터 사용자의 키 입력을 수신할 수 없다. 이것을 실현하기 위해, Java 라이브러리(1205)는 재생 유닛(1202b)의 동작을 명확하게 정지하기 위한 재생 유닛 정지 Lib를 구비한다. 이러한 재생 유닛 정지 Lib를 호출함에 의해, Java 프로그램은 재생 유닛(1202b)의 동작을 정지해, 재생 유닛(1202b)에 의한 채널의 재생을 정지할 수 있다. 다르게는, 재생부 정지 Lib는 입력 유닛(513)으로부터의 사용자의 입력을 재생 유닛(1202b)에 통지하지 않도록 설계되더라도, 동일한 효과를 얻을 수 있다.
이 재생 유닛 정지 Lib는 재생 유닛(1202b)용으로 이용될 뿐만 아니라, 다운로드된 Java 프로그램이 미리 기억된 서브 프로그램의 기능을 정지하고, 그 기능을 Java 프로그램의 기능과 대체하려는 경우에, 사용할 수 있다. 구체적으로는, Java 프로그램이 정지하고 싶은 기능을 재생부 정지 Lib로 지정할 수 있다.
(제2 실시예)
본 실시예는 제1의 실시예와는 Java 프로그램 "ZapperXlet"의 동작면에서 다르다.
도 28은 본 실시예에 있어서의 Java 프로그램 "ZapperXlet"의 동작의 일례를 나타내는 흐름도이다. 제1 실시예와 같은 부호의 스텝의 동작은, 제1 실시예와 같으므로 설명을 생략한다. 제1 실시예과 다른 것은, 스텝 S2602에서, 채널이 재생중의 경우(도면에서 YES의 경우), 처리가 스텝 S2606로 이동하고, 그 재생중의 채널의 식별자는 서비스 매니저(1204)에 전달되어, 재생을 의뢰하는 것이다.
이 결과, 재생되는 비디오 및 오디오는 같지만, 채널내에 정의되고 있는 Java 프로그램을 실행할 수 있다.
또, 본 실시예에서, 같은 채널에도 불구하고, Java 프로그램 "ZapperXlet"가 스텝 S2606에서 서비스 매니저(1204)를 호출하므로, 일단 비디오 및 오디오의 재생이 정지되고, 다음으로 같은 비디오 및 오디오가 그 이후에 다시 재생될 것이다. 이는 비디오 및 오디오가 일단 중단되는 것을 의미한다. 이것을 막기 위해, 서비스 매니저(1204)는, 재생 Lib(1205f)를 참조하여, 재생중의 채널 식별자와 Java 프로그램으로부터 수신한 채널 식별자가 동일할 때, 비디오 및 오디오를 다시 재생하지 않을 수 있다. 따라서, 비디오 및 오디오가 중단되지 않게 되는 것이다. 다르게는, 서비스 매니저(1204)가 아니라 JMF(1205a)가 재생 Lib(1205f)를 참조하고, 재생중의 채널 식별자와 서비스 매니저(1204)로부터 수신한 채널 식별자가 동일할 때 비디오 및 오디오를 재생하지 않는 경우에도 동일한 효과를 얻을 수 있다. 즉, 서비스 매니저(1204)가 채널 식별자를 받았을 때, 비디오 및 오디오의 재생을 실시 하기 위해서 필요한 서브 프로그램을 이용하는 재생 Lib(1205f)를 참조하고, 재생중의 채널 식별자와 서비스 매니저(1204)에 의해 수신된 채널 식별자가 동일할 때, 비디오 및 오디오를 다시 재생하지 않는 경우에도 같은 효과를 얻을 수 있다.
(제3 실시예)
제1 실시예에서, 재생 유닛(1202b)은 서비스 매니저(1204)가 채널 식별자를 수신할 준비가 될 때까지의 처리와 채널 식별자를 수신할 준비가 된 이후의 처리 사이에서 분기한다.
이는 채널 식별자 수신 유닛을 제공함에 의해 병합된다.
도 29는 본 실시예에 있어서의 CPU(514)가 실행하는 프로그램(2800)의 구성도이다.
프로그램(2800)은, 복수의 서브 프로그램으로 구성되어 있다. 구체적으로는 OS(1201), EPG(2802), Java VM(1203), 서비스 매니저(2804), Java 라이브러리(1205), 채널 식별자 수신 유닛(2806)으로 구성된다.
이후, 제1 실시예와 같은 부호의 구성요소는 같은 역할을 완수하므로, 설명을 생략한다.
EPG(2802)는, 사용자에게 프로그램 리스트를 표시하고 사용자로부터 입력을 수용하기 위한 프로그램 디스플레이 유닛(1202a) 및 채널 선택을 위한 재생 유닛(2802b)으로 구성된다. 재생 유닛(2802b)은 채널을 재생할 때, 채널 식별자 수신 유닛(2806)에 채널 식별자를 전달하여, 채널의 재생을 의뢰한다. 재생 유닛(2802b)에서는 서비스 매니저(2804)상태를 고려한 동작은 실시하지 않거나, 또는 스스로 PAT 및 PMT를 갱신한 이후에는 비디오 및 오디오를 재생하지는 않는다.
서비스 매니저(2804)와 제1 실시예의 서비스 매니저(1204)의 차이는, 채널 식별자를 재생 유닛(1202b)으로부터 수신하지 않고, 채널 식별자 수신 유닛(2806)으로부터 수신하는 것이다. 다른 동작은 같다.
채널 식별자 수신 유닛(2806)은 재생 유닛(2802b)으로부터 채널 식별자를 수신한다.
서비스 매니저(2804)가 채널 식별자를 받을 수 없는 상태 동안, 채널 식별자 수신 유닛(2806)은 튜너(1205c), CA(1205d)및 JMF(1205c)와 동등하게 동작할 수 있다.
채널 식별자 수신 유닛(2806)은 제2 기억 유닛(510)이 기억하는 채널 정보를 참조하여, 주어진 채널 식별자에 대응하는 튜닝 정보를 획득한다. 지금, 채널의 식별자 "2"의 채널을 재생하고 싶다고 하면, 도 15에 도시된 행(1412)를 참조하여, 채널에 대응하는 튜닝 정보 "156MHz"가 획득된다. 채널 식별자 수신 유닛(2806)은 OS(1201)의 라이브러리(1201b)의 튜너(1201b1)를 통해, QAM 복조 유닛(501)에 튜닝 정보를 전달한다. QAM 복조 유닛(501)은 주어진 튜닝 정보에 따라서 헤드 엔드(101)으로부터 송신되어 온 신호를 복조하고, 그 결과 신호를 POD(504)에 전달한다.
다음으로, 채널 식별자 수신 유닛(2806)은 OS(1201)의 라이브러리(1201b)의 조건부 억세스(1201b2)를 통해, 복호에 필요한 정보를 POD(504)에게 준다. 주어진 정보를 기초로, POD(504)는 QAM 복조 유닛(501)으로부터 주어진 신호를 디스크램블 하고, 그 결과 신호를 TS 디코더(505)에 전달한다.
마지막으로, 채널 식별자 수신 유닛(2806)은 JMF(1205a)의 경우와 같이, TS 디코더(505)를 사용해 PAT 및 PMT 정보를 취득하고, 재생해야 할 오디오 및 비디오의 패킷 ID를 획득한다. 채널 식별자 수신 유닛(2806)은, OS(1201)의 라이브러리(1201b)의 AV 재생(1201b3)에 획득한 오디오의 패킷 ID와 비디오의 패킷 ID를 전달한다. 이에 따라, AV 재생(1201b3)은, 받은 오디오의 패킷 ID와 출력 목적지로서 오디오 디코더(506)의 세트와 받은 비디오의 패킷 ID와 출력 목적지로서 비디오 디코더(508)의 세트를 TS 디코더(505)에게 준다. TS 디코더(505)는 주어진 패킷 ID와 출력 목적지를 기초로 필터링을 실시한다. 오디오 디코더(506)는 TS 디코더(505)로부터 주어진 패킷의 디지털-아날로그 변환을 실시해 스피커(507)를 통해 오디오를 재생한다. 또, 비디오 디코더(508)는 TS 디코더(505)로부터 주어진 패킷의 디지털-아날로그 변환을 실시해 디스플레이(509)에 비디오를 표시한다.
서비스 매니저(2804)가 채널 식별자를 수신할 준비가 된 이후는, 채널 식별자 수신 유닛(2806)은 통상의 경우와 같이 채널의 식별자를 서비스 매니저(2804)에 전달한다. 채널 식별자 수신 유닛(2806)은 서비스 매니저(2804)가 채널의 식별자를 받을 수 있는 시각을, 서비스 매니저(2804)로부터의 통지에 의해 알 수 있다. 구체적으로는, 채널 식별자 수신 유닛(2806)내에 준비된 함수를 서비스 매니저(2804)가 호출한다. 다르게는, 채널 식별자 수신 유닛(2806)은 콜백 함수를 서비스 매니저(2804)에 등록하고, 서비스 매니저(2804)는 등록된 콜백 함수를 호출할 수 있다. 또는, 서비스 매니저(2804)는 Java VM(1203)에 통지하고, Java VM(1203) 이 채널 식별자 수신 유닛(2806)에 통지하는 것과 같은 간접 통지도 가능하다. 다시 말하면, 채널 식별자 수신 유닛(2806)은, 여러가지 방법으로, 서비스 매니저(2804)가 채널의 식별자를 수신할 수 있는 시각을 알 수 있다. 서비스 매니저(2804) 상태를 고려하여 동작하는 채널 식별자 수신 유닛(2806)에 의해, 재생 유닛(2802b)은 입력 유닛(513)으로부터 사용자로부터의 입력을 받아들였을 때와 동일한 방식으로 수행되어야 한다. 이는 제1 실시예의 재생 유닛(1202b)보다 적은 실행 코드량 및 적은 공정수(manpower)로 재생 유닛(2802b)이 실현될 수 있도록 한다.
또, 채널 식별자 수신 유닛(2806)은 마지막에 받아들인 채널 식별자를 제2 기억 유닛(510)에 기억한다. 그리고, 서비스 매니저(2804)가 채널 식별자를 접수할 준비가 되는 경우, 제2 기억 유닛(510)에 기억하고 있는 채널 식별자를 서비스 매니저(2804)에 전달하여, 채널의 재생을 의뢰한다. 이에 따라, 제2 실시예에 기술된 Java 프로그램 "ZapperXlet"와 같은 Java 프로그램이 없어도, 채널내의 Java 프로그램을 기동할 수 있다.
덧붙여 제1 실시예의 경우와 같이, 서비스 매니저(2804)가 채널 식별자를 수신할 준비가 됨을 채널 식별자 수신 유닛(2806)이 아는 수단으로 제한되지 않는다. 서비스 매니저(2804)가 채널 식별자를 수신할 준비가 됨을 채널 식별자 수신 유닛(2806)은, 제1 실시예에 기재한 여러 가지 방법으로, 알 수 있다.
도 30은 채널 식별자 수신 유닛(2806)에 의해 수행되는 동작의 일례를 나타내는 흐름도이다.
도 30을 참조하면, 채널 식별자 수신 유닛(2806)은 기동하면, 내부의 변수 " 서비스 매니저 기동 플래그"에 "false"를 세트 한다(스텝 S2901). 다음으로, 채널 식별자 수신 유닛(2806)은, 채널 식별자를 받으면(스텝 S2902), 변수 "서비스 매니저 기동 플래그"의 값을 참조한다(스텝 S2903). 그 값이 "false"라면, 채널 식별자 수신 유닛(2806)은 취득한 채널 식별자에 대응하는 채널내에 포함된 비디오 및 오디오를 재생하고(스텝 S2904), 받아들인 채널 식별자를 제2 기억 유닛(510)에 기억한다(스텝 S2905). 값이 "true"라면, 받아들인 채널 식별자를 서비스 매니저(2804)에 전달하여, 채널의 재생을 의뢰한다(스텝 S2906).
그 후, 서비스 매니저(2804)의 기동 통지를 받으면(스텝 S2907), 내부의 변수 "서비스 매니저 기동 플래그"에 "true"를 세트 한다(스텝 S2908). 더욱이, 제2 기억 유닛(510)에 마지막으로 기억된 채널 식별자를 서비스 매니저(2804)에 전달하여, 채널의 재생을 의뢰한다(스텝 S2909).
이하의 응용은 제1, 제2 및 제3 실시예를 통해 가능하다.
ROM(512)내에 기억된 정보를 제2 기억 유닛(510)내에 기억함에 의해, ROM(512)를 삭제하는 것이 가능하다. 또, 제2 기억 유닛(510)은 복수의 서브 제2 기억 유닛으로 구성되고, 개개의 서브 제2 기억 유닛은 다른 정보를 기억하여, 정보는 세그먼트 단위로 기억될 수 있다. 예를 들면, 1개의 서브 제2 기억 유닛은 튜닝 정보만을 기억하고, 다른 서브 제2 기억 유닛은, OS(1201)의 라이브러리(1201b)를 기억하고, 또 다른 서브 제2 기억 유닛은 다운로드한 Java 프로그램을 기억할 수 있다.
본 발명은, 퍼스널 컴퓨터나 휴대 전화 등의 정보 기기이면, 적응 가능하다.
또, 본 발명은 위성이나 지상파에 의한 전달에서도 실시 가능하다. 이 경우, QAM 복조 유닛(501)은 적절한 복조 유닛으로 대체되어, TS 디코더에 직결하는 구성이 일반적이다. 이 경우, QPSK 복조 유닛(502), QPSK 변조 유닛(503), 및 POD(504)는 불필요하다. 헤드 엔드와의 통신을 위한 시스템은 모뎀 등과 같은 구성 요소를 추가하는 것으로 실현될 수 있다.
또, 상기 실시예에서 POD(504)는 착탈 가능한 형태로 하고 있지만, 내장하고 있어도 실시 가능하다. POD(504)가 내장되었을 경우, POD(504)의 CPU(706)가 제거되고, CPU(514)가 CPU(706)의 동작도 실시하는 일도 가능하다.
또한, POD Lib(1205e)에 등록되는 Java 프로그램은, 다운로드된 Java 프로그램 뿐만이 아니라, 미리 내장되고 있는 Java 프로그램에서도 실시 가능하다. 또, SD메모리 카드 등의 착탈 가능한 기억 매체를 삽입/배출하기 위한 슬롯 유닛을 제공하여, 이로부터 Java 프로그램을 로딩하는 것도 가능하다. 또, 네트워크에 접속하는 네트워크 유닛이 제공되어, 인터넷으로부터 Java 프로그램을 로딩하는 것도 가능하다.
본 발명의 일부 실시예만이 상술되었지만, 당업자라면 본 발명의 신규한 기술 및 장점으로부터 크게 벗어나지 않고도 실시예로부터 다양한 개조가 가능함을 알 수 있을 것이다. 따라서, 모든 그러한 개조는 본 발명의 범위내에 포함되는 것이다.
본 발명은, 프로그램을 실행하는 장치 등으로서 특히, 예를 들면, 디지털 TV 수신기와 같이 통신 경로 등을 통해 프로그램을 다운로드하고, 이 다운로드된 프로그램을 실행하는 프로그램 실행 장치로서 이용하기에 적합하다.

Claims (15)

  1. Java 프로그램을 실행하는 Java VM 및 Java 프로그램의 일부의 기능인 부분 기능을 갖는 내장 프로그램을 가지는 프로그램 실행 장치로서, 상기 프로그램 실행 장치는:
    상기 내장 프로그램과 상기 Java VM을 실행하는 실행 유닛; 및
    상기 내장 프로그램의 동작 결과 생성된 정보를 Java 프로그램에 제공하는 정보 제공 유닛
    을 포함하는 프로그램 실행 장치.
  2. 제1항에 있어서,
    상기 정보 제공 유닛은, 상기 Java 프로그램이 상기 정보 제공 유닛을 이용하기 전에, 상기 내장 프로그램의 구동 결과로서 생성된 상기 정보를 Java 프로그램에 제공하는 프로그램 실행 장치.
  3. 제1항에 있어서,
    상기 정보 제공 유닛은, 상기 Java 프로그램이 기동하기 전에, 상기 내장 프로그램의 구동 결과로서 생성된 상기 정보를 상기 Java 프로그램에 제공하는 프로그램 실행 장치.
  4. 제1항에 있어서,
    상기 정보 제공 유닛은, 상기 내장 프로그램이 종료되기 전에, 상기 내장 프로그램의 구동 결과로서 생성된 상기 정보를 상기 Java 프로그램에 제공하는 프로그램 실행 장치.
  5. 제1항에 있어서, 상기 내장 프로그램의 종료 명령을 지시하기 위하여 상기 Java 프로그램에 의해 이용되는 내장 프로그램 종료 지시 유닛을 더 포함하는 프로그램 실행 장치.
  6. 프로그램 실행 장치로서,
    Java 프로그램을 실행하는 Java VM;
    입력을 받아들이는 입력 유닛,
    방송을 수신하는 수신 유닛;
    상기 수신 유닛이 수신한 방송에 포함되는 채널을 재생하는 채널 재생 유닛;
    상기 입력 유닛으로부터의 지시에 근거해, 재생해야 할 채널을 상기 채널 재생 유닛에 지시하는 재생 프로그램;
    상기 재생 프로그램과 상기 Java VM을 실행하는 실행 유닛; 및
    상기 재생 프로그램이 마지막에 지시한 채널을 Java 프로그램에 제공하는 정보 제공 유닛
    을 포함하는 프로그램 실행 장치.
  7. 제6항에 있어서,
    상기 Java 프로그램을 기억하는 제1 기억 유닛; 및
    상기 재생 프로그램을 기억하는 제2 기억 유닛
    을 더 포함하는 프로그램 실행 장치.
  8. 제6항에 있어서,
    상기 채널 재생 유닛은 상기 채널내에 포함된 비디오 및 오디오를 재생하는, 프로그램 실행 장치.
  9. 제6항에 있어서, 채널내에 포함되는 비디오, 오디오 및 Java 프로그램을 재생하는 서비스 재생 유닛을 더 포함하는, 프로그램 실행 장치.
  10. 제9항에 있어서,
    상기 서비스 재생 유닛은 그 일부 또는 전부가 상기 Java VM에 의해서 실행되며, 상기 Java 프로그램으로부터 재생해야 할 서비스를 받아들이는, 프로그램 실행 장치.
  11. 제10항에 있어서,
    상기 서비스 재생 유닛은 상기 재생 유닛으로부터 재생될 서비스를 받아들이 며;
    상기 서비스 재생 유닛이 재생될 서비스를 받아들이지 않는 경우에는 상기 재생 유닛은 상기 채널 재생 유닛을 이용하는 채널을 재생하고, 상기 서비스 재생 유닛이 재생될 서비스를 받아들이는 경우에는 상기 서비스 재생 유닛을 이용하는 채널을 재생하는, 프로그램 실행 장치.
  12. 제9항에 있어서, 상기 서비스 재생 유닛이 재생해야할 서비스의 접수를 개시한 것을 통지하는 서비스 접수 개시 통지 유닛을 더 포함하는, 프로그램 실행 장치.
  13. 프로그램 실행 장치로서,
    Java 프로그램을 실행하는 Java VM;
    입력을 받아들이는 입력 유닛;
    방송을 수신하는 수신 유닛;
    상기 수신 유닛이 수신한 방송에 포함되는 채널에 포함되는 비디오, 오디오 및 데이터를 재생하는 채널 재생 유닛;
    상기 수신 유닛이 수신한 방송에 포함되는 채널에 포함되는 비디오, 오디오 및 데이터를 재생하는 서비스 재생 유닛;
    재생해야 할 채널의 식별자를 받아들여, 상기 서비스 재생 유닛이 채널의 재생이 가능한 때에는 상기 서비스 재생 유닛을 이용해 채널을 재생하고, 상기 서비 스 재생 유닛이 채널의 재생이 불가능한 때에는 상기 채널 재생 유닛을 이용해 채널을 재생하는 채널 식별자 접수 유닛;
    상기 입력 유닛으로부터의 지시에 근거해, 재생해야 할 채널의 식별자를 상기 채널 식별자 접수 유닛에 지시하는 재생 프로그램;
    상기 재생 프로그램과 상기 Java 프로그램을 실행하는 실행 유닛; 및
    상기 재생 프로그램이 상기 채널 식별자 접수 유닛에 마지막으로 지시한 채널을 상기 Java 프로그램에 제공하는 정보 제공 유닛을 포함하는 프로그램 실행 장치.
  14. 제13항에 있어서, 상기 채널 식별자 접수 유닛이 받아들인 채널의 상기 식별자를 기억하는 채널 식별자 기억 유닛을 더 포함하며,
    상기 채널 식별자 접수 유닛은 상기 서비스 재생 유닛이 채널의 재생이 가능하게 되었을 때에, 상기 채널 식별자 기억 유닛에 기억한 상기 채널의 상기 식별자를 상기 서비스 재생 유닛에 제공하고, 채널을 재생하는, 프로그램 실행 장치.
  15. 아래 유닛들로 기능할 수 있는 프로그램이 기억되는 컴퓨터 판독 가능한 기록 매체로서,
    Java 프로그램을 실행하는 Java VM;
    상기 Java 프로그램의 일부의 기능인 부분 기능을 갖는 내장 프로그램;
    상기 내장 프로그램 및 상기 Java VM을 실행하는 실행 유닛; 및
    상기 내장 프로그램이 동작 결과로서 생성된 정보를 상기 Java 프로그램에 제공하는 정보 제공 유닛
    을 포함하는 컴퓨터 판독 가능 기록 매체.
KR1020067002574A 2003-08-05 2004-08-04 프로그램 실행 장치 KR20060120583A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49232803P 2003-08-05 2003-08-05
US60/492,328 2003-08-05

Publications (1)

Publication Number Publication Date
KR20060120583A true KR20060120583A (ko) 2006-11-27

Family

ID=34193108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002574A KR20060120583A (ko) 2003-08-05 2004-08-04 프로그램 실행 장치

Country Status (8)

Country Link
US (1) US7089554B2 (ko)
EP (1) EP1652083A2 (ko)
JP (2) JP4243571B2 (ko)
KR (1) KR20060120583A (ko)
CN (1) CN1864139A (ko)
CA (1) CA2542759A1 (ko)
MX (1) MXPA06001049A (ko)
WO (1) WO2005017675A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912220B2 (en) * 2001-02-05 2011-03-22 Broadcom Corporation Packetization of non-MPEG stream data in systems using advanced multi-stream POD interface
KR100725386B1 (ko) * 2004-09-25 2007-06-07 삼성전자주식회사 가상 머신 어플리케이션을 실행하는 방법 및 그 방법을이용한 디지털 방송 수신기
CA2596583A1 (en) * 2005-02-01 2006-08-10 Matsushita Electric Industrial Co., Ltd. Java conditional access apparatus
US7649949B2 (en) * 2005-07-28 2010-01-19 Sony Corporation Multipurpose television module
US20070091919A1 (en) * 2005-10-24 2007-04-26 Sandoval Francis R Method and system of supporting enhanced television signaling
JP2007282067A (ja) * 2006-04-11 2007-10-25 Hitachi Ltd デジタル放送受信装置
JP5028904B2 (ja) * 2006-08-10 2012-09-19 ソニー株式会社 電子機器、および起動方法
US8004617B2 (en) * 2006-08-30 2011-08-23 Ati Technologies Ulc Stand-by mode transitioning
JP5197159B2 (ja) * 2007-06-07 2013-05-15 キヤノン株式会社 プログラム起動装置及びプログラム起動方法
US8634310B2 (en) * 2007-06-26 2014-01-21 Qualcomm Incorporated Methods and apparatus for improved program acquisition for use with MPEG-2 based systems
EP2174460B1 (en) * 2007-07-23 2010-12-01 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for use in a communications network
US20100287596A1 (en) * 2007-08-03 2010-11-11 Tsuneki Yasuho Receiving device
WO2009157127A1 (ja) * 2008-06-25 2009-12-30 パナソニック株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP5396821B2 (ja) * 2008-11-05 2014-01-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
KR20110010052A (ko) * 2009-07-14 2011-01-31 삼성전자주식회사 방송 네트워크 및 인터넷 네트워크에 접속 가능한 클라이언트의 어플리케이션을 수신하는 방법 및 장치
JP5512324B2 (ja) * 2010-02-17 2014-06-04 三菱電機株式会社 映像再生装置及び起動方法
JP5742245B2 (ja) * 2011-01-21 2015-07-01 村田機械株式会社 画像形成装置
US8874485B2 (en) * 2011-12-16 2014-10-28 Palo Alto Research Center Incorporated Privacy-preserving behavior targeting for digital coupons
CN104066484A (zh) 2012-01-24 2014-09-24 索尼电脑娱乐公司 信息处理设备和信息处理系统
JP6042025B2 (ja) * 2014-02-27 2016-12-14 三菱電機株式会社 ソフトウェア搭載機器及びソフトウェア更新方法
JP5748879B2 (ja) * 2014-03-26 2015-07-15 三菱電機株式会社 映像再生装置及び起動方法
JP6221973B2 (ja) * 2014-07-14 2017-11-01 株式会社デンソー 表示制御装置及び表示制御プログラム
RU2583197C1 (ru) * 2015-04-07 2016-05-10 Акционерное общество "Каменскволокно" (АО "Каменскволокно") Шестеренный дозирующий насос

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO960197A0 (en) * 1997-10-03 1997-10-30 Canon Information Systems Research Australia Pty Ltd Multi-media editing method and apparatus
US6539433B1 (en) * 1998-09-30 2003-03-25 Matsushita Electric Industrial Co., Ltd. System for distributing native program converted from Java bytecode to a specified home appliance
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6874145B1 (en) * 1999-07-13 2005-03-29 Sun Microsystems, Inc. Methods and apparatus for implementing an application lifecycle design for applications
DE60018067T2 (de) 1999-07-13 2005-07-28 Sun Microsystems, Inc., Palo Alto Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus
EP1146749A1 (en) * 2000-04-07 2001-10-17 Canal+ Technologies Société Anonyme Apparatus and method for testing applications
US20020112002A1 (en) * 2001-02-15 2002-08-15 Abato Michael R. System and process for creating a virtual stage and presenting enhanced content via the virtual stage
WO2002093400A1 (en) * 2001-05-11 2002-11-21 Wildseed, Ltd. Method and system for generating and sending a hot link associated with a user interface to a device
WO2003014867A2 (en) * 2001-08-03 2003-02-20 John Allen Ananian Personalized interactive digital catalog profiling
US20030110503A1 (en) * 2001-10-25 2003-06-12 Perkes Ronald M. System, method and computer program product for presenting media to a user in a media on demand framework
US20030135633A1 (en) * 2002-01-04 2003-07-17 International Business Machines Corporation Streaming and managing complex media content on Web servers
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device

Also Published As

Publication number Publication date
US7089554B2 (en) 2006-08-08
US20050034123A1 (en) 2005-02-10
JP4243571B2 (ja) 2009-03-25
EP1652083A2 (en) 2006-05-03
CN1864139A (zh) 2006-11-15
JP2009151750A (ja) 2009-07-09
WO2005017675A2 (en) 2005-02-24
WO2005017675A3 (en) 2005-11-03
JP2005056416A (ja) 2005-03-03
CA2542759A1 (en) 2005-02-24
MXPA06001049A (es) 2006-04-11

Similar Documents

Publication Publication Date Title
JP4243571B2 (ja) 放送受信装置
KR101193347B1 (ko) 다운로드 실행 장치
US9264757B2 (en) Service executing apparatus
US8850511B2 (en) Program replacing method
US20060280444A1 (en) Recording and reproduction apparatus and recording and reproduction method
US20080276300A1 (en) Program Execution Device
KR101036036B1 (ko) 프로그램 실행 장치
JP4149414B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP2009094702A (ja) 操作履歴を記憶する情報処理装置
JP2005073239A (ja) サービス実行装置
US20130191853A1 (en) Program execution method and program execution apparatus
JP4554659B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4149502B2 (ja) プログラム置き換え方法およびプログラム置き換え装置
JP4728307B2 (ja) プログラム置き換え方法およびプログラム置き換え装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid