程序执行装置的制作方法

文档序号:6496080阅读:159来源:国知局
专利名称:程序执行装置的制作方法
技术领域
本发明涉及一种下载并执行程序的程序执行装置,尤其涉及继承并执行已经被现有的程序执行的功能的下载程序。
背景技术
当今时代中,Java程序在多种信息装置上执行。被称为JavaVM的用于执行Java程序的虚拟机被结合到数字电视、个人计算机、移动电话等中,并执行Java程序。
在日本专利国家公开No.2003-504753中公开了一种在现有的数字电视中执行Java程序的功能。图1是示出执行Java程序的现有的数字电视的构造实例的图,其中实现了应用管理器以用于管理通过数字电视接收机加载的应用。数字电视接收机3002通过信号监视器3013接收广播数据流3021。信号监视器3013通过信号数据3022向应用管理器3012通知广播数据流3021中是否包含Java程序的应用。应用管理器3012使用信号数据3022加载并执行该应用。该应用被执行后,从显示管理器3011提供显示上下文3023形式的显示信息。进一步,显示管理器3011向电视监视器3001提供适当的显示信息。
应用管理器3012根据规则3014操作,将应用的状态转换为加载状态、暂停状态、活动状态、以及删除状态。该规则的例子包括“一次只启动一个应用”以及“一次只显示一个应用”。
但是,现有技术的问题是,从Java程序执行到用户能够真正接收其功能需要很长时间。这有一些原因。首先,为了执行Java程序,在这一执行之前必须启动JavaVM,但是通常,启动JavaVM需要时间。此外,直到Java程序下载完成也需要时间。在数字电视和信息装置等中,由于包括执行这样的处理的时间和等待时间,从决定启动Java程序直到其真正完全被启动需要时间。特别地,在通电时自动下载并执行Java程序的信息装置中,电源打开后将持续一段时间没有任何显示,这导致用户变得焦虑。在诸如其CPU处理速度不太高的数字电视这样的信息家用电器中,这一问题尤其显著。
通过将原先认为由Java程序执行的部分功能作为嵌入式程序实现,以及通过在Java程序被启动时执行该部分功能,本发明旨在为观众缩短启动处理所需的时间,并进一步在嵌入式程序和Java程序之间提供信息供应单元,其中该信息供应单元使得Java程序通过在Java程序启动完成后继承嵌入式程序的操作状态而以一致的方式运行。

发明内容
根据本发明,通过一种具有执行Java程序的JavaVM以及具有其部分功能是Java程序的功能的一部分的嵌入式程序的程序执行装置,嵌入式程序可以在Java程序被启动前执行其部分功能,该功能然后由Java程序继承,其中该程序执行装置包含执行单元,用于执行嵌入式程序和JavaVM;以及信息供应单元,用于向Java程序提供作为嵌入式程序的运行结果而生成的信息。因此,可以立刻向用户提供原先由Java程序提供的功能性。
此外,信息供应单元向Java程序提供在Java程序使用信息供应单元之前作为嵌入式程序的运行结果而生成的信息,利用上述构造,Java程序可以继承嵌入式程序所产生的状态。
此外,信息供应单元向Java程序提供在Java程序被启动之前作为嵌入式程序的运行结果而生成的信息,利用上述构造,Java程序可以继承嵌入式程序所产生的状态。
同样,信息供应单元向Java程序提供在嵌入式程序被终止之前作为嵌入式程序的运行结果而生成的信息,利用上述构造,Java程序可以继承嵌入式程序所产生的状态。
此外,程序执行装置还包含嵌入式程序终止指令单元,该嵌入式程序终止指令单元用于由Java程序使用来给出终止嵌入式程序的指令,利用上述构造,Java程序可以显式地终止嵌入式程序。因此,可以防止因具有相同或相似功能的Java程序和嵌入式程序并行运行而使用户困惑。
此外,通过配备一种程序执行装置,Java程序可以在被启动之前接管正在被再现的频道,其中该程序执行装置包含JavaVM,其执行Java程序;输入单元,用于接受输入;接收单元,用于接收广播;频道再现单元,用于再现包括在由接收单元接收的广播中的频道;再现程序,其基于来自输入单元的指令,向频道再现单元指示将要再现的频道;执行单元,用于执行再现程序和JavaVM;以及信息供应单元,用于向Java程序提供再现程序最后指示的频道。因此,可以立刻向用户提供原先由Java程序执行的频道的再现。
此外,程序执行装置中还包含第一存储单元,用于存储Java程序;以及第二存储单元,用于存储再现程序,利用上述构造,可以根据需要多次执行存储的Java程序和再现程序,或互相切换。
此外,频道再现单元再现频道中所包括的视频和音频,利用上述构造,可以向用户提供视频和音频的再现。
同样,程序执行装置还包含服务再现单元,该服务再现单元用于再现频道中所包括的视频、音频、以及Java程序,利用上述构造,可以向用户提供视频、音频、以及Java程序的再现。
此外,服务再现单元由JavaVM部分或全部执行,并从Java程序接受将要再现的服务,利用上述构造,Java程序可以再现该频道。
此外,服务再现单元从再现单元接受将要再现的服务,并且当服务再现单元没有接受将要再现的服务时,再现单元使用频道再现单元来再现频道,而当服务再现单元接受将要再现的服务时,使用服务再现单元来再现频道,利用上述构造,当因为在JavaVM被启动之前不能使用服务再现时,也可以再现视频和音频。
同样,程序执行装置还包含服务接受开始通知单元,该服务接受开始通知单元用于通知服务再现单元已经开始接受将要再现的服务,利用上述构造,服务再现单元可以开始再现包括Java程序的服务。
此外,通过配备一种程序执行装置,再现程序只需执行相同的处理,这允许更小的代码大小以及更容易的实现,其中该程序执行装置包含JavaVM,其执行Java程序;输入单元,用于接受输入;接收单元,用于接收广播;频道再现单元,用于再现包括在由接收单元接收的广播中包括的频道中的视频和音频;服务再现单元,用于再现包括在由接收单元接收的广播中包括的频道中的视频、音频以及数据;频道标识符接受单元,用于接收将要再现的频道的标识符,并在服务再现单元可以再现频道时使用服务再现单元来再现频道,而在服务再现单元不能再现频道时使用频道再现单元来再现频道;再现程序,其基于来自输入单元的指令,向频道标识符接受单元指示将要再现的频道的标识符;执行单元,用于执行再现程序和Java程序;以及信息供应单元,用于向Java程序提供由再现程序最后向频道标识符接受单元指示的频道。
此外,程序执行装置还包含频道标识符存储单元,该频道标识符存储单元用于存储由频道标识符接受单元接受的频道的标识符,其中当服务再现单元可以再现频道时,频道标识符接受单元向服务再现单元提供存储在频道标识符存储单元中的频道标识符,并再现频道,利用上述构造,就可以开始再现当JavaVM没有被启动以及服务再现单元不能使用时不能被再现的频道中所包括的Java程序。
同样,通过将本发明实现为计算机可读记录介质,可以提高便携性,其中该计算机可读记录介质存储可以起到下述单元的功能的程序JavaVM,其执行Java程序;嵌入式程序,其所具有的部分功能是Java程序的功能的一部分;执行单元,用于执行嵌入式程序和JavaVM;信息供应单元,用于向Java程序提供作为嵌入式程序的运行结果而生成的信息。


从下面结合说明本发明的具体实施例的附图进行的本发明的描述中,本发明的这些以及其它目的、优势和特性将会变得显而易见。在附图中图1是示出现有的数字电视的构造的图;图2是示出根据本发明的第一实施例的有线电视系统结构的图;图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示出根据本发明的第二存储单元510中所存储的信息的实例;图16示出根据本发明的第二存储单元510中所存储的信息的实例;图17是示出根据本发明的MPEG2标准中所规定的PAT的内容的示意图;
图18是示出根据本发明的MPEG2标准中所规定的PMT的内容的示意图;图19是示出根据本发明的DVB-MHP标准中所规定的AIT的内容的示意图;图20是示出根据本发明的将要以DSMCC格式传输的文件系统的示意图;图21是示出根据本发明的XAIT的内容的示意图;图22示出根据本发明的第二存储单元510中所存储的信息的实例;图23是示出根据本发明的多个子程序被启动的典型顺序的示意图;图24示出根据本发明的Java程序的结构实例;图25是示出根据本发明的再现单元1202b和Java程序被启动的典型顺序的示意图;图26是示出根据本发明的再现单元1202b的操作实例的流程图;图27是示出根据本发明的Java程序的一个操作实例的流程图;图28是示出根据本发明的Java程序的一个操作实例的流程图;图29是示出根据本发明的终端装置2800中所存储的程序的结构实例的图;以及图30是示出根据本发明的频道标识符接收单元2806的操作实例的流程图。
具体实施例方式
(第一实施例)参考附图给出了根据本发明的有线电视系统的一个实施例的说明。图2是示出组成有线系统的多个装置之间关系的方框图,其中有前端101,以及三个终端装置终端装置A111、终端装置B112、以及终端装置C113。在本实施例中,三个终端装置连到一个前端,但是如果任意数目的终端装置连到该前端也可以实施本发明。
前端101向多个终端装置发送诸如视频、音频和数据这样的广播信号,并接收从终端装置发送的数据。为了实现这一目的,划分出频带以用于前端101以及终端装置A111、终端装置B112、和终端装置C113之间的数据传输。图3是示出所划分的频带的实例的表。大致有两种频带带外(Out of Band,简写为OOB)以及带内(In-Band)。5~130MHz的频带分配给OOB,主要用于前端101以及终端装置A111、终端装置B112、和终端装置C113之间的数据交换。130MHz~864MHz的频带分配给带内,主要用于包括视频和音频的广播频道。QPSK被用于OOB,而QAM64被用于带内作为调制技术。由于调制技术是与本发明关系不大的公知技术,因此这里略去对调制技术的详细说明。图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示出使用带内频带的实例。150~156MHz和156~162MHz的频带分别分配给电视频道1和电视频道2,并且后续频率以6MHz的间隔分配给多个电视频道。310MHz和后续频率以1MHz的间隔分配给无线电频道。上述每个频道都可以用于或者模拟广播或者数字广播。在数字广播的情况下,数据以符合MPEG2规范的传输包格式被传输,在这种情况下,除了音频和视频数据以外,还可以传输各种数据广播系统所希望的数据。
前端101具有QPSK调制单元、QAM调制单元等等,以便向各个频率范围发送适当的广播信号。此外,前端101具有QPSK解调单元,以用于接收来自终端装置的数据。同样,假定前端101进一步具有与上述调制单元和解调单元有关的各种设备。但是,由于本发明主要涉及终端装置,所以这里略去对这些设备的详细说明。
终端装置A111、终端装置B112、和终端装置C113接收并再现从前端101发送的广播信号。此外,终端装置A111、终端装置B112、和终端装置C113向前端101发送每个终端装置独有的数据。在本实施例中,这三个终端装置具有相同的构造。
图6是示出每个终端装置的硬件构造的方框图。500是终端装置,其由QAM解调单元501、QPSK解调单元502、QPSK调制单元503、TS解码器505、音频解码器506、扬声器507、视频解码器508、显示器509、第二存储单元510、主存储单元511、ROM512、输入单元513、以及CPU 514组成。此外,POD 504可以附接到终端装置500或从终端装置500上分离。
图7示出超薄(thin-shaped)电视,它是终端装置500的外部视图实例。
601是超薄电视的金属壳,其中包含除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的实现独立于终端装置500并可以附接到终端装置500或从终端装置500上分离,图7中的POD卡605的情况也是如此。后面将详细说明POD 504。
606是POD 605插入的插槽。
参考图6,QAM解调单元501根据包括CPU 514所指定频率的调谐信息,对经过QAM调制的、从前端101发送的信号进行解调,并将结果传递到POD 504。
QPSK解调单元502根据包括CPU 514所指定频率的调谐信息,对经过QPSK调制的、从前端101发送的信号进行解调,并将结果传递到POD 504。
QPSK调制单元503根据包括CPU 514所指定频率的解调信息,对从POD 504传递的信号进行QPSK解调,并将结果发送到前端101。
如图7所示,POD 504可以从终端装置500的主体上分离。终端装置500的主体和POD 504之间的连接接口的定义在OpenCable(TM)HOST-POD接口规范(OC-SP-HOSTPOD-IF-I12-030210)及由其所参考的规范中给出。因此,这里略去详细的描述,并且只对本发明所涉及的组成元件进行说明。
图8是示出POD 504的内部构造的方框图。POD 504由第一解扰器单元701、第二解扰器单元702、加扰器单元703、主存储单元704、第二存储单元705、以及CPU 706组成。
第一解扰器单元701在来自CPU 706的指令控制下从终端装置500的QAM解调单元501接收加扰信号,并对这种信号进行解扰。然后,第一解扰器单元701将解扰信号发送到终端装置500的TS解码器505。CPU 706根据需要提供诸如密钥这样的解扰器所需的信息。更具体地,前端101广播多个付费频道,当用户购买观看这些付费频道的权利时,第一解扰器单元701从CPU 706接收诸如密钥这样的所需信息并进行解扰。因此,用户可以观看这些付费频道。如果没有提供诸如密钥这样的所需信息,第一解扰器单元701不进行解扰而直接将所接收的信号传递到TS解码器505。
第二解扰器单元702在来自CPU 706的指令控制下从终端装置500的QPSK解调单元502接收加扰信号,并对这种信号进行解扰。然后,第二解扰器单元702将解扰数据传递到CPU 706。
加扰器单元703在来自CPU 706的指令控制下,对从CPU 706接收的数据进行加绕,并将结果发送到终端装置500的QPSK调制单元503。
主存储单元704目的是在CPU 706进行处理时暂时存储数据,其实际组成元件是诸如RAM这样的主存储器。
第二存储单元705目的是存储CPU 706要执行的程序以及存储即使断电时也决不会删除的数据,其实际组成元件是诸如ROM这样的第二存储器。
CPU 706执行存储在第二存储单元705中的程序。该程序由多个子程序组成。图9示出第二存储单元705中存储的程序的实例。在图9中,程序800由多个子程序组成,包括主程序801、初始化子程序802、网络子程序803、再现子程序804、以及PPV子程序805。
这里,PPV是按次付费观看(Pay Per View)的缩写,是指允许用户在可支付的基础上观看诸如一部电影这样的某一节目。当用户输入他/她的个人识别号(personal identification number)时,该用户购买了观看该节目的权利这一事实就被通知给前端101,并且该节目被解扰。因此,该用户可以观看这样的节目。观看该节目需要用户日后为该次购买进行支付。
主程序801是通电时CPU 706首先启动的子程序,它控制其它子程序。
初始化子程序802是通电时被主程序801启动,它进行与终端装置500的信息交换等以执行初始化处理。这一初始化处理在OpenCable(TM)HOST-POD接口规范(OC-SP-HOSTPOD-IF-I12-030210)及由其所参考的规范中详细定义。此外,初始化子程序802还进行这些规范中未定义的初始化处理。这里,介绍这样的初始化处理的一部分。当通电时,初始化子程序802通过终端装置500的CPU 514向QPSK解调单元502通知存储在第二存储单元705中的第一频率。QPSK解调单元502使用所提供的第一频率进行调谐,并将结果信号发送到第二解扰器单元702。此外,初始化子程序802向第二解扰器单元702提供解扰信息,诸如存储在第二存储单元705中的第一密钥。结果,第二解扰器单元702执行解扰并将结果传递到执行初始化子程序802的CPU 702。因此,初始化子程序802可以接收该信息。在本实施例中,初始化子程序802通过网络子程序803接收信息。后面会给出详细描述。
此外,初始化子程序802通过终端装置500的CPU 514向QPSK调制单元503通知存储在第二存储单元705中的第二频率。初始化子程序802向加扰器单元703提供存储在第二存储单元705中的加扰信息。当初始化子程序802通过网络子程序803,向加扰器单元703提供所需发送的信息时,加扰器单元703使用所提供的加扰信息对该数据进行加扰,并将加扰数据提供到QPSK调制单元503。QPSK调制单元503对所接收到的加扰信息进行调制,并将调制信息发送到前端101。
结果,初始化子程序802可以通过终端装置500、第二解扰器单元702、加扰器单元703、以及网络子程序803来进行与前端101的双向通信。
网络子程序803由诸如主程序801和初始化子程序802这样的多个子程序使用,它是目的为执行与前端101的双向通信的子程序。更具体地,网络子程序803运行时,好像使用该网络子程序803的其他子程序正在按照TCP/IP与前端101进行双向通信一样。由于TCP/IP是规定当多个终端之间交换信息时所使用的协议的公知技术,所以这里略去对它的详细说明。当网络子程序803在通电时被初始化子程序802启动时,网络子程序803通过终端装置500向前端101通知MAC地址(介质访问控制的缩写),以便请求获得IP地址,其中该MAC地址是用于标识POD 504的标识符并且预先存储在第二存储单元705中。前端101通过终端装置500向POD 504通知IP地址,并且网络子程序803在主存储单元704中存储这一IP地址。从那时起,前端101和POD 504使用这一IP地址作为POD 504的标识符互相通信。
再现子程序804向第一解扰器单元701提供诸如存储在第二存储单元705中的第二密钥这样的解扰信息以及诸如由终端装置500提供的第三密钥这样的解扰信息,以便允许执行解扰。此外,再现子程序804通过网络子程序803,接收指示第一解扰器单元701中所输入的信号是PPV频道的信息。一旦接收到该信号是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通过网络子程序803向PPV子程序805通知解扰所需的解扰信息,诸如第四密钥。PPV子程序805向第一解扰器单元701提供所接受的诸如第四密钥这样的解扰信息,然后第一解扰器单元701对输入信号进行解扰。
参考图6,TS解码器505对从POD 504接受的信号执行过滤,并将必需的数据传递到音频解码器506、视频解码器508、以及CPU514。这里,从POD 504所发送的信号是MPEG2传输流。关于MPEG2传输流的详细描述在MPEG规范ISO/IEC 138181-1中给出,因此在本实施例中不详细说明。MPEG2传输流由多个固定长度的包组成,并且为每个包分配一个包ID。图10是示出包结构的图。900是一个包,它包含固定长度188个字节。前四个字节是报头901,存储用于标识该包的信息,而其他184个字节是有效载荷902,存储希望被携带的信息。903示出报头901的细分。包ID被包括在从第1算起的第12~第24比特的13个比特中。图11是说明要传输的多个包串的示意图。包1001在其报头中包含包ID“1”并且在其有效载荷中包括视频A的第一信息。包1002在其报头中包含包ID“2”并且在其有效载荷中包括音频A的第一信息。包1003在其报头中包含包ID“3”并且在其有效载荷中包括视频B的第一信息。
包1004在其报头中包含包ID“1”并且在其有效载荷中包括视频A的第二信息,该第二信息是包1001的后续信息。类似地,包1005、1026、以及1027携带其他包的后续数据。通过上述方式连接具有相同包ID的多个包的有效载荷的内容,可以顺序地再现视频和音频。
参考图11。当CPU 514向TS解码器505指示包ID“1”以及“视频解码器508”作为输出目的地时,TS解码器505在从POD 504接收的MPEG2传输流中提取包ID为“1”的包,并将其传递到视频解码器508。因此,在图11中,只有视频数据被传递到视频解码器508。同时,当CPU 514向TS解码器505指示包ID“2”以及“音频解码器506”时,TS解码器505在从POD 504接收的MPEG2传输流中提取包ID为“2”的包,并将其传递到音频解码器506。在图11中,只有音频数据被传递到视频解码器508。
根据包ID只提取必需的包的这一处理对应于TS解码器505执行的过滤。TS解码器505可以在来自CPU 514的指令控制下同时执行多于一个的过滤处理。
参考图6,音频解码器506连接嵌入在由TS解码器505所提供的MPEG2传输流中的多个包中的音频数据,对连接的数据执行数字到模拟的转换,并将结果输出到扬声器507。
扬声器507将由音频解码器506提供的信号作为音频输出。
视频解码器508连接嵌入在由TS解码器505所提供的MPEG2传输流中的多个包中的视频数据,对连接的数据进行数字到模拟的转换,并将结果输出到显示器509。
显示器509的实际组成元件是CRT或液晶等,它输出由视频解码器508提供的视频信号并显示CPU 514指定的消息,等等。
第二存储单元510的实际组成元件是闪速存储器、硬盘等,它存储并删除CPU 514指定的数据和程序。所存储的数据和程序被CPU514引用。即使当终端装置500断电时,所存储的数据和程序仍被保存。
主存储单元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中的程序。根据来自这样的要执行的程序的指令,CPU 514控制QAM解调单元501、QPSK解调单元502、QAM调制单元503、POD 504、TS解码器505、显示器509、第二存储单元510、主存储单元511、以及ROM 512。
图13是示出存储在ROM 512中并被CPU 514执行的程序的结构实例的图。
程序1200由多个子程序组成。更具体地,程序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作为子程序。同时,库1202b向这些子程序提供控制终端装置500的组成元件所需的多个功能。
在本实施例中,库1201b包括调谐器1201b1、条件接入1201b2、以及AV再现1202b3,作为其功能的实例。调谐器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再现1202b3从另一个子程序或Java库1205的JMF 1205a接收音频包ID和视频包ID,并向TS解码器505提供一组所接收的音频包ID并将音频解码器506作为输出目的地,以及一组所接收的视频包ID并将视频解码器508作为输出目的地。结果,TS解码器505基于所提供的包ID和输出目的地执行过滤,并再现视频和音频。EPG1202由用于向用户显示节目列表以及用于接受来自用户的输入的节目显示单元1202a、和用于选择频道的再现单元1202b组成。这里,EPG是电子节目指南(Electric Program Guide)的缩写。EPG 1202在终端装置500通电时由内核1201a启动。在启动的EPG 1202中,节目显示单元1202a和再现单元1202a同时被启动。被启动后,节目显示单元1202a等待用户通过终端装置500的输入单元513的输入。这里,在输入单元513采用图12中所说明的面板形式的情况下,当用户按下输入单元513上的EPG按钮1107时,CPU 514被告知这一EPG按钮的标识符。EPG 1202的节目显示单元1202a是CPU 514上运行的子程序,它接受这一标识符,并在显示器509上显示节目信息。图14(1)和(2)示出显示在显示器509上的节目表的实例。参看图14(1)。节目信息以网格图形显示在显示器509上。列1301描述时间信息。列1302描述频道名称“频道1”以及在对应于列1301中所描述的各个时间的时间段期间将要广播的节目。图上示出在“频道1”上从9:00到10:30广播节目“新闻9”,而从10:30到12:00广播“电影AAA”。列1303描述频道名称“频道2”以及在对应于列1301中所描述的各个时间的时间段期间将要广播的节目,如列1302的情况那样。从9:00到11:00广播节目“电影BBB”,而从11:00到12:00广播“新闻11”。1330是光标。在按下面板1100上的左移光标1103或右移光标1104时光标1330移动。在图14(1)中所说明的状态下按下右移光标1104时,光标1330向右移动,如图14(2)中所示。同样,在图14(2)中所说明的状态下按下左移光标1103时,光标1330向左移动,如图14(1)中所示。
在图14(1)中所示的状态下按下面板1100上的OK按钮1105时,节目显示单元1202a向再现单元1202b通知“频道1”的标识符。同样,在图14(2)中所示的状态下按下面板1100上的OK按钮1105时,节目显示单元1202a向再现单元1202b通知“频道2”的标识符。
此外,节目显示单元1202a通过POD 504定期将来自前端101的将要显示的节目信息存储到主存储单元511中。通常,从前端获得节目信息需要时间。但是,通过在按下输入单元513的EPG按钮1107时显示预存储在主存储单元511中的节目信息,可以快速显示节目表。
再现单元1202b使用所接收的频道标识符再现频道。换句话说,它再现组成该频道的视频和音频。频道标识符和频道之间的关系由第二存储单元510预存储作为频道信息。图15示出存储在第二存储单元510中的频道信息的实例。频道信息以表格形式存储。列1401描述频道标识符。列1402描述频道名称。列1403描述调谐信息。这里,调谐信息由将要提供给QAM解调单元501的值表示,诸如频率、传输率、以及编码率。列1404描述节目号。节目号是标识MPEG2标准所定义的PMT所使用的号码。关于PMT的描述在后面给出。1411~1414的每行指示一组标识符、频道名称、和每个频道的调谐信息。行1411描述包括“1”作为标识符、“频道1”作为频道名称、频率“150MHz”作为调谐信息、以及“101”作为节目号的一组。再现单元1202b直接向服务管理器传递所接收的频道的标识符,以便再现该频道。
此外,当用户在再现进行过程中按下面板1100上的上移光标1101和下移光标1102时,再现单元1202b通过CPU 514从输入单元513接收关于用户这些按下操作的通知,并将正在进行再现的频道切换到另一个频道。当按下上移光标1101时,再现其频道标识符的值比当前再现的频道的频道标识符的值小1的频道,而当按下下移光标1102时,再现其频道标识符的值比当前再现的频道的频道标识符的值大1的频道。首先,再现单元1202b在第二存储单元512中存储当前再现的频道的标识符。图16中(1)、(2)、和(3)示出存储在第二存储单元512中的频道标识符实例。图16中(1)示出存储了标识符“3”,并且通过参考图15示出频道名称为“TV 3”的频道正在被再现。当用户在图16中(1)中所说明的状态下按下上移光标1101时,再现单元1202b参考图15中所示的频道信息,并将频道名称为“频道2”的频道的标识符“2”传递给服务管理器,以便新再现频道名称为“频道2”的频道,在表中该频道的标识符的值比当前再现的频道的标识符的值小1。同时,再现单元1202b将存储在第二存储单元512中的标识符重写为频道标识符“2”。图16中(2)示出这一重写的频道标识符。同样,当用户在图16中(1)中所说明的状态下按下下移光标1102时,再现单元1202b参考图15中所示的频道信息,并将频道名称为“TV日本”的频道的标识符“4”传递给服务管理器,以便新再现频道名称为“TV日本”的频道,在表中该频道的标识符的值比当前再现的频道的标识符的值大1。同时,再现单元1202b将存储在第二存储单元512中的标识符重写为频道标识符“4”。图16中(3)示出这一重写的频道标识符。由于频道标识符被存储在第二存储单元512中,因此即使终端装置500关闭,频道标识符仍然被存储。
此外,在终端装置500通电时被启动后,再现单元1202b读出存储在第二存储单元512中的频道标识符,然后将这一频道标识符传递到服务管理器。因此,终端装置500可以在通电时开始再现其上次操作时最后再现的频道。
JavaVM 1203是顺序分析并执行用Java(TM)语言所写的程序的Java虚拟机。用Java语言所写的程序被编译成不依赖于硬件的被称为字节码的中间代码。Java虚拟机是执行这样的字节码的解释器。一些Java虚拟机将字节码翻译成可以被CPU 514解释的可执行形式并将结果传递到CPU 514,该CPU 514执行该结果。JavaVM 1203被启动,同时内核1201a指定将要执行的Java程序。在本实施例中,内核1201a指定服务管理器1204作为将要执行的Java程序。在包括“Java语言规范”(ISBN 0-201-63451-1)在内的许多书中都给出了对Java语言的详细说明。因此,这里略去对其的详细描述。同样,在包括“Java虚拟机规范”(ISBN 0-201-63451-X)在内的许多书中都给出了对JavaVM自身的操作的详细说明。因此,这里略去对其的详细描述。
服务管理器1204是用Java语言所写的Java程序,它由JavaVM1203顺序执行。服务管理器1204可以通过JNI(Java本地接口,JavaNative Interface)调用另一个不是用Java语言所写的子程序并被另一个不是用Java语言所写的子程序调用。在包括“Java本地接口”在内的许多书中都给出了对JNI的详细说明。因此,这里略去对其的详细描述。
服务管理器1204通过JNI从再现单元1202b接受频道标识符。
首先,服务管理器1204将频道标识符传递到Java库1205中的调谐器1205c以便请求调谐。调谐器1205c参考存储在第二存储单元510中的频道信息以获得调谐信息。假设服务管理器1204向调谐器1205c传递频道标识符“2”,调谐器1205c参考图15中所示行1412,获得对应于该频道的调谐信息“156MHz”。调谐器1205c通过OS 1201中的库1201b的调谐器1201b1将调谐信息传递到QAM解调单元501。QAM解调单元501根据所提供的解调信息对从前端101发送的信号进行解调,并将结果信号传递到POD 504。
然后,服务管理器1204请求Java库1205内的CA 1205b执行解扰。CA 1205d通过OS 1201中的库1201b的条件接入1201b2向POD504提供解扰所需的信息。在所提供的这样的信息的基础上,POD 504对QAM解调单元501所提供的信号进行解扰,并将结果信号传递到TS解码器505。
然后,服务管理器1204向Java库1205内的JMF 1205a提供该频道标识符,以便请求再现视频和音频。
首先,JMF 1205a从PAT和PTM获得用于指定将要再现的视频和音频的包ID。PAT和PTM是由MPEG-2标准定义的表,示出了包括在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用于获得PAT。1611~1613的每行是频道的节目号及其对应的包ID这样的一对。这里,定义了三个频道。行1611定义了节目号“101”和包ID“501”的一对。假设提供给JMF 1205a的频道标识符是“2”,JMF 1205a参考图15中的列1412,从而获得对应于这一频道标识符的节目号“102”,然后参考图17中所示PAT中的列1612,从而获得对应于节目号“102”的包ID“502”。PMT是节目映射表(Program MapTable)的缩写,被携带于具有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~1713的每行是包ID和被传送的信息的类型这样的一对,被称为基本流。行1711是流类型“音频”和包ID“5011”的一对,它指示音频数据被存储在包ID为“5011”的包的有效载荷中。JMF 1205a从PMT获得将要再现的视频和音频的包ID。参考图18,JMF 1205a从行1711获得音频包ID“5011”,从行1712获得视频包ID“5012”。
然后,JMF 1205a将所获得的音频包ID和视频包ID传递到OS1201中的库1201b的AV再现1201b3。作为对此的响应,AV再现1201b3向TS解码器505提供所获得的音频包ID和音频解码器506作为输出目的地、以及所获得的视频包ID和视频解码器508作为输出目的地这样的多对。TS解码器505基于这样提供的包ID和输出目地执行过滤。这里,包ID为“5011”的包被传递到音频解码器506,而包ID为“5012”的包被传递到视频解码器508。音频解码器506对所提供的包执行数字到模拟的转换,以便通过扬声器507再现音频。视频解码器508对所提供的包执行数字到模拟的转换,以便在显示器509上显示视频。
最后,服务管理器1204向Java库1205中的AM 1205b提供频道标识符,以便请求数据广播再现。这里,数据广播再现是指提取MPEG2传输流中所包括的Java程序并使得JavaVM 1203执行该程序。作为将Java程序嵌入到MPEG2传输流中的技术,使用一种被称为DSMCC的方法,在MPEG规范ISO/IEC 138181-6中描述了这种方法。这里略去对DSMCC的详细说明。DSMCC规范定义了一种在MPEG2传输流内的包中,对计算机所使用的由目录和文件组成的文件系统进行编码的方法。关于将要执行的Java程序的信息以AIT的形式被携带于MPEG2传输流中的包中。AIT是应用信息表(Application Information Table)的缩写,其定义在DVB-MHP标准(正式地被称为ETSI TS 101 812 DVB-MHP规范V1.0.2)的第十章中给出。
首先,为了获得AIT,AM 1205b如在JMF 1205a的情况一样获得PAT和PMT,以便获得存储AIT的包的包ID。假设“2”是所提供的频道标识符并且传送图17中所示的PAT和图18中所示的PMT,则AM 1205b根据JMF 1205a所遵循的相同的流程获得图18中所示的PMT。然后,AM 1205b从PMT中提取流类型是“数据”并且具有“AIT”作为附加信息的基本流的包ID。如图18所示,行1713中的基本流对应于这样的基本流,因此AM 1205b从行1713获得包ID“5013”。
AM 1205b通过OS 1201的库1201b向TS解码器505提供AIT的包ID和CPU 514作为输出目的地。然后,TS解码器505基于这样提供的包ID执行过滤,并将结果传递到CPU 514。因此,AM 1205b可以收集AIT的包ID。图19是示意性地示出所收集的AIT信息的实例的表。列1801描述Java程序的标识符。列1802描述用于控制Java程序的控制信息。控制信息包括“自动启动(autostart)”、“存在(present)”、和“杀死(kill)”。“自动启动”是指终端装置500立即自动执行程序。“存在”是指程序不被自动执行。“杀掉”是指程序将被终止。列1803描述用于提取包括DSMCC格式的Java程序的包ID的DSMCC标识符。列1804描述Java程序的程序名。1811和1812的每行是关于Java程序的一组信息。行1811中定义的Java程序是一组标识符“301”、控制信息“自动启动”、DSMCC标识符“1”、和程序名“a/TopXlet”。行1812中定义的Java程序是一组标识符“302”、控制信息“存在”、DSMCC标识符“1”、和程序名“b/GameXlet”。这里,这两个Java程序具有相同的DSMCC标识符。这指示这两个Java程序包括在根据相同的DSMCC方法编码的文件系统中。这里,只为每个Java程序指定了四条信息,但是在实际中会指定更多条信息。详细信息请参考DVB-MHP规范。
AM 1205b从AIT中找到“自动启动”的Java程序,并提取对应的DSMCC标识符和Java程序名。参考图19,AM 1205b提取行1811中的Java程序,并获得DSMCC标识符“1”和Java程序名“a/TopXlet”。
然后,AM 1205b使用从AIT所获得的DSMCC标识符,从PMT获得以DSMCC格式存储的Java程序的包的包ID。更具体地,AM1205b从PMT获得包括在流类型是“数据”并且附加信息中的DSMCC标识符相匹配的基本流中的包ID。
这里,假设这一DSMCC标识符是“1”并且PMT是图18中所示的PMT,行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方法从所收集的包重建文件系统,并将重建的文件系统存储到主存储单元511。在下文中,从MPEG2传输流中的包提取诸如文件系统这样的数据以及将所提取的数据存储到诸如主存储单元511这样的存储单元中的处理被称为下载。
图20示出所下载的文件系统的实例。图中,圆圈表示目录而方框表示文件,其中1901是根目录,1902是目录“a”,1903是目录“b”,1904是文件“TopXlet.java”,而1905是文件“GameXlet.java”。
随后,AM 1205b将下载到主存储单元511中的文件系统中的将要执行的Java程序传递到JavaVM 1203。这里,假设将要执行的Java程序名是“a/TopXlet”,在上述Java程序名后附加“.class”而产生的文件“a/TopXlet.class”是将要执行的文件。“/”是目录和文件名之间的分隔符,如图20所示,文件1904是将要执行的Java程序。然后,AM 1205b将文件1904传递到JavaVM 1203。
JavaVM 1203执行这样接收的Java程序。
一旦接收到另一个频道的标识符,服务管理器1204就通过Java库1205中所包括的每个库,终止视频和音频的再现,以及终止执行通过相同的Java库1205中所包括的每个库执行的Java程序,然后基于新接收到的频道标识符执行视频和音频的再现以及执行Java程序。
此外,服务管理器1204还可以从不仅在再现单元1202b上执行、而且在JavaVM 1203上执行的Java程序接收频道标识符。更具体地,它提供了用于接收频道标识符的Java语言类及其方法。一旦接收到频道标识符,服务管理器1204就通过Java库1205中所包括的每个库,终止视频和音频的再现,以及终止执行通过相同的Java库1205中所包括的每个库执行的Java程序,然后基于新接收到的频道标识符执行视频和音频的再现以及执行Java程序。
此外,服务管理器1204还下载/存储并执行Java程序。
此外,在启动时完成POD的初始化处理后,服务管理器1204通过Java库1205中所包括的POD库1205e进行与前端101的双向通信。这一双向通信可以由POD库1205e通过使用OS 1201的库1201b、以及通过经由POD 504使用QPSK解调单元502和QPSK调制单元503实现。
通过上述通信,服务管理器1204从前端101接收关于终端装置500应当存储在第二存储单元510中的Java程序的信息。这样的信息被称为XAIT信息。XAIT信息以任意形式在前端101和POD 504之间传输。只要包括如XAIT的所需信息,本发明的实现可以不管传输格式。
图21说明了示意性地示出从前端101所获得的XAIT信息的实例的表。列2001描述Java程序的标识符。列2002描述用于控制Java程序的控制信息。控制信息包括“自动选择”和“存在”。“自动选择”是指当终端装置500通电时程序自动执行,而“存在”是指程序将不自动执行。列2003描述用于提取包含DSMCC格式的Java程序的包ID的DSMCC标识符。列2004描述Java程序的程序名。列2005描述Java程序的优先级。行2011到2012的每行是关于各个Java程序的一组信息。行2011中定义的Java程序是一组标识符“701”、控制信息“自动选择”、DSMCC标识符“1”、以及程序名“a/PPV1Xlet”。这里,只为各个Java程序指定了五条信息,但是当定义更多条信息时,本发明也可以实现。
一旦接收到XAIT信息,服务管理器1204按照与根据AIT信息下载Java程序的流程相同的流程,将来自MPEG2传输流的文件系统存储到主存储单元511中。随后,服务管理器1204将这样存储的文件系统复制到第二存储单元510。注意还可以不通过主存储单元511而直接将文件系统下载到第二存储单元510中。然后,服务管理器1204在第二存储单元510中存储将XAIT信息与所下载的文件系统的存储位置相关联的结果。图22示出存储在第二存储单元510中的相互关联的XAIT信息和所下载的文件系统的实例。图22中,与图21中的元素一样的元素是彼此相同的,因此略去对这些元素的说明。列2101存储所下载的文件系统的存储位置。在图22中,这样的存储位置用箭头指示。2110是所下载的文件系统,其中包括顶层目录2111、目录“a”2112、目录“b”2113、文件“ZapperXlet.class”2114、以及文件“PPV2Xlet.class”2115。
这里,XAIT信息在存储Java程序之后存储,但是XAIT信息还可以在Java程序之前存储。
当终端装置500通电时,OS 1201向JavaVM 1203指示服务管理器1204。然后,服务管理器1204在被JavaVM 1203启动后,首先参考存储在第二存储单元510中的XAIT信息。这里,服务管理器1204参考每个Java程序的控制信息,并将“自动选择”的程序传递到JavaVM 1203,以便启动这样的程序。参考图22,行2011中所定义的Java程序“ZapperXlet”在这里被启动。
Java库1205是存储在ROM 512中的多个Java库的集合。在本实施例中,Java库1205包括JMF 1205a、AM 1205b、调谐器1205c、CA 1205d、POD库1205e、再现库1205f、IO 1205g、AWT 1205h等等。
由于已经在上文中给出了关于JMF 1205a、AM 1205b、调谐器1205c、CA 1205d、POD库1205e的描述,所以略去对其的描述。
再现库1205f提供了Java语言类和方法(在下文中描述为JavaAPI),用于向Java程序传递存储在第二存储单元510中的当前再现的频道的标识符。使用这一Java API使得Java程序可以知道当前再现的是哪个频道。
IO 1205g向Java程序提供用于允许Java程序向第二存储单元510中写入数据的Java API,或用于允许Java程序从第二存储单元510中读取这样的写入数据的Java API。使用这一API使得Java程序可以向第二存储单元510中存储任意数据。由于即使终端装置500的电源关闭,这样存储的数据也不会丢失,因此可以在终端装置500通电后再次读取这样的数据。
AWT 1205h提供用于允许Java程序执行绘制以及从输入单元513接收按键输入通知的Java API。更具体地,其等价物是java.awt包、java.awt.event包、以及“Java类库第二版,第二卷”(ISBN0-201-31003-1)中所定义的其他java.awt包。这里,略去详细描述。
然后,给出在终端装置500通电时由再现单元1202b执行的特殊处理以及Java程序“ZapperXlet”的操作,这些是本发明的主要部分。
图23是示出在终端装置500通电时启动主要子程序的顺序的示意图。在这一图中,横轴表示经过的时间。箭头2201的左边缘表示内核1201a被启动并且它在这一启动后持续运行。同样,各个箭头2202、2203、以及2204的左边缘表示再现单元1202b、JavaVM 1203、以及服务管理器1204分别被启动并且它们在这一启动后持续运行。
2211是终端装置500通电的时间。内核1201a在此时启动。内核1201a在完成自初始化处理和其他处理后,在2212所指示的时间通过启动EPG 1202来启动再现单元1202b,并在同一时间启动JavaVM1203。JavaVM 1203在完成自初始化处理和其他处理后,在2213所指示的时间启动服务管理器1204。在完成自初始化处理和其他处理后,服务管理器1204可以从2214所指示的时间开始接收将要再现的频道的标识符。
从图23明显看出,即使希望再现的频道的标识符被传递到服务管理器1204,服务管理器1204也不能在时间2212和时间2214之间接收任何标识符。因此,该频道不能被再现。
因此,从时间2212到时间2214,再现单元1202b独立地再现频道,而没有接收来自服务管理器的任何指令。
再现单元1202b可以直接访问库1201b,这使得再现单元1202b可以具有与组成Java库1205的调谐器1205c、CA 1205d以及JMF1205c的功能等价的功能。首先,一旦被启动,再现单元1202b读出存储在第二存储单元510中的频道标识符。这一频道标识符是断电前最后再现的频道的标识符。作为替换,第二存储单元510可以存储一个指定的通电时将要再现的频道的标识符,再现单元1202b可以读取这样的标识符。
然后,再现单元1202b参考存储在第二存储单元510中的频道信息来获得调谐信息。假设现在希望再现频道标识符是“2”的频道,参考图1 5中所示的行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向TS解码器505提供一组所接收的音频包ID和音频解码器506作为输出目的地,以及一组所接收的视频包ID和视频解码器508作为输出目的地。TS解码器505基于所提供的包ID和输出目的地执行过滤。音频解码器506对从TS解码器505提供的包执行数字到模拟的转换,以便通过扬声器507再现音频。同时,视频解码器508对从TS解码器505提供的包执行数字到模拟的转换,以便在显示器509上显示视频。
在时间2214后,再现单元1202b与通常情况下一样向服务管理器1204传递频道标识符。再现单元1202b根据来自服务管理器1204的通知,可以知道服务管理器何时能够接收频道标识符。更具体地,服务管理器1204调用再现单元1202b内部所准备的函数。作为替换,再现单元1204可以为服务管理器1204注册一个回调函数,服务管理器1204可以调用这样注册的回调函数。或者,服务管理器1204可以间接给出通知,诸如通过向JavaVM 1203提供通知,然后JavaVM 1203向再现单元1202b给出通知。换句话说,再现单元1202b可以通过多种方法知道服务管理器1204何时能够接收频道标识符。结果,在时间2214之前,只有视频和音频可以通过再现单元1202b再现,而在时间2214之后,除了再现视频和音频,频道中所包括的Java程序也可以被服务管理器1204执行。通过由终端装置500利用上述由再现单元1202b在启动时所执行的特殊处理,可以在服务管理器1204被启动之前再现视频和音频。结果,对观看者来说,可以缩短通电后用户的等待时间。换句话说,可以缩短尽管通电但屏幕上没有显示的时间。
这里,再现单元1202b还可以在时间2212和时间2214之间,通过输入单元513接收来自用户的输入。在这种情况下,如上所述,再现单元1202b独立地再现视频和音频,同时将包括正在再现的视频和音频的频道的标识符存储到第二存储单元510中。
图24是示出Java程序“ZapperXlet”的构造实例的图。Java程序“ZapperXlet”由四个子程序组成频道存储子程序2301、启动子程序2302、频道再现子程序2303、以及输入子程序2304。
Java程序“ZapperXlet”是存储在图22中所示的目录“a”2112中的Java程序,它是存储在第二存储单元510中并在服务管理器1204被启动时自动启动的程序。
频道存储子程序2301通过Java库1205的IO 1205g存储由Java程序“ZapperXlet”所管理的频道标识符。此外,它从第二存储单元510读出所存储的频道标识符。这里,第二存储单元510中Java程序“ZapperXlet”所使用的区域与再现单元1202b所使用的区域不同。换句话说,第二存储单元510中存储两种频道标识符将由再现单元1202b存储的频道标识符和将由Java程序“ZapperXlet”存储的频道标识符。
启动子程序2302是当Java程序“ZapperXlet”被启动时首先被启动的子程序。首先,启动子程序2302调用再现库1205f,并获得当前再现的频道的频道标识符。然后,它将所获得的频道标识符传递到频道再现子程序2303。同时,启动子程序2302通过频道存储子程序2301将所获得的频道标识符的值存储到第二存储单元510中。但是,当频道的再现没有进行并且再现库1205f没有返回频道标识符时,启动子程序2302通过频道存储子程序2301从第二存储单元510读取所存储的频道标识符,并将其传递到频道再现子程序2303。此外,当第二存储单元510在这里没有存储任何频道标识符时,启动子程序2302向频道再现子程序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的操作。
如上所述,通过提供再现库1205f,Java程序可以在启动程序“ZapperXlet”之前,获得正在被再现单元1202b再现的频道的标识符。因此,当Java程序具有再现单元1202b的功能性时,它就可以继承并再现再现单元1202b所再现的频道。这使得这样的Java程序可以继承频道切换功能,而不会使用户感到迷惑。
图25示出再现库1205f所提供的效果的实例,该图是示出在终端装置500的启动时间,再现单元1202b和Java程序“ZapperXlet”被启动的顺序的示意图。在这一图中,横轴表示经过的时间。箭头2401的左边缘表示再现单元1202b被启动并且在这一启动后持续运行。类似地,箭头2402的左边缘表示Java程序“ZapperXlet”被启动并且在这一启动后持续运行。2405表示在各个时间点实际再现的频道的标识符。
2405表示终端装置500在各个时间点再现的频道的标识符。其中示出频道标识符为“3”的频道在时间2411和时间2412之间再现,频道标识符为“2”的频道在时间2412和时间2414之间再现,而频道标识符为“1”的频道在时间2414之后再现。
时间2414是在终端装置500通电后再现单元1202b被启动的时间。这里,假设再现单元1202b再现存储在第二存储单元510中的频道标识符为“3”的频道。时间2412指示用户向输入单元513输入切换频道的指令,并且再现单元1202b将正在再现的频道从频道标识符为“3”的频道切换到频道标识符为“2”的频道。时间2413是Java程序“ZapperXlet”被启动的时间。这里,Java程序“ZapperXlet”通过再现库1205f知道正在再现频道标识符为“2”的频道,并不作任何操作。时间2414指示用户向输入单元513输入切换频道的指令,并且Java程序“ZapperXlet”将正在再现的频道从频道标识符为“2”的频道切换到频道标识符为“1”的频道。
这里,为了比较并说明本实施例所提供的效果,考虑再现库1205f不存在的情况。参考图25,再现单元1202b在时间2411再现频道标识符为“3”的频道,在时间2412接收用户的指令并再现频道标识符为“2”的频道。Java程序“ZapperXlet”在时间2413使用频道存储子程序2301读出其存储在第二存储单元510中的频道标识符,并再现具有这一频道标识符的频道。如果这一频道的标识符是“4”,那么立即中止再现用户所选择的频道标识符为“2”的频道,并开始再现频道标识符为“4”的频道。这使得用户感到惊讶并需要用户再次选择她/他希望观看的频道标识符为“2”的频道。
这里,考虑另一种再现库1205f不存在的情况。这里,假设Java程序“ZapperXlet”在启动时间不再现任何频道。此外,在终端装置500是一个期望Java程序“ZapperXlet”再现频道的终端而因此再现单元1202b不再现任何频道、或者再现单元1202b不存在的情况下,在通电后不自动再现频道。由于用户总是要在通电后指定频道,所以这对她/他很麻烦。此外,这难以判断终端是否正常工作。如上所述,通过采用再现库1205f,通过使得再现单元1202b在服务管理器1204被启动前执行应当由Java程序“ZapperXlet”进行的部分操作,可以在终端装置500通电后不久向用户呈现包括在频道中的视频和音频。
图26是示出再现单元1202b在启动时间所进行的操作实例的流程图。
参考图26,当被启动后,再现单元1202b将内部变量“服务管理器启动标志”设置为“假”(步骤S2501)。然后,再现单元1202b通过频道存储子程序从第二存储单元510提取频道标识符(步骤S2502)。参考变量“服务管理器启动标志”的值(步骤S2503),当该值是“假”时,再现单元1202b再现包括在对应于所获得的频道标识符的频道中的视频和音频(步骤S2504),反之当该值是“真”时,再现单元1202b将所获得的频道标识符传递到服务管理器1204以请求再现该频道(步骤S2505)。
随后,一旦接收到服务管理器1204已经启动的通知(步骤S2506),再现单元1202b将内部变量“服务管理器启动标志”设置为“真”(步骤S2507)。或者,一旦接收到来自用户的输入(步骤S2508),再现单元1202b获得或者计算对应于这一输入的频道标识符(步骤S2509),通过移动控制到步骤S2503把要再现的频道切换到另一个频道。
图27是示出Java程序“ZapperXlet”操作实例的流程图。
参考图27,Java程序“ZapperXlet”从再现库1205f获得频道的再现状态(步骤S2601)。如果没有正在再现的频道(步骤S2602),Java程序“ZapperXlet”获得存储在第二存储单元510中的频道标识符(步骤S2603)。如果不能获得频道标识符(步骤S2604),Java程序“ZapperXlet”使用预定的默认值作为频道标识符(步骤S2605)。然后,Java程序“ZapperXlet”将该频道标识符传递到服务管理器以请求再现该频道(步骤S2606)。
注意在本实施例中,再现单元1202b只再现视频和音频,但是它还可以再现字幕、图文电视(teletext)、隐藏字幕(closed caption)、及其它。为了达到这一目的,终端装置500应当配备有子再现模块,用于再现字幕、图文电视、以及隐藏字幕,并且再现单元1202b应当为这些子再现模块传递所需的信息。
此外,本实施例展示了一个实例,其中在再现视频和音频过程中,再现单元1202b在Java程序“ZapperXlet”之前执行了该Java程序“ZapperXlet”的部分功能,但本实施例也可以应用于另一个操作对象。例如,在再现动画的过程中,本实施例还可以应用于这样的情况,即存储在终端装置中的子程序只显示动画的第一帧,而Java程序继承并显示后续的帧。在这种情况下,在终端装置中具有一种机制,用于向Java程序通知存储在终端装置中的子程序所执行的显示的状态。
此外,在本实施例中,当Java程序通过AWT 1205h从输入单元513接收用户的按键输入时,再现单元1202b不能从输入单元513接收用户的任何按键输入。为了实现这一目的,Java库1205可以配备有再现单元终止库,用于显式地终止再现单元1202b的操作。通过调用这一再现单元终止库,Java程序可以终止再现单元1202b的操作,以便终止该再现单元1202b所执行的频道再现。作为替换,如果再现单元终止库被设计为不向再现单元1202b通知来自输入单元513的用户输入,则也可以达到相同的效果。
这一再现单元终止库不仅可以用于再现单元1202b,还可以用于当下载的Java程序希望终止预存储的子程序的功能并用该Java程序的功能代替该功能时。更具体地,Java程序可以向再现单元终止库指示它希望终止的功能。
(第二实施例)本实施例在Java程序“ZapperXlet”的操作上与第一实施例不同。
图28是示出Java程序“ZapperXlet”的操作实例的流程图。步骤中分配了与第一实施例中相同的附图标记的操作与第一实施例相同,因此略去对其的描述。与第一实施例不同的是,在步骤S2602中,当正在再现频道时(图中为是)处理移动到步骤S2606,并且将这一正在再现的频道的标识符传递到服务管理器1204以请求再现。
结果,当将要再现的视频和音频相同时,可以执行频道中所定义的Java程序。
在本实施例中,由于尽管频道相同,但是Java程序“ZapperXlet”仍然在步骤S2606中调用服务管理器1204,所以视频和音频的再现终止一次,然后在此之后再次再现相同的视频和音频。这意味着视频和音频可能被中断。为了避免这种情况,服务管理器1204参考再现库1205f,当正在再现的频道的标识符与从Java程序接收的频道标识符相同时,可以不必再次再现视频和音频。因此,可以防止视频和音频被中断。作为替换,如果不是服务管理器1204而是JMF 1205a参考再现库1205f,并且当正在再现的频道的标识符与从服务管理器1204接收的频道标识符相同时,可以不必再次再现视频和音频,也可以实现相同的效果。换句话说,如果服务管理器1204一接收到频道标识符,就使用再现视频和音频所需的子程序参考再现库1205f,并且当正在再现的频道的标识符与服务管理器1204所接收的频道标识符相同时,不再次再现视频和音频,也可以实现相同的效果。
(第三实施例)在第一实施例中,再现单元1202b在直到服务管理器1204准备好接收频道标识符的处理和在准备好接收频道标识符之后的处理之间进行了分叉。
通过提供频道标识符接收单元消除这种情况。
图29是示出在实施例中的CPU 514将要执行的程序2800的结构的图。
程序2800由多个子程序组成。更具体地,它由OS 1201、EPG2802、JavaVM 1203、服务管理器2804、Java库1205、以及频道标识符接收单元2806组成。
下面,分配了与第一实施例中的组成元件相同的附图标记的组成元件起到相同的作用,因此略去对其的描述。
EPG 2802由用于向用户显示节目列表以及用于接收来自用户的输入的节目显示单元1202a、和用于选择频道的再现单元2802b组成。当再现频道时,再现单元2802b向频道标识符接收单元2806传递频道标识符,以请求再现该频道。再现单元2802b的操作不考虑服务管理器1204的状态,或者在单独更新PAT和PMT后不再现视频和音频。
服务管理器2804与第一实施例中的服务管理器1204的不同之处在于,服务管理器2804不是从再现单元1202b接收频道标识符,而是从频道标识符接收单元2806接收频道标识符。其他操作是相同的。
频道标识符接收单元2806从再现单元2802b接收频道标识符。
在服务管理器2804不能接收任何频道标识符的状态期间,频道标识符接收单元2806可以等效于调谐器1205c、CA 1205d、以及JMF1205c工作。频道标识符接收单元2806参考存储在第二存储单元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将所获得的音频包ID和视频包ID传递到OS 1201中库1201b的AV再现1201b3。作为对其的响应,AV再现1201b3向TS解码器505提供一组所接收的音频包ID和音频解码器506作为输出目的地,以及一组所接收的视频包ID和视频解码器508作为输出目的地。TS解码器505基于所提供的包ID和输出目的地执行过滤。音频解码器506对从TS解码器505提供的包执行数字到模拟的转换,以便通过扬声器507再现音频。同时,视频解码器508对从TS解码器505提供的包执行数字到模拟的转换,以便在显示器509上显示视频。
在服务管理器2804准备好接收频道标识符后,频道标识符接收单元2806如同正常情况下一样向服务管理器2804传递频道标识符。频道标识符接收单元2806根据来自服务管理器2804的通知,可以知道服务管理器2804何时能够接收频道标识符。更具体地,服务管理器2804调用频道标识符接收单元2806内部所准备的函数。作为替换,频道标识符接收单元2806可以为服务管理器2804注册一个回调函数,服务管理器2804可以调用这样注册的回调函数。或者,服务管理器2804可以间接给出通知,诸如通过向JavaVM 1203提供通知,然后JavaVM 1203向频道标识符接收单元2806给出通知。换句话说,频道标识符接收单元2806可以通过多种方法知道服务管理器1204何时能够接收频道标识符。通过频道标识符接收单元2806考虑服务管理器2804的状态而操作,当从输入单元513接收用户的输入时,再现单元2802b总是必须以相同的方式执行操作。这使得可以通过使用比第一实施例中的再现单元1202b更少的执行代码以及更少的人力来实现再现单元2802b。
此外,频道标识符接收单元2806将最近接受的频道标识符存储到第二存储单元510中。然后,当服务管理器2804准备好接受频道标识符时,频道标识符接收单元2806将存储在第二存储单元510中的频道标识符传递到服务管理器2804,以请求再现该频道。因此,即使在没有诸如第二实施例中描述的Java程序“ZapperXlet”这样的Java程序时,也可以启动包括在该频道中的Java程序。
注意如同在第一实施例的情况下一样,根据本发明的本实施例不受频道标识符接收单元2806通过何种方法知道服务管理器2804准备好接收频道标识符的限制。频道标识符接收单元2806可以通过第一实施例中所描述的多种方法知道服务管理器2804准备好接收频道标识符。
图30是示出频道标识符接收单元2806执行的操作实例的流程图。
参考图30,当被启动时,频道标识符接收单元2806将内部变量“服务管理器启动标志”设置为“假”(步骤S2901)。然后,一接收到频道标识符(步骤S2902),频道标识符接收单元2806就参考变量“服务管理器启动标志”的值(步骤S2903)。当该值是“假”时,频道标识符接收单元2806再现包括在对应于其所获得的频道标识符的频道中的视频和音频(步骤S2904),并将所接受的频道标识符存储到第二存储单元510(步骤S2905)。同时,当该值是“真”时,频道标识符接收单元2806将所接受的频道标识符传递到服务管理器2804以请求再现该频道(步骤S2906)。
随后,一接收到服务管理器2804已经启动的通知(步骤S2907),频道标识符接收单元2806将内部变量“服务管理器启动标志”设置为“真”(步骤S2908)。此外,频道标识符接收单元2806向服务管理器2804传递最后存储到第二存储单元510中的频道标识符,以便请求再现该频道(步骤S2909)。
注意下面所描述的应用对第一、第二、和第三实施例都是可行的。
可以通过将存储在ROM 512中的信息存储到第二存储单元510中来略去ROM 512。此外,第二存储单元510还可以由多个子第二存储单元组成,并且每个子第二存储单元存储不同的信息,以便以段的形式存储信息。例如,一个子第二存储单元可以只存储调谐信息,另一个子第二存储单元可以存储OS 1201的库1201b,而另一个不同的子第二存储单元可以存储下载的Java程序。
本发明可以应用到多种装置,假设这些装置是诸如个人计算机和移动电话这样的信息装置。
同样,本发明可以应用到人造卫星和地面传送。在这种情况下的通用构造是其中的QAM解调单元501被适当的解调单元替代,然后该解调单元直接连到TS解码器。在这种情况下,不需要QPSK解调单元502、QPSK调制单元503、以及POD 504。用于与前端通信的系统通过增加诸如调制解调器这样组成元件来实现。
此外,POD 504在上述实施例中是可分离的,但是如果POD 504是嵌入式的,则也可以实现本发明。如果POD 504是嵌入式的,则可以去掉POD 504的CPU 706,并且CPU 514执行CPU 706的操作。
此外,如果不仅下载的Java程序而且预存储的Java程序都要在POD库1205e中注册,则也可以实现本发明。此外,还可以提供插槽单元以用于插入/弹出诸如SD存储卡这样的可分离的存储介质,以便加载Java程序。同样,可以提供连到网络的网络单元,以便从因特网加载Java程序。
尽管上面只详细描述了本发明的一些典型实施例,本领域技术人员将容易地意识到可以在典型实施例中进行许多修改,而在本质上不背离本发明的新颖启示和优点。因此,所有这些修改都被试图包括在本发明的范围内。
工业实用性本发明适用于作为用于执行程序的装置等使用,尤其是作为通过通信路径等下载程序并执行这样的下载程序的程序执行装置等,诸如数字电视接收机。
权利要求
1.一种程序执行装置,具有用于执行Java程序的Java VM并具有嵌入式程序,其中所述嵌入式程序具有的部分功能是所述Java程序的功能的一部分,所述程序执行装置包含执行单元,用于执行所述嵌入式程序和所述Java VM;以及信息供应单元,用于向所述Java程序提供作为所述嵌入式程序的运行结果而生成的信息。
2.根据权利要求1所述的程序执行装置,其中所述信息供应单元向所述Java程序提供在所述Java程序使用所述信息供应单元之前作为所述嵌入式程序的运行结果而生成的所述信息。
3.根据权利要求1所述的程序执行装置,其中所述信息供应单元向所述Java程序提供在所述Java程序被启动之前作为所述嵌入式程序的运行结果而生成的所述信息。
4.根据权利要求1所述的程序执行装置,其中所述信息供应单元向所述Java程序提供在所述嵌入式程序被终止之前作为所述嵌入式程序的运行结果而生成的所述信息。
5.根据权利要求1所述的程序执行装置,还包含嵌入式程序终止指令单元,所述嵌入式程序终止指令单元用于由所述Java程序使用来给出终止所述嵌入式程序的指令。
6.一种程序执行装置,包含Java VM,其执行Java程序;输入单元,用于接受输入;接收单元,用于接收广播;频道再现单元,用于再现包括在由所述接收单元接收的所述广播中的频道;再现程序,其基于来自所述输入单元的指令,向所述频道再现单元指示将要再现的频道;执行单元,用于执行所述再现程序和所述Java VM;以及信息供应单元,用于向所述Java程序提供由所述再现程序最后指示的频道。
7.根据权利要求6所述的程序执行装置,还包含第一存储单元,用于存储所述Java程序;以及第二存储单元,用于存储所述再现程序。
8.根据权利要求6所述的程序执行装置,其中所述频道再现单元再现包括在所述频道中的视频和音频。
9.根据权利要求6所述的程序执行装置,还包含服务再现单元,所述服务再现单元用于再现包括在所述频道中的视频、音频、和Java程序。
10.根据权利要求9所述的程序执行装置,其中所述服务再现单元部分或全部地由所述Java VM执行,并从所述Java程序接受将要再现的服务。
11.根据权利要求10所述的程序执行装置,其中所述服务再现单元从所述再现单元接受将要再现的所述服务,以及当所述服务再现单元没有接受将要再现的所述服务时,所述再现单元使用所述频道再现单元来再现所述频道,而当所述服务再现单元接受将要再现的所述服务时,使用所述服务再现单元来再现所述频道。
12.根据权利要求9所述的程序执行装置,还包含服务接受开始通知单元,所述服务接受开始通知单元用于通知所述服务复制单元已经开始接受将要再现的服务。
13.一种程序执行装置,包含Java VM,其执行Java程序;输入单元,用于接受输入;接收单元,用于接收广播;频道再现单元,用于再现包括在由所述接收单元接收的所述广播中的频道包括的视频和音频;服务再现单元,用于再现包括在由所述接收单元接收的所述广播中的所述频道包括的视频、音频和数据;频道标识符接受单元,用于接收将要再现的频道的标识符,并且当所述服务再现单元可以再现频道时使用所述服务再现单元来再现所述频道,而当所述服务再现单元不能再现频道时使用所述频道再现单元来再现所述频道;再现程序,其基于来自所述输入单元的指令,向所述频道标识符接受单元指示将要再现的所述频道的所述标识符;执行单元,用于执行所述再现程序和所述Java程序;以及信息供应单元,用于向所述Java程序提供由所述再现程序最后向所述频道标识符接受单元指示的所述频道。
14.根据权利要求13所述的程序执行装置,还包含频道标识符存储单元,所述频道标识符存储单元用于存储由所述频道标识符接受单元接受的所述频道的所述标识符,其中当所述服务再现单元可以再现频道时,所述频道标识符接受单元向所述服务再现单元提供存储在所述频道标识符存储单元中的所述频道的所述标识符,并再现所述频道。
15.一种计算机可读的记录介质,其中存储了如以下单元一样工作的程序Java VM,其执行Java程序;嵌入式程序,其具有的部分功能是所述Java程序的功能的一部分;执行单元,用于执行所述嵌入式程序和所述Java VM;以及信息供应单元,用于向所述Java程序提供作为所述嵌入式程序的运行结果而生成的信息。
全文摘要
嵌入式程序1200包含Java程序的部分功能。嵌入式程序1200在Java程序的启动处理过程中执行该部分功能。这样,显得缩短了启动时间。进一步,本发明向Java程序提供关于嵌入式程序1200的操作状态的信息,由此使得在Java程序启动处理完成时能够连续执行Java程序。
文档编号G06F9/48GK1864139SQ200480029008
公开日2006年11月15日 申请日期2004年8月4日 优先权日2003年8月5日
发明者盐见隆一, 渡边茂晃, 今西芳典 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1