專利名稱:程序執(zhí)行裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種下載并執(zhí)行程序的程序執(zhí)行裝置,尤其涉及繼承并執(zhí)行已經(jīng)被現(xiàn)有的程序執(zhí)行的功能的下載程序。
背景技術(shù):
當今時代中,Java程序在多種信息裝置上執(zhí)行。被稱為JavaVM的用于執(zhí)行Java程序的虛擬機被結(jié)合到數(shù)字電視、個人計算機、移動電話等中,并執(zhí)行Java程序。
在日本專利國家公開No.2003-504753中公開了一種在現(xiàn)有的數(shù)字電視中執(zhí)行Java程序的功能。圖1是示出執(zhí)行Java程序的現(xiàn)有的數(shù)字電視的構(gòu)造實例的圖,其中實現(xiàn)了應(yīng)用管理器以用于管理通過數(shù)字電視接收機加載的應(yīng)用。數(shù)字電視接收機3002通過信號監(jiān)視器3013接收廣播數(shù)據(jù)流3021。信號監(jiān)視器3013通過信號數(shù)據(jù)3022向應(yīng)用管理器3012通知廣播數(shù)據(jù)流3021中是否包含Java程序的應(yīng)用。應(yīng)用管理器3012使用信號數(shù)據(jù)3022加載并執(zhí)行該應(yīng)用。該應(yīng)用被執(zhí)行后,從顯示管理器3011提供顯示上下文3023形式的顯示信息。進一步,顯示管理器3011向電視監(jiān)視器3001提供適當?shù)娘@示信息。
應(yīng)用管理器3012根據(jù)規(guī)則3014操作,將應(yīng)用的狀態(tài)轉(zhuǎn)換為加載狀態(tài)、暫停狀態(tài)、活動狀態(tài)、以及刪除狀態(tài)。該規(guī)則的例子包括“一次只啟動一個應(yīng)用”以及“一次只顯示一個應(yīng)用”。
但是,現(xiàn)有技術(shù)的問題是,從Java程序執(zhí)行到用戶能夠真正接收其功能需要很長時間。這有一些原因。首先,為了執(zhí)行Java程序,在這一執(zhí)行之前必須啟動JavaVM,但是通常,啟動JavaVM需要時間。此外,直到Java程序下載完成也需要時間。在數(shù)字電視和信息裝置等中,由于包括執(zhí)行這樣的處理的時間和等待時間,從決定啟動Java程序直到其真正完全被啟動需要時間。特別地,在通電時自動下載并執(zhí)行Java程序的信息裝置中,電源打開后將持續(xù)一段時間沒有任何顯示,這導(dǎo)致用戶變得焦慮。在諸如其CPU處理速度不太高的數(shù)字電視這樣的信息家用電器中,這一問題尤其顯著。
通過將原先認為由Java程序執(zhí)行的部分功能作為嵌入式程序?qū)崿F(xiàn),以及通過在Java程序被啟動時執(zhí)行該部分功能,本發(fā)明旨在為觀眾縮短啟動處理所需的時間,并進一步在嵌入式程序和Java程序之間提供信息供應(yīng)單元,其中該信息供應(yīng)單元使得Java程序通過在Java程序啟動完成后繼承嵌入式程序的操作狀態(tài)而以一致的方式運行。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,通過一種具有執(zhí)行Java程序的JavaVM以及具有其部分功能是Java程序的功能的一部分的嵌入式程序的程序執(zhí)行裝置,嵌入式程序可以在Java程序被啟動前執(zhí)行其部分功能,該功能然后由Java程序繼承,其中該程序執(zhí)行裝置包含執(zhí)行單元,用于執(zhí)行嵌入式程序和JavaVM;以及信息供應(yīng)單元,用于向Java程序提供作為嵌入式程序的運行結(jié)果而生成的信息。因此,可以立刻向用戶提供原先由Java程序提供的功能性。
此外,信息供應(yīng)單元向Java程序提供在Java程序使用信息供應(yīng)單元之前作為嵌入式程序的運行結(jié)果而生成的信息,利用上述構(gòu)造,Java程序可以繼承嵌入式程序所產(chǎn)生的狀態(tài)。
此外,信息供應(yīng)單元向Java程序提供在Java程序被啟動之前作為嵌入式程序的運行結(jié)果而生成的信息,利用上述構(gòu)造,Java程序可以繼承嵌入式程序所產(chǎn)生的狀態(tài)。
同樣,信息供應(yīng)單元向Java程序提供在嵌入式程序被終止之前作為嵌入式程序的運行結(jié)果而生成的信息,利用上述構(gòu)造,Java程序可以繼承嵌入式程序所產(chǎn)生的狀態(tài)。
此外,程序執(zhí)行裝置還包含嵌入式程序終止指令單元,該嵌入式程序終止指令單元用于由Java程序使用來給出終止嵌入式程序的指令,利用上述構(gòu)造,Java程序可以顯式地終止嵌入式程序。因此,可以防止因具有相同或相似功能的Java程序和嵌入式程序并行運行而使用戶困惑。
此外,通過配備一種程序執(zhí)行裝置,Java程序可以在被啟動之前接管正在被再現(xiàn)的頻道,其中該程序執(zhí)行裝置包含JavaVM,其執(zhí)行Java程序;輸入單元,用于接受輸入;接收單元,用于接收廣播;頻道再現(xiàn)單元,用于再現(xiàn)包括在由接收單元接收的廣播中的頻道;再現(xiàn)程序,其基于來自輸入單元的指令,向頻道再現(xiàn)單元指示將要再現(xiàn)的頻道;執(zhí)行單元,用于執(zhí)行再現(xiàn)程序和JavaVM;以及信息供應(yīng)單元,用于向Java程序提供再現(xiàn)程序最后指示的頻道。因此,可以立刻向用戶提供原先由Java程序執(zhí)行的頻道的再現(xiàn)。
此外,程序執(zhí)行裝置中還包含第一存儲單元,用于存儲Java程序;以及第二存儲單元,用于存儲再現(xiàn)程序,利用上述構(gòu)造,可以根據(jù)需要多次執(zhí)行存儲的Java程序和再現(xiàn)程序,或互相切換。
此外,頻道再現(xiàn)單元再現(xiàn)頻道中所包括的視頻和音頻,利用上述構(gòu)造,可以向用戶提供視頻和音頻的再現(xiàn)。
同樣,程序執(zhí)行裝置還包含服務(wù)再現(xiàn)單元,該服務(wù)再現(xiàn)單元用于再現(xiàn)頻道中所包括的視頻、音頻、以及Java程序,利用上述構(gòu)造,可以向用戶提供視頻、音頻、以及Java程序的再現(xiàn)。
此外,服務(wù)再現(xiàn)單元由JavaVM部分或全部執(zhí)行,并從Java程序接受將要再現(xiàn)的服務(wù),利用上述構(gòu)造,Java程序可以再現(xiàn)該頻道。
此外,服務(wù)再現(xiàn)單元從再現(xiàn)單元接受將要再現(xiàn)的服務(wù),并且當服務(wù)再現(xiàn)單元沒有接受將要再現(xiàn)的服務(wù)時,再現(xiàn)單元使用頻道再現(xiàn)單元來再現(xiàn)頻道,而當服務(wù)再現(xiàn)單元接受將要再現(xiàn)的服務(wù)時,使用服務(wù)再現(xiàn)單元來再現(xiàn)頻道,利用上述構(gòu)造,當因為在JavaVM被啟動之前不能使用服務(wù)再現(xiàn)時,也可以再現(xiàn)視頻和音頻。
同樣,程序執(zhí)行裝置還包含服務(wù)接受開始通知單元,該服務(wù)接受開始通知單元用于通知服務(wù)再現(xiàn)單元已經(jīng)開始接受將要再現(xiàn)的服務(wù),利用上述構(gòu)造,服務(wù)再現(xiàn)單元可以開始再現(xiàn)包括Java程序的服務(wù)。
此外,通過配備一種程序執(zhí)行裝置,再現(xiàn)程序只需執(zhí)行相同的處理,這允許更小的代碼大小以及更容易的實現(xiàn),其中該程序執(zhí)行裝置包含JavaVM,其執(zhí)行Java程序;輸入單元,用于接受輸入;接收單元,用于接收廣播;頻道再現(xiàn)單元,用于再現(xiàn)包括在由接收單元接收的廣播中包括的頻道中的視頻和音頻;服務(wù)再現(xiàn)單元,用于再現(xiàn)包括在由接收單元接收的廣播中包括的頻道中的視頻、音頻以及數(shù)據(jù);頻道標識符接受單元,用于接收將要再現(xiàn)的頻道的標識符,并在服務(wù)再現(xiàn)單元可以再現(xiàn)頻道時使用服務(wù)再現(xiàn)單元來再現(xiàn)頻道,而在服務(wù)再現(xiàn)單元不能再現(xiàn)頻道時使用頻道再現(xiàn)單元來再現(xiàn)頻道;再現(xiàn)程序,其基于來自輸入單元的指令,向頻道標識符接受單元指示將要再現(xiàn)的頻道的標識符;執(zhí)行單元,用于執(zhí)行再現(xiàn)程序和Java程序;以及信息供應(yīng)單元,用于向Java程序提供由再現(xiàn)程序最后向頻道標識符接受單元指示的頻道。
此外,程序執(zhí)行裝置還包含頻道標識符存儲單元,該頻道標識符存儲單元用于存儲由頻道標識符接受單元接受的頻道的標識符,其中當服務(wù)再現(xiàn)單元可以再現(xiàn)頻道時,頻道標識符接受單元向服務(wù)再現(xiàn)單元提供存儲在頻道標識符存儲單元中的頻道標識符,并再現(xiàn)頻道,利用上述構(gòu)造,就可以開始再現(xiàn)當JavaVM沒有被啟動以及服務(wù)再現(xiàn)單元不能使用時不能被再現(xiàn)的頻道中所包括的Java程序。
同樣,通過將本發(fā)明實現(xiàn)為計算機可讀記錄介質(zhì),可以提高便攜性,其中該計算機可讀記錄介質(zhì)存儲可以起到下述單元的功能的程序JavaVM,其執(zhí)行Java程序;嵌入式程序,其所具有的部分功能是Java程序的功能的一部分;執(zhí)行單元,用于執(zhí)行嵌入式程序和JavaVM;信息供應(yīng)單元,用于向Java程序提供作為嵌入式程序的運行結(jié)果而生成的信息。
從下面結(jié)合說明本發(fā)明的具體實施例的附圖進行的本發(fā)明的描述中,本發(fā)明的這些以及其它目的、優(yōu)勢和特性將會變得顯而易見。在附圖中圖1是示出現(xiàn)有的數(shù)字電視的構(gòu)造的圖;圖2是示出根據(jù)本發(fā)明的第一實施例的有線電視系統(tǒng)結(jié)構(gòu)的圖;圖3示出在根據(jù)本發(fā)明的有線電視系統(tǒng)中使用在前端和終端裝置之間通信所要使用的頻帶的一個實例;圖4示出在根據(jù)本發(fā)明的有線電視系統(tǒng)中使用在前端和終端裝置之間通信所要使用的頻帶的一個實例;圖5示出在根據(jù)本發(fā)明的有線電視系統(tǒng)中使用在前端和終端裝置之間通信所要使用的頻帶的一個實例;圖6是示出根據(jù)本發(fā)明的有線電視系統(tǒng)中的終端裝置的構(gòu)造的圖;圖7示出根據(jù)本發(fā)明的有線電視系統(tǒng)中的終端裝置的外部視圖實例;圖8是示出根據(jù)本發(fā)明的POD 504的硬件構(gòu)造的圖;圖9是示出根據(jù)本發(fā)明的POD 504中所存儲的程序的結(jié)構(gòu)的圖;圖10是示出MPEG標準中所定義的包的結(jié)構(gòu)的圖;圖11示出MPEG2傳輸流的實例;圖12示出當輸入單元513被以面板的形式構(gòu)造時其外部視圖實例;圖13是示出根據(jù)本發(fā)明的終端裝置500中所存儲的程序的結(jié)構(gòu)的圖;圖14(1)示出根據(jù)本發(fā)明的顯示器509所顯示的典型的顯示屏幕;圖14(2)示出根據(jù)本發(fā)明的顯示器509所顯示的典型的顯示屏幕;圖15示出根據(jù)本發(fā)明的第二存儲單元510中所存儲的信息的實例;圖16示出根據(jù)本發(fā)明的第二存儲單元510中所存儲的信息的實例;圖17是示出根據(jù)本發(fā)明的MPEG2標準中所規(guī)定的PAT的內(nèi)容的示意圖;
圖18是示出根據(jù)本發(fā)明的MPEG2標準中所規(guī)定的PMT的內(nèi)容的示意圖;圖19是示出根據(jù)本發(fā)明的DVB-MHP標準中所規(guī)定的AIT的內(nèi)容的示意圖;圖20是示出根據(jù)本發(fā)明的將要以DSMCC格式傳輸?shù)奈募到y(tǒng)的示意圖;圖21是示出根據(jù)本發(fā)明的XAIT的內(nèi)容的示意圖;圖22示出根據(jù)本發(fā)明的第二存儲單元510中所存儲的信息的實例;圖23是示出根據(jù)本發(fā)明的多個子程序被啟動的典型順序的示意圖;圖24示出根據(jù)本發(fā)明的Java程序的結(jié)構(gòu)實例;圖25是示出根據(jù)本發(fā)明的再現(xiàn)單元1202b和Java程序被啟動的典型順序的示意圖;圖26是示出根據(jù)本發(fā)明的再現(xiàn)單元1202b的操作實例的流程圖;圖27是示出根據(jù)本發(fā)明的Java程序的一個操作實例的流程圖;圖28是示出根據(jù)本發(fā)明的Java程序的一個操作實例的流程圖;圖29是示出根據(jù)本發(fā)明的終端裝置2800中所存儲的程序的結(jié)構(gòu)實例的圖;以及圖30是示出根據(jù)本發(fā)明的頻道標識符接收單元2806的操作實例的流程圖。
具體實施例方式
(第一實施例)參考附圖給出了根據(jù)本發(fā)明的有線電視系統(tǒng)的一個實施例的說明。圖2是示出組成有線系統(tǒng)的多個裝置之間關(guān)系的方框圖,其中有前端101,以及三個終端裝置終端裝置A111、終端裝置B112、以及終端裝置C113。在本實施例中,三個終端裝置連到一個前端,但是如果任意數(shù)目的終端裝置連到該前端也可以實施本發(fā)明。
前端101向多個終端裝置發(fā)送諸如視頻、音頻和數(shù)據(jù)這樣的廣播信號,并接收從終端裝置發(fā)送的數(shù)據(jù)。為了實現(xiàn)這一目的,劃分出頻帶以用于前端101以及終端裝置A111、終端裝置B112、和終端裝置C113之間的數(shù)據(jù)傳輸。圖3是示出所劃分的頻帶的實例的表。大致有兩種頻帶帶外(Out of Band,簡寫為OOB)以及帶內(nèi)(In-Band)。5~130MHz的頻帶分配給OOB,主要用于前端101以及終端裝置A111、終端裝置B112、和終端裝置C113之間的數(shù)據(jù)交換。130MHz~864MHz的頻帶分配給帶內(nèi),主要用于包括視頻和音頻的廣播頻道。QPSK被用于OOB,而QAM64被用于帶內(nèi)作為調(diào)制技術(shù)。由于調(diào)制技術(shù)是與本發(fā)明關(guān)系不大的公知技術(shù),因此這里略去對調(diào)制技術(shù)的詳細說明。圖4示出如何使用OOB頻帶的更加具體的實例。70MHz~74MHz頻帶用于從前端101發(fā)送數(shù)據(jù)。在這種情況下,所有的終端裝置A111、終端裝置B112、和終端裝置C113都從前端101接收相同的數(shù)據(jù)。同時,10.0MHz~10.1MHz的頻帶用于從終端裝置A111向前端101發(fā)送數(shù)據(jù)。10.1MHz~10.2MHz的頻帶用于從終端裝置B112向前端101發(fā)送數(shù)據(jù)。10.2MHz~10.3MHz的頻帶用于從終端裝置C113向前端101發(fā)送數(shù)據(jù)。因此,可以從終端裝置A111、終端裝置B112、和終端裝置C113向前端101發(fā)送每個終端裝置獨有的數(shù)據(jù)。圖5示出使用帶內(nèi)頻帶的實例。150~156MHz和156~162MHz的頻帶分別分配給電視頻道1和電視頻道2,并且后續(xù)頻率以6MHz的間隔分配給多個電視頻道。310MHz和后續(xù)頻率以1MHz的間隔分配給無線電頻道。上述每個頻道都可以用于或者模擬廣播或者數(shù)字廣播。在數(shù)字廣播的情況下,數(shù)據(jù)以符合MPEG2規(guī)范的傳輸包格式被傳輸,在這種情況下,除了音頻和視頻數(shù)據(jù)以外,還可以傳輸各種數(shù)據(jù)廣播系統(tǒng)所希望的數(shù)據(jù)。
前端101具有QPSK調(diào)制單元、QAM調(diào)制單元等等,以便向各個頻率范圍發(fā)送適當?shù)膹V播信號。此外,前端101具有QPSK解調(diào)單元,以用于接收來自終端裝置的數(shù)據(jù)。同樣,假定前端101進一步具有與上述調(diào)制單元和解調(diào)單元有關(guān)的各種設(shè)備。但是,由于本發(fā)明主要涉及終端裝置,所以這里略去對這些設(shè)備的詳細說明。
終端裝置A111、終端裝置B112、和終端裝置C113接收并再現(xiàn)從前端101發(fā)送的廣播信號。此外,終端裝置A111、終端裝置B112、和終端裝置C113向前端101發(fā)送每個終端裝置獨有的數(shù)據(jù)。在本實施例中,這三個終端裝置具有相同的構(gòu)造。
圖6是示出每個終端裝置的硬件構(gòu)造的方框圖。500是終端裝置,其由QAM解調(diào)單元501、QPSK解調(diào)單元502、QPSK調(diào)制單元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是顯示器,它對應(yīng)于圖6中的顯示器509。
603是面板單元,它由多個按鈕組成并對應(yīng)于圖6中的輸入單元513。
604是信號輸入端子,電纜線連到該信號輸入端子以用于向/從前端101發(fā)送/接收信號。信號輸入端子連到圖6中所示的QAM解調(diào)單元501、QPSK解調(diào)單元502、以及QPSK調(diào)制單元503。
605是對應(yīng)于圖6中的POD 504的POD卡。POD 504的實現(xiàn)獨立于終端裝置500并可以附接到終端裝置500或從終端裝置500上分離,圖7中的POD卡605的情況也是如此。后面將詳細說明POD 504。
606是POD 605插入的插槽。
參考圖6,QAM解調(diào)單元501根據(jù)包括CPU 514所指定頻率的調(diào)諧信息,對經(jīng)過QAM調(diào)制的、從前端101發(fā)送的信號進行解調(diào),并將結(jié)果傳遞到POD 504。
QPSK解調(diào)單元502根據(jù)包括CPU 514所指定頻率的調(diào)諧信息,對經(jīng)過QPSK調(diào)制的、從前端101發(fā)送的信號進行解調(diào),并將結(jié)果傳遞到POD 504。
QPSK調(diào)制單元503根據(jù)包括CPU 514所指定頻率的解調(diào)信息,對從POD 504傳遞的信號進行QPSK解調(diào),并將結(jié)果發(fā)送到前端101。
如圖7所示,POD 504可以從終端裝置500的主體上分離。終端裝置500的主體和POD 504之間的連接接口的定義在OpenCable(TM)HOST-POD接口規(guī)范(OC-SP-HOSTPOD-IF-I12-030210)及由其所參考的規(guī)范中給出。因此,這里略去詳細的描述,并且只對本發(fā)明所涉及的組成元件進行說明。
圖8是示出POD 504的內(nèi)部構(gòu)造的方框圖。POD 504由第一解擾器單元701、第二解擾器單元702、加擾器單元703、主存儲單元704、第二存儲單元705、以及CPU 706組成。
第一解擾器單元701在來自CPU 706的指令控制下從終端裝置500的QAM解調(diào)單元501接收加擾信號,并對這種信號進行解擾。然后,第一解擾器單元701將解擾信號發(fā)送到終端裝置500的TS解碼器505。CPU 706根據(jù)需要提供諸如密鑰這樣的解擾器所需的信息。更具體地,前端101廣播多個付費頻道,當用戶購買觀看這些付費頻道的權(quán)利時,第一解擾器單元701從CPU 706接收諸如密鑰這樣的所需信息并進行解擾。因此,用戶可以觀看這些付費頻道。如果沒有提供諸如密鑰這樣的所需信息,第一解擾器單元701不進行解擾而直接將所接收的信號傳遞到TS解碼器505。
第二解擾器單元702在來自CPU 706的指令控制下從終端裝置500的QPSK解調(diào)單元502接收加擾信號,并對這種信號進行解擾。然后,第二解擾器單元702將解擾數(shù)據(jù)傳遞到CPU 706。
加擾器單元703在來自CPU 706的指令控制下,對從CPU 706接收的數(shù)據(jù)進行加繞,并將結(jié)果發(fā)送到終端裝置500的QPSK調(diào)制單元503。
主存儲單元704目的是在CPU 706進行處理時暫時存儲數(shù)據(jù),其實際組成元件是諸如RAM這樣的主存儲器。
第二存儲單元705目的是存儲CPU 706要執(zhí)行的程序以及存儲即使斷電時也決不會刪除的數(shù)據(jù),其實際組成元件是諸如ROM這樣的第二存儲器。
CPU 706執(zhí)行存儲在第二存儲單元705中的程序。該程序由多個子程序組成。圖9示出第二存儲單元705中存儲的程序的實例。在圖9中,程序800由多個子程序組成,包括主程序801、初始化子程序802、網(wǎng)絡(luò)子程序803、再現(xiàn)子程序804、以及PPV子程序805。
這里,PPV是按次付費觀看(Pay Per View)的縮寫,是指允許用戶在可支付的基礎(chǔ)上觀看諸如一部電影這樣的某一節(jié)目。當用戶輸入他/她的個人識別號(personal identification number)時,該用戶購買了觀看該節(jié)目的權(quán)利這一事實就被通知給前端101,并且該節(jié)目被解擾。因此,該用戶可以觀看這樣的節(jié)目。觀看該節(jié)目需要用戶日后為該次購買進行支付。
主程序801是通電時CPU 706首先啟動的子程序,它控制其它子程序。
初始化子程序802是通電時被主程序801啟動,它進行與終端裝置500的信息交換等以執(zhí)行初始化處理。這一初始化處理在OpenCable(TM)HOST-POD接口規(guī)范(OC-SP-HOSTPOD-IF-I12-030210)及由其所參考的規(guī)范中詳細定義。此外,初始化子程序802還進行這些規(guī)范中未定義的初始化處理。這里,介紹這樣的初始化處理的一部分。當通電時,初始化子程序802通過終端裝置500的CPU 514向QPSK解調(diào)單元502通知存儲在第二存儲單元705中的第一頻率。QPSK解調(diào)單元502使用所提供的第一頻率進行調(diào)諧,并將結(jié)果信號發(fā)送到第二解擾器單元702。此外,初始化子程序802向第二解擾器單元702提供解擾信息,諸如存儲在第二存儲單元705中的第一密鑰。結(jié)果,第二解擾器單元702執(zhí)行解擾并將結(jié)果傳遞到執(zhí)行初始化子程序802的CPU 702。因此,初始化子程序802可以接收該信息。在本實施例中,初始化子程序802通過網(wǎng)絡(luò)子程序803接收信息。后面會給出詳細描述。
此外,初始化子程序802通過終端裝置500的CPU 514向QPSK調(diào)制單元503通知存儲在第二存儲單元705中的第二頻率。初始化子程序802向加擾器單元703提供存儲在第二存儲單元705中的加擾信息。當初始化子程序802通過網(wǎng)絡(luò)子程序803,向加擾器單元703提供所需發(fā)送的信息時,加擾器單元703使用所提供的加擾信息對該數(shù)據(jù)進行加擾,并將加擾數(shù)據(jù)提供到QPSK調(diào)制單元503。QPSK調(diào)制單元503對所接收到的加擾信息進行調(diào)制,并將調(diào)制信息發(fā)送到前端101。
結(jié)果,初始化子程序802可以通過終端裝置500、第二解擾器單元702、加擾器單元703、以及網(wǎng)絡(luò)子程序803來進行與前端101的雙向通信。
網(wǎng)絡(luò)子程序803由諸如主程序801和初始化子程序802這樣的多個子程序使用,它是目的為執(zhí)行與前端101的雙向通信的子程序。更具體地,網(wǎng)絡(luò)子程序803運行時,好像使用該網(wǎng)絡(luò)子程序803的其他子程序正在按照TCP/IP與前端101進行雙向通信一樣。由于TCP/IP是規(guī)定當多個終端之間交換信息時所使用的協(xié)議的公知技術(shù),所以這里略去對它的詳細說明。當網(wǎng)絡(luò)子程序803在通電時被初始化子程序802啟動時,網(wǎng)絡(luò)子程序803通過終端裝置500向前端101通知MAC地址(介質(zhì)訪問控制的縮寫),以便請求獲得IP地址,其中該MAC地址是用于標識POD 504的標識符并且預(yù)先存儲在第二存儲單元705中。前端101通過終端裝置500向POD 504通知IP地址,并且網(wǎng)絡(luò)子程序803在主存儲單元704中存儲這一IP地址。從那時起,前端101和POD 504使用這一IP地址作為POD 504的標識符互相通信。
再現(xiàn)子程序804向第一解擾器單元701提供諸如存儲在第二存儲單元705中的第二密鑰這樣的解擾信息以及諸如由終端裝置500提供的第三密鑰這樣的解擾信息,以便允許執(zhí)行解擾。此外,再現(xiàn)子程序804通過網(wǎng)絡(luò)子程序803,接收指示第一解擾器單元701中所輸入的信號是PPV頻道的信息。一旦接收到該信號是PPV頻道的通知,再現(xiàn)子程序804啟動PPV子程序805。
當PPV子程序805被啟動后,它在終端裝置500上顯示要求用戶購買該節(jié)目的消息,并接受來自用戶的輸入。更具體地,當希望在屏幕上顯示的信息被發(fā)送到終端裝置500的CPU 514時,終端裝置500的CPU 514上運行的程序在終端裝置500的顯示器509上顯示該消息。然后,當用戶通過終端裝置500的輸入單元513輸入個人識別號時,終端裝置500的CPU 514接受該個人識別號,并將其發(fā)送到運行在POD 504的CPU 706上的PPV子程序805。PPV子程序805通過網(wǎng)絡(luò)子程序803將所接受的個人識別號發(fā)送到前端101。當這一個人識別號有效時,前端101通過網(wǎng)絡(luò)子程序803向PPV子程序805通知解擾所需的解擾信息,諸如第四密鑰。PPV子程序805向第一解擾器單元701提供所接受的諸如第四密鑰這樣的解擾信息,然后第一解擾器單元701對輸入信號進行解擾。
參考圖6,TS解碼器505對從POD 504接受的信號執(zhí)行過濾,并將必需的數(shù)據(jù)傳遞到音頻解碼器506、視頻解碼器508、以及CPU514。這里,從POD 504所發(fā)送的信號是MPEG2傳輸流。關(guān)于MPEG2傳輸流的詳細描述在MPEG規(guī)范ISO/IEC 138181-1中給出,因此在本實施例中不詳細說明。MPEG2傳輸流由多個固定長度的包組成,并且為每個包分配一個包ID。圖10是示出包結(jié)構(gòu)的圖。900是一個包,它包含固定長度188個字節(jié)。前四個字節(jié)是報頭901,存儲用于標識該包的信息,而其他184個字節(jié)是有效載荷902,存儲希望被攜帶的信息。903示出報頭901的細分。包ID被包括在從第1算起的第12~第24比特的13個比特中。圖11是說明要傳輸?shù)亩鄠€包串的示意圖。包1001在其報頭中包含包ID“1”并且在其有效載荷中包括視頻A的第一信息。包1002在其報頭中包含包ID“2”并且在其有效載荷中包括音頻A的第一信息。包1003在其報頭中包含包ID“3”并且在其有效載荷中包括視頻B的第一信息。
包1004在其報頭中包含包ID“1”并且在其有效載荷中包括視頻A的第二信息,該第二信息是包1001的后續(xù)信息。類似地,包1005、1026、以及1027攜帶其他包的后續(xù)數(shù)據(jù)。通過上述方式連接具有相同包ID的多個包的有效載荷的內(nèi)容,可以順序地再現(xiàn)視頻和音頻。
參考圖11。當CPU 514向TS解碼器505指示包ID“1”以及“視頻解碼器508”作為輸出目的地時,TS解碼器505在從POD 504接收的MPEG2傳輸流中提取包ID為“1”的包,并將其傳遞到視頻解碼器508。因此,在圖11中,只有視頻數(shù)據(jù)被傳遞到視頻解碼器508。同時,當CPU 514向TS解碼器505指示包ID“2”以及“音頻解碼器506”時,TS解碼器505在從POD 504接收的MPEG2傳輸流中提取包ID為“2”的包,并將其傳遞到音頻解碼器506。在圖11中,只有音頻數(shù)據(jù)被傳遞到視頻解碼器508。
根據(jù)包ID只提取必需的包的這一處理對應(yīng)于TS解碼器505執(zhí)行的過濾。TS解碼器505可以在來自CPU 514的指令控制下同時執(zhí)行多于一個的過濾處理。
參考圖6,音頻解碼器506連接嵌入在由TS解碼器505所提供的MPEG2傳輸流中的多個包中的音頻數(shù)據(jù),對連接的數(shù)據(jù)執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,并將結(jié)果輸出到揚聲器507。
揚聲器507將由音頻解碼器506提供的信號作為音頻輸出。
視頻解碼器508連接嵌入在由TS解碼器505所提供的MPEG2傳輸流中的多個包中的視頻數(shù)據(jù),對連接的數(shù)據(jù)進行數(shù)字到模擬的轉(zhuǎn)換,并將結(jié)果輸出到顯示器509。
顯示器509的實際組成元件是CRT或液晶等,它輸出由視頻解碼器508提供的視頻信號并顯示CPU 514指定的消息,等等。
第二存儲單元510的實際組成元件是閃速存儲器、硬盤等,它存儲并刪除CPU 514指定的數(shù)據(jù)和程序。所存儲的數(shù)據(jù)和程序被CPU514引用。即使當終端裝置500斷電時,所存儲的數(shù)據(jù)和程序仍被保存。
主存儲單元511的實際組成元件是RAM等,它臨時存儲CPU 514指定的數(shù)據(jù)和程序并將其刪除。所存儲的數(shù)據(jù)和程序被CPU 514引用。當終端裝置500斷電時,所存儲的數(shù)據(jù)和程序被刪除。
ROM 512是只讀存儲設(shè)備,其實際組成元件是ROM、CD-ROM、以及DVD等。ROM 512存儲CPU 514將要執(zhí)行的程序。
輸入單元513的實際組成元件是面板或遙控器,它接受來自用戶的輸入。圖12示出當輸入單元513被以面板的形式構(gòu)造時它的實例。1100是面板,對應(yīng)于圖7中所示的面板單元603。這樣的面板1100由7個按鈕組成上移光標按鈕1101、下移光標按鈕1102、左移光標按鈕1103、右移光標按鈕1104、OK按鈕1105、取消按鈕1106、以及EPG按鈕1107。當用戶按下一個按鈕時,就向CPU 514通知被按下按鈕的標識符。
CPU 514執(zhí)行存儲在ROM 512中的程序。根據(jù)來自這樣的要執(zhí)行的程序的指令,CPU 514控制QAM解調(diào)單元501、QPSK解調(diào)單元502、QAM調(diào)制單元503、POD 504、TS解碼器505、顯示器509、第二存儲單元510、主存儲單元511、以及ROM 512。
圖13是示出存儲在ROM 512中并被CPU 514執(zhí)行的程序的結(jié)構(gòu)實例的圖。
程序1200由多個子程序組成。更具體地,程序1200由OS 1201、EPG 1202、JavaVM 1203、服務(wù)管理器1204、以及Java庫1205組成。
OS 1201是當終端裝置500通電時將被CPU 514啟動的子程序。OS 1201是操作系統(tǒng)的縮寫,其實例如Linux等。OS 1201是由用于與執(zhí)行另一個子程序并行地執(zhí)行一個子程序的內(nèi)核1201a以及庫1201b組成的公知技術(shù)的通用名稱,因此略去詳細說明。在本實施例中,OS 1201的內(nèi)核1201a執(zhí)行EPG 1202和JavaVM 1203作為子程序。同時,庫1202b向這些子程序提供控制終端裝置500的組成元件所需的多個功能。
在本實施例中,庫1201b包括調(diào)諧器1201b1、條件接入1201b2、以及AV再現(xiàn)1202b3,作為其功能的實例。調(diào)諧器1201b1從另一個子程序或Java庫1205的調(diào)諧器1205c接收包括頻率的調(diào)諧信息,然后將其傳遞到QAM解調(diào)單元501。因此,QAM解調(diào)單元501可以基于所提供的調(diào)諧信息執(zhí)行解調(diào),并將解調(diào)數(shù)據(jù)傳遞到POD 504。結(jié)果,其它子程序和Java庫1205的調(diào)諧器1205c可以通過庫1201b控制QAM解調(diào)單元。
條件接入1201b2從另一個子程序或Java庫1205的CA 1205d接收解擾所需的信息,并將其提供給POD 504。結(jié)果,POD 504根據(jù)所提供的信息,對從QAM解調(diào)單元501提供的信號進行解擾,并將結(jié)果信號傳遞到TS解碼器505。
AV再現(xiàn)1202b3從另一個子程序或Java庫1205的JMF 1205a接收音頻包ID和視頻包ID,并向TS解碼器505提供一組所接收的音頻包ID并將音頻解碼器506作為輸出目的地,以及一組所接收的視頻包ID并將視頻解碼器508作為輸出目的地。結(jié)果,TS解碼器505基于所提供的包ID和輸出目的地執(zhí)行過濾,并再現(xiàn)視頻和音頻。EPG1202由用于向用戶顯示節(jié)目列表以及用于接受來自用戶的輸入的節(jié)目顯示單元1202a、和用于選擇頻道的再現(xiàn)單元1202b組成。這里,EPG是電子節(jié)目指南(Electric Program Guide)的縮寫。EPG 1202在終端裝置500通電時由內(nèi)核1201a啟動。在啟動的EPG 1202中,節(jié)目顯示單元1202a和再現(xiàn)單元1202a同時被啟動。被啟動后,節(jié)目顯示單元1202a等待用戶通過終端裝置500的輸入單元513的輸入。這里,在輸入單元513采用圖12中所說明的面板形式的情況下,當用戶按下輸入單元513上的EPG按鈕1107時,CPU 514被告知這一EPG按鈕的標識符。EPG 1202的節(jié)目顯示單元1202a是CPU 514上運行的子程序,它接受這一標識符,并在顯示器509上顯示節(jié)目信息。圖14(1)和(2)示出顯示在顯示器509上的節(jié)目表的實例。參看圖14(1)。節(jié)目信息以網(wǎng)格圖形顯示在顯示器509上。列1301描述時間信息。列1302描述頻道名稱“頻道1”以及在對應(yīng)于列1301中所描述的各個時間的時間段期間將要廣播的節(jié)目。圖上示出在“頻道1”上從9:00到10:30廣播節(jié)目“新聞9”,而從10:30到12:00廣播“電影AAA”。列1303描述頻道名稱“頻道2”以及在對應(yīng)于列1301中所描述的各個時間的時間段期間將要廣播的節(jié)目,如列1302的情況那樣。從9:00到11:00廣播節(jié)目“電影BBB”,而從11:00到12:00廣播“新聞11”。1330是光標。在按下面板1100上的左移光標1103或右移光標1104時光標1330移動。在圖14(1)中所說明的狀態(tài)下按下右移光標1104時,光標1330向右移動,如圖14(2)中所示。同樣,在圖14(2)中所說明的狀態(tài)下按下左移光標1103時,光標1330向左移動,如圖14(1)中所示。
在圖14(1)中所示的狀態(tài)下按下面板1100上的OK按鈕1105時,節(jié)目顯示單元1202a向再現(xiàn)單元1202b通知“頻道1”的標識符。同樣,在圖14(2)中所示的狀態(tài)下按下面板1100上的OK按鈕1105時,節(jié)目顯示單元1202a向再現(xiàn)單元1202b通知“頻道2”的標識符。
此外,節(jié)目顯示單元1202a通過POD 504定期將來自前端101的將要顯示的節(jié)目信息存儲到主存儲單元511中。通常,從前端獲得節(jié)目信息需要時間。但是,通過在按下輸入單元513的EPG按鈕1107時顯示預(yù)存儲在主存儲單元511中的節(jié)目信息,可以快速顯示節(jié)目表。
再現(xiàn)單元1202b使用所接收的頻道標識符再現(xiàn)頻道。換句話說,它再現(xiàn)組成該頻道的視頻和音頻。頻道標識符和頻道之間的關(guān)系由第二存儲單元510預(yù)存儲作為頻道信息。圖15示出存儲在第二存儲單元510中的頻道信息的實例。頻道信息以表格形式存儲。列1401描述頻道標識符。列1402描述頻道名稱。列1403描述調(diào)諧信息。這里,調(diào)諧信息由將要提供給QAM解調(diào)單元501的值表示,諸如頻率、傳輸率、以及編碼率。列1404描述節(jié)目號。節(jié)目號是標識MPEG2標準所定義的PMT所使用的號碼。關(guān)于PMT的描述在后面給出。1411~1414的每行指示一組標識符、頻道名稱、和每個頻道的調(diào)諧信息。行1411描述包括“1”作為標識符、“頻道1”作為頻道名稱、頻率“150MHz”作為調(diào)諧信息、以及“101”作為節(jié)目號的一組。再現(xiàn)單元1202b直接向服務(wù)管理器傳遞所接收的頻道的標識符,以便再現(xiàn)該頻道。
此外,當用戶在再現(xiàn)進行過程中按下面板1100上的上移光標1101和下移光標1102時,再現(xiàn)單元1202b通過CPU 514從輸入單元513接收關(guān)于用戶這些按下操作的通知,并將正在進行再現(xiàn)的頻道切換到另一個頻道。當按下上移光標1101時,再現(xiàn)其頻道標識符的值比當前再現(xiàn)的頻道的頻道標識符的值小1的頻道,而當按下下移光標1102時,再現(xiàn)其頻道標識符的值比當前再現(xiàn)的頻道的頻道標識符的值大1的頻道。首先,再現(xiàn)單元1202b在第二存儲單元512中存儲當前再現(xiàn)的頻道的標識符。圖16中(1)、(2)、和(3)示出存儲在第二存儲單元512中的頻道標識符實例。圖16中(1)示出存儲了標識符“3”,并且通過參考圖15示出頻道名稱為“TV 3”的頻道正在被再現(xiàn)。當用戶在圖16中(1)中所說明的狀態(tài)下按下上移光標1101時,再現(xiàn)單元1202b參考圖15中所示的頻道信息,并將頻道名稱為“頻道2”的頻道的標識符“2”傳遞給服務(wù)管理器,以便新再現(xiàn)頻道名稱為“頻道2”的頻道,在表中該頻道的標識符的值比當前再現(xiàn)的頻道的標識符的值小1。同時,再現(xiàn)單元1202b將存儲在第二存儲單元512中的標識符重寫為頻道標識符“2”。圖16中(2)示出這一重寫的頻道標識符。同樣,當用戶在圖16中(1)中所說明的狀態(tài)下按下下移光標1102時,再現(xiàn)單元1202b參考圖15中所示的頻道信息,并將頻道名稱為“TV日本”的頻道的標識符“4”傳遞給服務(wù)管理器,以便新再現(xiàn)頻道名稱為“TV日本”的頻道,在表中該頻道的標識符的值比當前再現(xiàn)的頻道的標識符的值大1。同時,再現(xiàn)單元1202b將存儲在第二存儲單元512中的標識符重寫為頻道標識符“4”。圖16中(3)示出這一重寫的頻道標識符。由于頻道標識符被存儲在第二存儲單元512中,因此即使終端裝置500關(guān)閉,頻道標識符仍然被存儲。
此外,在終端裝置500通電時被啟動后,再現(xiàn)單元1202b讀出存儲在第二存儲單元512中的頻道標識符,然后將這一頻道標識符傳遞到服務(wù)管理器。因此,終端裝置500可以在通電時開始再現(xiàn)其上次操作時最后再現(xiàn)的頻道。
JavaVM 1203是順序分析并執(zhí)行用Java(TM)語言所寫的程序的Java虛擬機。用Java語言所寫的程序被編譯成不依賴于硬件的被稱為字節(jié)碼的中間代碼。Java虛擬機是執(zhí)行這樣的字節(jié)碼的解釋器。一些Java虛擬機將字節(jié)碼翻譯成可以被CPU 514解釋的可執(zhí)行形式并將結(jié)果傳遞到CPU 514,該CPU 514執(zhí)行該結(jié)果。JavaVM 1203被啟動,同時內(nèi)核1201a指定將要執(zhí)行的Java程序。在本實施例中,內(nèi)核1201a指定服務(wù)管理器1204作為將要執(zhí)行的Java程序。在包括“Java語言規(guī)范”(ISBN 0-201-63451-1)在內(nèi)的許多書中都給出了對Java語言的詳細說明。因此,這里略去對其的詳細描述。同樣,在包括“Java虛擬機規(guī)范”(ISBN 0-201-63451-X)在內(nèi)的許多書中都給出了對JavaVM自身的操作的詳細說明。因此,這里略去對其的詳細描述。
服務(wù)管理器1204是用Java語言所寫的Java程序,它由JavaVM1203順序執(zhí)行。服務(wù)管理器1204可以通過JNI(Java本地接口,JavaNative Interface)調(diào)用另一個不是用Java語言所寫的子程序并被另一個不是用Java語言所寫的子程序調(diào)用。在包括“Java本地接口”在內(nèi)的許多書中都給出了對JNI的詳細說明。因此,這里略去對其的詳細描述。
服務(wù)管理器1204通過JNI從再現(xiàn)單元1202b接受頻道標識符。
首先,服務(wù)管理器1204將頻道標識符傳遞到Java庫1205中的調(diào)諧器1205c以便請求調(diào)諧。調(diào)諧器1205c參考存儲在第二存儲單元510中的頻道信息以獲得調(diào)諧信息。假設(shè)服務(wù)管理器1204向調(diào)諧器1205c傳遞頻道標識符“2”,調(diào)諧器1205c參考圖15中所示行1412,獲得對應(yīng)于該頻道的調(diào)諧信息“156MHz”。調(diào)諧器1205c通過OS 1201中的庫1201b的調(diào)諧器1201b1將調(diào)諧信息傳遞到QAM解調(diào)單元501。QAM解調(diào)單元501根據(jù)所提供的解調(diào)信息對從前端101發(fā)送的信號進行解調(diào),并將結(jié)果信號傳遞到POD 504。
然后,服務(wù)管理器1204請求Java庫1205內(nèi)的CA 1205b執(zhí)行解擾。CA 1205d通過OS 1201中的庫1201b的條件接入1201b2向POD504提供解擾所需的信息。在所提供的這樣的信息的基礎(chǔ)上,POD 504對QAM解調(diào)單元501所提供的信號進行解擾,并將結(jié)果信號傳遞到TS解碼器505。
然后,服務(wù)管理器1204向Java庫1205內(nèi)的JMF 1205a提供該頻道標識符,以便請求再現(xiàn)視頻和音頻。
首先,JMF 1205a從PAT和PTM獲得用于指定將要再現(xiàn)的視頻和音頻的包ID。PAT和PTM是由MPEG-2標準定義的表,示出了包括在MPEG2傳輸流中的節(jié)目序列。PAT和PMT與音頻和視頻一起,被攜帶于包括在MPEG2傳輸流中的包的有效載荷中。參考詳細描述PAT和PMT的規(guī)范。這里,只給出PAT和PMT的概述。PAT是節(jié)目關(guān)聯(lián)表(Program Association Table)的縮寫,被攜帶于包ID為“0”的包中。為了獲得PAT,JMF 1205a通過OS 1201的庫1201b向TS解碼器505指示包ID“0”和CPU 514。然后TS解碼器505基于包ID“0”執(zhí)行過濾,并將結(jié)果傳遞到CPU 514。因此JMF 1205a可以收集PAT包。圖17說明了示意性地示出所收集的PAT信息的實例的表。列1601描述節(jié)目號。列1602描述包ID。列1602中所示出的包ID用于獲得PAT。1611~1613的每行是頻道的節(jié)目號及其對應(yīng)的包ID這樣的一對。這里,定義了三個頻道。行1611定義了節(jié)目號“101”和包ID“501”的一對。假設(shè)提供給JMF 1205a的頻道標識符是“2”,JMF 1205a參考圖15中的列1412,從而獲得對應(yīng)于這一頻道標識符的節(jié)目號“102”,然后參考圖17中所示PAT中的列1612,從而獲得對應(yīng)于節(jié)目號“102”的包ID“502”。PMT是節(jié)目映射表(Program MapTable)的縮寫,被攜帶于具有PAT中所指定的包ID的包中。為了獲得PMT,JMF 1205a通過OS 1201的庫1201b向TS解碼器505指示包ID和CPU 514。這里,被指定的包ID是“502”。然后,TS解碼器505基于包ID“502”執(zhí)行過濾,并將結(jié)果傳遞到CPU 514。因此JMF 1205a可以收集PMT包。圖18說明了示意性地示出所收集的PMT信息的實例的表。列1701描述流類型。列1702描述包ID。各個流類型中所指定的信息被攜帶于具有列1702中所指定的包ID的包的有效載荷中。列1703描述附加信息。1711~1713的每行是包ID和被傳送的信息的類型這樣的一對,被稱為基本流。行1711是流類型“音頻”和包ID“5011”的一對,它指示音頻數(shù)據(jù)被存儲在包ID為“5011”的包的有效載荷中。JMF 1205a從PMT獲得將要再現(xiàn)的視頻和音頻的包ID。參考圖18,JMF 1205a從行1711獲得音頻包ID“5011”,從行1712獲得視頻包ID“5012”。
然后,JMF 1205a將所獲得的音頻包ID和視頻包ID傳遞到OS1201中的庫1201b的AV再現(xiàn)1201b3。作為對此的響應(yīng),AV再現(xiàn)1201b3向TS解碼器505提供所獲得的音頻包ID和音頻解碼器506作為輸出目的地、以及所獲得的視頻包ID和視頻解碼器508作為輸出目的地這樣的多對。TS解碼器505基于這樣提供的包ID和輸出目地執(zhí)行過濾。這里,包ID為“5011”的包被傳遞到音頻解碼器506,而包ID為“5012”的包被傳遞到視頻解碼器508。音頻解碼器506對所提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便通過揚聲器507再現(xiàn)音頻。視頻解碼器508對所提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便在顯示器509上顯示視頻。
最后,服務(wù)管理器1204向Java庫1205中的AM 1205b提供頻道標識符,以便請求數(shù)據(jù)廣播再現(xiàn)。這里,數(shù)據(jù)廣播再現(xiàn)是指提取MPEG2傳輸流中所包括的Java程序并使得JavaVM 1203執(zhí)行該程序。作為將Java程序嵌入到MPEG2傳輸流中的技術(shù),使用一種被稱為DSMCC的方法,在MPEG規(guī)范ISO/IEC 138181-6中描述了這種方法。這里略去對DSMCC的詳細說明。DSMCC規(guī)范定義了一種在MPEG2傳輸流內(nèi)的包中,對計算機所使用的由目錄和文件組成的文件系統(tǒng)進行編碼的方法。關(guān)于將要執(zhí)行的Java程序的信息以AIT的形式被攜帶于MPEG2傳輸流中的包中。AIT是應(yīng)用信息表(Application Information Table)的縮寫,其定義在DVB-MHP標準(正式地被稱為ETSI TS 101 812 DVB-MHP規(guī)范V1.0.2)的第十章中給出。
首先,為了獲得AIT,AM 1205b如在JMF 1205a的情況一樣獲得PAT和PMT,以便獲得存儲AIT的包的包ID。假設(shè)“2”是所提供的頻道標識符并且傳送圖17中所示的PAT和圖18中所示的PMT,則AM 1205b根據(jù)JMF 1205a所遵循的相同的流程獲得圖18中所示的PMT。然后,AM 1205b從PMT中提取流類型是“數(shù)據(jù)”并且具有“AIT”作為附加信息的基本流的包ID。如圖18所示,行1713中的基本流對應(yīng)于這樣的基本流,因此AM 1205b從行1713獲得包ID“5013”。
AM 1205b通過OS 1201的庫1201b向TS解碼器505提供AIT的包ID和CPU 514作為輸出目的地。然后,TS解碼器505基于這樣提供的包ID執(zhí)行過濾,并將結(jié)果傳遞到CPU 514。因此,AM 1205b可以收集AIT的包ID。圖19是示意性地示出所收集的AIT信息的實例的表。列1801描述Java程序的標識符。列1802描述用于控制Java程序的控制信息??刂菩畔ā白詣訂?autostart)”、“存在(present)”、和“殺死(kill)”?!白詣訂印笔侵附K端裝置500立即自動執(zhí)行程序?!按嬖凇笔侵赋绦虿槐蛔詣訄?zhí)行?!皻⒌簟笔侵赋绦?qū)⒈唤K止。列1803描述用于提取包括DSMCC格式的Java程序的包ID的DSMCC標識符。列1804描述Java程序的程序名。1811和1812的每行是關(guān)于Java程序的一組信息。行1811中定義的Java程序是一組標識符“301”、控制信息“自動啟動”、DSMCC標識符“1”、和程序名“a/TopXlet”。行1812中定義的Java程序是一組標識符“302”、控制信息“存在”、DSMCC標識符“1”、和程序名“b/GameXlet”。這里,這兩個Java程序具有相同的DSMCC標識符。這指示這兩個Java程序包括在根據(jù)相同的DSMCC方法編碼的文件系統(tǒng)中。這里,只為每個Java程序指定了四條信息,但是在實際中會指定更多條信息。詳細信息請參考DVB-MHP規(guī)范。
AM 1205b從AIT中找到“自動啟動”的Java程序,并提取對應(yīng)的DSMCC標識符和Java程序名。參考圖19,AM 1205b提取行1811中的Java程序,并獲得DSMCC標識符“1”和Java程序名“a/TopXlet”。
然后,AM 1205b使用從AIT所獲得的DSMCC標識符,從PMT獲得以DSMCC格式存儲的Java程序的包的包ID。更具體地,AM1205b從PMT獲得包括在流類型是“數(shù)據(jù)”并且附加信息中的DSMCC標識符相匹配的基本流中的包ID。
這里,假設(shè)這一DSMCC標識符是“1”并且PMT是圖18中所示的PMT,行1714中的基本流滿足上述條件。因此,提取包ID“5014”。
AM 1205b通過OS 1201的庫1201b,向TS解碼器505指示其中嵌入了DSMCC格式的數(shù)據(jù)的包的包ID以及CPU 514作為輸出目的地。這里,提供了包ID“5014”。然后,TS解碼器505基于所提供的包ID執(zhí)行過濾,并將結(jié)果傳遞到CPU 514。因此,AM 1205b可以收集所需的包。AM 1205b根據(jù)DSMCC方法從所收集的包重建文件系統(tǒng),并將重建的文件系統(tǒng)存儲到主存儲單元511。在下文中,從MPEG2傳輸流中的包提取諸如文件系統(tǒng)這樣的數(shù)據(jù)以及將所提取的數(shù)據(jù)存儲到諸如主存儲單元511這樣的存儲單元中的處理被稱為下載。
圖20示出所下載的文件系統(tǒng)的實例。圖中,圓圈表示目錄而方框表示文件,其中1901是根目錄,1902是目錄“a”,1903是目錄“b”,1904是文件“TopXlet.java”,而1905是文件“GameXlet.java”。
隨后,AM 1205b將下載到主存儲單元511中的文件系統(tǒng)中的將要執(zhí)行的Java程序傳遞到JavaVM 1203。這里,假設(shè)將要執(zhí)行的Java程序名是“a/TopXlet”,在上述Java程序名后附加“.class”而產(chǎn)生的文件“a/TopXlet.class”是將要執(zhí)行的文件?!?”是目錄和文件名之間的分隔符,如圖20所示,文件1904是將要執(zhí)行的Java程序。然后,AM 1205b將文件1904傳遞到JavaVM 1203。
JavaVM 1203執(zhí)行這樣接收的Java程序。
一旦接收到另一個頻道的標識符,服務(wù)管理器1204就通過Java庫1205中所包括的每個庫,終止視頻和音頻的再現(xiàn),以及終止執(zhí)行通過相同的Java庫1205中所包括的每個庫執(zhí)行的Java程序,然后基于新接收到的頻道標識符執(zhí)行視頻和音頻的再現(xiàn)以及執(zhí)行Java程序。
此外,服務(wù)管理器1204還可以從不僅在再現(xiàn)單元1202b上執(zhí)行、而且在JavaVM 1203上執(zhí)行的Java程序接收頻道標識符。更具體地,它提供了用于接收頻道標識符的Java語言類及其方法。一旦接收到頻道標識符,服務(wù)管理器1204就通過Java庫1205中所包括的每個庫,終止視頻和音頻的再現(xiàn),以及終止執(zhí)行通過相同的Java庫1205中所包括的每個庫執(zhí)行的Java程序,然后基于新接收到的頻道標識符執(zhí)行視頻和音頻的再現(xiàn)以及執(zhí)行Java程序。
此外,服務(wù)管理器1204還下載/存儲并執(zhí)行Java程序。
此外,在啟動時完成POD的初始化處理后,服務(wù)管理器1204通過Java庫1205中所包括的POD庫1205e進行與前端101的雙向通信。這一雙向通信可以由POD庫1205e通過使用OS 1201的庫1201b、以及通過經(jīng)由POD 504使用QPSK解調(diào)單元502和QPSK調(diào)制單元503實現(xiàn)。
通過上述通信,服務(wù)管理器1204從前端101接收關(guān)于終端裝置500應(yīng)當存儲在第二存儲單元510中的Java程序的信息。這樣的信息被稱為XAIT信息。XAIT信息以任意形式在前端101和POD 504之間傳輸。只要包括如XAIT的所需信息,本發(fā)明的實現(xiàn)可以不管傳輸格式。
圖21說明了示意性地示出從前端101所獲得的XAIT信息的實例的表。列2001描述Java程序的標識符。列2002描述用于控制Java程序的控制信息??刂菩畔ā白詣舆x擇”和“存在”。“自動選擇”是指當終端裝置500通電時程序自動執(zhí)行,而“存在”是指程序?qū)⒉蛔詣訄?zhí)行。列2003描述用于提取包含DSMCC格式的Java程序的包ID的DSMCC標識符。列2004描述Java程序的程序名。列2005描述Java程序的優(yōu)先級。行2011到2012的每行是關(guān)于各個Java程序的一組信息。行2011中定義的Java程序是一組標識符“701”、控制信息“自動選擇”、DSMCC標識符“1”、以及程序名“a/PPV1Xlet”。這里,只為各個Java程序指定了五條信息,但是當定義更多條信息時,本發(fā)明也可以實現(xiàn)。
一旦接收到XAIT信息,服務(wù)管理器1204按照與根據(jù)AIT信息下載Java程序的流程相同的流程,將來自MPEG2傳輸流的文件系統(tǒng)存儲到主存儲單元511中。隨后,服務(wù)管理器1204將這樣存儲的文件系統(tǒng)復(fù)制到第二存儲單元510。注意還可以不通過主存儲單元511而直接將文件系統(tǒng)下載到第二存儲單元510中。然后,服務(wù)管理器1204在第二存儲單元510中存儲將XAIT信息與所下載的文件系統(tǒng)的存儲位置相關(guān)聯(lián)的結(jié)果。圖22示出存儲在第二存儲單元510中的相互關(guān)聯(lián)的XAIT信息和所下載的文件系統(tǒng)的實例。圖22中,與圖21中的元素一樣的元素是彼此相同的,因此略去對這些元素的說明。列2101存儲所下載的文件系統(tǒng)的存儲位置。在圖22中,這樣的存儲位置用箭頭指示。2110是所下載的文件系統(tǒng),其中包括頂層目錄2111、目錄“a”2112、目錄“b”2113、文件“ZapperXlet.class”2114、以及文件“PPV2Xlet.class”2115。
這里,XAIT信息在存儲Java程序之后存儲,但是XAIT信息還可以在Java程序之前存儲。
當終端裝置500通電時,OS 1201向JavaVM 1203指示服務(wù)管理器1204。然后,服務(wù)管理器1204在被JavaVM 1203啟動后,首先參考存儲在第二存儲單元510中的XAIT信息。這里,服務(wù)管理器1204參考每個Java程序的控制信息,并將“自動選擇”的程序傳遞到JavaVM 1203,以便啟動這樣的程序。參考圖22,行2011中所定義的Java程序“ZapperXlet”在這里被啟動。
Java庫1205是存儲在ROM 512中的多個Java庫的集合。在本實施例中,Java庫1205包括JMF 1205a、AM 1205b、調(diào)諧器1205c、CA 1205d、POD庫1205e、再現(xiàn)庫1205f、IO 1205g、AWT 1205h等等。
由于已經(jīng)在上文中給出了關(guān)于JMF 1205a、AM 1205b、調(diào)諧器1205c、CA 1205d、POD庫1205e的描述,所以略去對其的描述。
再現(xiàn)庫1205f提供了Java語言類和方法(在下文中描述為JavaAPI),用于向Java程序傳遞存儲在第二存儲單元510中的當前再現(xiàn)的頻道的標識符。使用這一Java API使得Java程序可以知道當前再現(xiàn)的是哪個頻道。
IO 1205g向Java程序提供用于允許Java程序向第二存儲單元510中寫入數(shù)據(jù)的Java API,或用于允許Java程序從第二存儲單元510中讀取這樣的寫入數(shù)據(jù)的Java API。使用這一API使得Java程序可以向第二存儲單元510中存儲任意數(shù)據(jù)。由于即使終端裝置500的電源關(guān)閉,這樣存儲的數(shù)據(jù)也不會丟失,因此可以在終端裝置500通電后再次讀取這樣的數(shù)據(jù)。
AWT 1205h提供用于允許Java程序執(zhí)行繪制以及從輸入單元513接收按鍵輸入通知的Java API。更具體地,其等價物是java.awt包、java.awt.event包、以及“Java類庫第二版,第二卷”(ISBN0-201-31003-1)中所定義的其他java.awt包。這里,略去詳細描述。
然后,給出在終端裝置500通電時由再現(xiàn)單元1202b執(zhí)行的特殊處理以及Java程序“ZapperXlet”的操作,這些是本發(fā)明的主要部分。
圖23是示出在終端裝置500通電時啟動主要子程序的順序的示意圖。在這一圖中,橫軸表示經(jīng)過的時間。箭頭2201的左邊緣表示內(nèi)核1201a被啟動并且它在這一啟動后持續(xù)運行。同樣,各個箭頭2202、2203、以及2204的左邊緣表示再現(xiàn)單元1202b、JavaVM 1203、以及服務(wù)管理器1204分別被啟動并且它們在這一啟動后持續(xù)運行。
2211是終端裝置500通電的時間。內(nèi)核1201a在此時啟動。內(nèi)核1201a在完成自初始化處理和其他處理后,在2212所指示的時間通過啟動EPG 1202來啟動再現(xiàn)單元1202b,并在同一時間啟動JavaVM1203。JavaVM 1203在完成自初始化處理和其他處理后,在2213所指示的時間啟動服務(wù)管理器1204。在完成自初始化處理和其他處理后,服務(wù)管理器1204可以從2214所指示的時間開始接收將要再現(xiàn)的頻道的標識符。
從圖23明顯看出,即使希望再現(xiàn)的頻道的標識符被傳遞到服務(wù)管理器1204,服務(wù)管理器1204也不能在時間2212和時間2214之間接收任何標識符。因此,該頻道不能被再現(xiàn)。
因此,從時間2212到時間2214,再現(xiàn)單元1202b獨立地再現(xiàn)頻道,而沒有接收來自服務(wù)管理器的任何指令。
再現(xiàn)單元1202b可以直接訪問庫1201b,這使得再現(xiàn)單元1202b可以具有與組成Java庫1205的調(diào)諧器1205c、CA 1205d以及JMF1205c的功能等價的功能。首先,一旦被啟動,再現(xiàn)單元1202b讀出存儲在第二存儲單元510中的頻道標識符。這一頻道標識符是斷電前最后再現(xiàn)的頻道的標識符。作為替換,第二存儲單元510可以存儲一個指定的通電時將要再現(xiàn)的頻道的標識符,再現(xiàn)單元1202b可以讀取這樣的標識符。
然后,再現(xiàn)單元1202b參考存儲在第二存儲單元510中的頻道信息來獲得調(diào)諧信息。假設(shè)現(xiàn)在希望再現(xiàn)頻道標識符是“2”的頻道,參考圖1 5中所示的行1412,獲得對應(yīng)于該頻道的調(diào)諧信息“156MHz”。再現(xiàn)單元1202b通過OS 1201中的庫1201b的調(diào)諧器1201b1向QAM解調(diào)單元501傳遞該調(diào)諧信息。QAM解調(diào)單元501根據(jù)所提供的調(diào)諧信息對來自前端101的信號進行解調(diào),并將結(jié)果信號傳遞到POD 504。
然后,再現(xiàn)單元1202b通過OS 1201中的庫1201b的條件接入1201b2向POD 504提供解擾所需的信息。在所提供的信息的基礎(chǔ)上,POD 504對從QAM解調(diào)單元501所提供的信號進行解擾,并將結(jié)果信號傳遞到TS解碼器505。
最后,再現(xiàn)單元1202b如JMF 1205a的情況一樣,使用TS解碼器505獲得PAT和PMT信息,并獲得將要再現(xiàn)的音頻和視頻的包ID。再現(xiàn)單元1202b向OS 1201中的庫1201b的AV再現(xiàn)1201b3傳遞所獲得的音頻包ID和視頻包ID。作為響應(yīng),AV再現(xiàn)1201b3向TS解碼器505提供一組所接收的音頻包ID和音頻解碼器506作為輸出目的地,以及一組所接收的視頻包ID和視頻解碼器508作為輸出目的地。TS解碼器505基于所提供的包ID和輸出目的地執(zhí)行過濾。音頻解碼器506對從TS解碼器505提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便通過揚聲器507再現(xiàn)音頻。同時,視頻解碼器508對從TS解碼器505提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便在顯示器509上顯示視頻。
在時間2214后,再現(xiàn)單元1202b與通常情況下一樣向服務(wù)管理器1204傳遞頻道標識符。再現(xiàn)單元1202b根據(jù)來自服務(wù)管理器1204的通知,可以知道服務(wù)管理器何時能夠接收頻道標識符。更具體地,服務(wù)管理器1204調(diào)用再現(xiàn)單元1202b內(nèi)部所準備的函數(shù)。作為替換,再現(xiàn)單元1204可以為服務(wù)管理器1204注冊一個回調(diào)函數(shù),服務(wù)管理器1204可以調(diào)用這樣注冊的回調(diào)函數(shù)?;蛘?,服務(wù)管理器1204可以間接給出通知,諸如通過向JavaVM 1203提供通知,然后JavaVM 1203向再現(xiàn)單元1202b給出通知。換句話說,再現(xiàn)單元1202b可以通過多種方法知道服務(wù)管理器1204何時能夠接收頻道標識符。結(jié)果,在時間2214之前,只有視頻和音頻可以通過再現(xiàn)單元1202b再現(xiàn),而在時間2214之后,除了再現(xiàn)視頻和音頻,頻道中所包括的Java程序也可以被服務(wù)管理器1204執(zhí)行。通過由終端裝置500利用上述由再現(xiàn)單元1202b在啟動時所執(zhí)行的特殊處理,可以在服務(wù)管理器1204被啟動之前再現(xiàn)視頻和音頻。結(jié)果,對觀看者來說,可以縮短通電后用戶的等待時間。換句話說,可以縮短盡管通電但屏幕上沒有顯示的時間。
這里,再現(xiàn)單元1202b還可以在時間2212和時間2214之間,通過輸入單元513接收來自用戶的輸入。在這種情況下,如上所述,再現(xiàn)單元1202b獨立地再現(xiàn)視頻和音頻,同時將包括正在再現(xiàn)的視頻和音頻的頻道的標識符存儲到第二存儲單元510中。
圖24是示出Java程序“ZapperXlet”的構(gòu)造實例的圖。Java程序“ZapperXlet”由四個子程序組成頻道存儲子程序2301、啟動子程序2302、頻道再現(xiàn)子程序2303、以及輸入子程序2304。
Java程序“ZapperXlet”是存儲在圖22中所示的目錄“a”2112中的Java程序,它是存儲在第二存儲單元510中并在服務(wù)管理器1204被啟動時自動啟動的程序。
頻道存儲子程序2301通過Java庫1205的IO 1205g存儲由Java程序“ZapperXlet”所管理的頻道標識符。此外,它從第二存儲單元510讀出所存儲的頻道標識符。這里,第二存儲單元510中Java程序“ZapperXlet”所使用的區(qū)域與再現(xiàn)單元1202b所使用的區(qū)域不同。換句話說,第二存儲單元510中存儲兩種頻道標識符將由再現(xiàn)單元1202b存儲的頻道標識符和將由Java程序“ZapperXlet”存儲的頻道標識符。
啟動子程序2302是當Java程序“ZapperXlet”被啟動時首先被啟動的子程序。首先,啟動子程序2302調(diào)用再現(xiàn)庫1205f,并獲得當前再現(xiàn)的頻道的頻道標識符。然后,它將所獲得的頻道標識符傳遞到頻道再現(xiàn)子程序2303。同時,啟動子程序2302通過頻道存儲子程序2301將所獲得的頻道標識符的值存儲到第二存儲單元510中。但是,當頻道的再現(xiàn)沒有進行并且再現(xiàn)庫1205f沒有返回頻道標識符時,啟動子程序2302通過頻道存儲子程序2301從第二存儲單元510讀取所存儲的頻道標識符,并將其傳遞到頻道再現(xiàn)子程序2303。此外,當?shù)诙鎯卧?10在這里沒有存儲任何頻道標識符時,啟動子程序2302向頻道再現(xiàn)子程序2303傳遞預(yù)定的默認頻道的標識符。
頻道再現(xiàn)子程序2303向服務(wù)管理器1204提供所接收的頻道標識符,以便切換到另一個頻道。
輸入子程序2304通過Java庫1205的AWT 1205h從輸入單元513接收關(guān)于用戶所輸入按鍵的通知。更具體地,輸入子程序2304接收按鍵的標識符。輸入子程序2304向頻道再現(xiàn)子程序2303傳遞對應(yīng)于所接收的按鍵標識符的頻道標識符。這里,本發(fā)明的本實施例不受按鍵標識符和頻道標識符之間對應(yīng)關(guān)系的限制。輸入單元513可以配備有從“0”到“9”的數(shù)字鍵,以便使得用戶可以輸入對應(yīng)于頻道標識符的數(shù)字,或者如同再現(xiàn)單元1202b的情況那樣,可以在按下上移光標按鈕1101或下移光標按鈕1102時將一個頻道頻道切換到另一個頻道。
這里,當Java程序通過AWT 1205h從輸入單元513接收用戶的按鍵輸入時,再現(xiàn)單元1202b不能從輸入單元513接收用戶的任何按鍵輸入。
因此,當Java程序“ZapperXlet”運行時,Java程序“ZapperXlet”可以通過AWT 1205h從輸入單元513接收用戶的按鍵輸入并因此可以等價于再現(xiàn)單元1202b工作。此外,從這一時間點開始,再現(xiàn)單元1202b由于不能從輸入單元513接收任何輸入而基本上不工作,因此程序“ZapperXlet”繼承了再現(xiàn)單元1202b的操作。
如上所述,通過提供再現(xiàn)庫1205f,Java程序可以在啟動程序“ZapperXlet”之前,獲得正在被再現(xiàn)單元1202b再現(xiàn)的頻道的標識符。因此,當Java程序具有再現(xiàn)單元1202b的功能性時,它就可以繼承并再現(xiàn)再現(xiàn)單元1202b所再現(xiàn)的頻道。這使得這樣的Java程序可以繼承頻道切換功能,而不會使用戶感到迷惑。
圖25示出再現(xiàn)庫1205f所提供的效果的實例,該圖是示出在終端裝置500的啟動時間,再現(xiàn)單元1202b和Java程序“ZapperXlet”被啟動的順序的示意圖。在這一圖中,橫軸表示經(jīng)過的時間。箭頭2401的左邊緣表示再現(xiàn)單元1202b被啟動并且在這一啟動后持續(xù)運行。類似地,箭頭2402的左邊緣表示Java程序“ZapperXlet”被啟動并且在這一啟動后持續(xù)運行。2405表示在各個時間點實際再現(xiàn)的頻道的標識符。
2405表示終端裝置500在各個時間點再現(xiàn)的頻道的標識符。其中示出頻道標識符為“3”的頻道在時間2411和時間2412之間再現(xiàn),頻道標識符為“2”的頻道在時間2412和時間2414之間再現(xiàn),而頻道標識符為“1”的頻道在時間2414之后再現(xiàn)。
時間2414是在終端裝置500通電后再現(xiàn)單元1202b被啟動的時間。這里,假設(shè)再現(xiàn)單元1202b再現(xiàn)存儲在第二存儲單元510中的頻道標識符為“3”的頻道。時間2412指示用戶向輸入單元513輸入切換頻道的指令,并且再現(xiàn)單元1202b將正在再現(xiàn)的頻道從頻道標識符為“3”的頻道切換到頻道標識符為“2”的頻道。時間2413是Java程序“ZapperXlet”被啟動的時間。這里,Java程序“ZapperXlet”通過再現(xiàn)庫1205f知道正在再現(xiàn)頻道標識符為“2”的頻道,并不作任何操作。時間2414指示用戶向輸入單元513輸入切換頻道的指令,并且Java程序“ZapperXlet”將正在再現(xiàn)的頻道從頻道標識符為“2”的頻道切換到頻道標識符為“1”的頻道。
這里,為了比較并說明本實施例所提供的效果,考慮再現(xiàn)庫1205f不存在的情況。參考圖25,再現(xiàn)單元1202b在時間2411再現(xiàn)頻道標識符為“3”的頻道,在時間2412接收用戶的指令并再現(xiàn)頻道標識符為“2”的頻道。Java程序“ZapperXlet”在時間2413使用頻道存儲子程序2301讀出其存儲在第二存儲單元510中的頻道標識符,并再現(xiàn)具有這一頻道標識符的頻道。如果這一頻道的標識符是“4”,那么立即中止再現(xiàn)用戶所選擇的頻道標識符為“2”的頻道,并開始再現(xiàn)頻道標識符為“4”的頻道。這使得用戶感到驚訝并需要用戶再次選擇她/他希望觀看的頻道標識符為“2”的頻道。
這里,考慮另一種再現(xiàn)庫1205f不存在的情況。這里,假設(shè)Java程序“ZapperXlet”在啟動時間不再現(xiàn)任何頻道。此外,在終端裝置500是一個期望Java程序“ZapperXlet”再現(xiàn)頻道的終端而因此再現(xiàn)單元1202b不再現(xiàn)任何頻道、或者再現(xiàn)單元1202b不存在的情況下,在通電后不自動再現(xiàn)頻道。由于用戶總是要在通電后指定頻道,所以這對她/他很麻煩。此外,這難以判斷終端是否正常工作。如上所述,通過采用再現(xiàn)庫1205f,通過使得再現(xiàn)單元1202b在服務(wù)管理器1204被啟動前執(zhí)行應(yīng)當由Java程序“ZapperXlet”進行的部分操作,可以在終端裝置500通電后不久向用戶呈現(xiàn)包括在頻道中的視頻和音頻。
圖26是示出再現(xiàn)單元1202b在啟動時間所進行的操作實例的流程圖。
參考圖26,當被啟動后,再現(xiàn)單元1202b將內(nèi)部變量“服務(wù)管理器啟動標志”設(shè)置為“假”(步驟S2501)。然后,再現(xiàn)單元1202b通過頻道存儲子程序從第二存儲單元510提取頻道標識符(步驟S2502)。參考變量“服務(wù)管理器啟動標志”的值(步驟S2503),當該值是“假”時,再現(xiàn)單元1202b再現(xiàn)包括在對應(yīng)于所獲得的頻道標識符的頻道中的視頻和音頻(步驟S2504),反之當該值是“真”時,再現(xiàn)單元1202b將所獲得的頻道標識符傳遞到服務(wù)管理器1204以請求再現(xiàn)該頻道(步驟S2505)。
隨后,一旦接收到服務(wù)管理器1204已經(jīng)啟動的通知(步驟S2506),再現(xiàn)單元1202b將內(nèi)部變量“服務(wù)管理器啟動標志”設(shè)置為“真”(步驟S2507)?;蛘撸坏┙邮盏絹碜杂脩舻妮斎?步驟S2508),再現(xiàn)單元1202b獲得或者計算對應(yīng)于這一輸入的頻道標識符(步驟S2509),通過移動控制到步驟S2503把要再現(xiàn)的頻道切換到另一個頻道。
圖27是示出Java程序“ZapperXlet”操作實例的流程圖。
參考圖27,Java程序“ZapperXlet”從再現(xiàn)庫1205f獲得頻道的再現(xiàn)狀態(tài)(步驟S2601)。如果沒有正在再現(xiàn)的頻道(步驟S2602),Java程序“ZapperXlet”獲得存儲在第二存儲單元510中的頻道標識符(步驟S2603)。如果不能獲得頻道標識符(步驟S2604),Java程序“ZapperXlet”使用預(yù)定的默認值作為頻道標識符(步驟S2605)。然后,Java程序“ZapperXlet”將該頻道標識符傳遞到服務(wù)管理器以請求再現(xiàn)該頻道(步驟S2606)。
注意在本實施例中,再現(xiàn)單元1202b只再現(xiàn)視頻和音頻,但是它還可以再現(xiàn)字幕、圖文電視(teletext)、隱藏字幕(closed caption)、及其它。為了達到這一目的,終端裝置500應(yīng)當配備有子再現(xiàn)模塊,用于再現(xiàn)字幕、圖文電視、以及隱藏字幕,并且再現(xiàn)單元1202b應(yīng)當為這些子再現(xiàn)模塊傳遞所需的信息。
此外,本實施例展示了一個實例,其中在再現(xiàn)視頻和音頻過程中,再現(xiàn)單元1202b在Java程序“ZapperXlet”之前執(zhí)行了該Java程序“ZapperXlet”的部分功能,但本實施例也可以應(yīng)用于另一個操作對象。例如,在再現(xiàn)動畫的過程中,本實施例還可以應(yīng)用于這樣的情況,即存儲在終端裝置中的子程序只顯示動畫的第一幀,而Java程序繼承并顯示后續(xù)的幀。在這種情況下,在終端裝置中具有一種機制,用于向Java程序通知存儲在終端裝置中的子程序所執(zhí)行的顯示的狀態(tài)。
此外,在本實施例中,當Java程序通過AWT 1205h從輸入單元513接收用戶的按鍵輸入時,再現(xiàn)單元1202b不能從輸入單元513接收用戶的任何按鍵輸入。為了實現(xiàn)這一目的,Java庫1205可以配備有再現(xiàn)單元終止庫,用于顯式地終止再現(xiàn)單元1202b的操作。通過調(diào)用這一再現(xiàn)單元終止庫,Java程序可以終止再現(xiàn)單元1202b的操作,以便終止該再現(xiàn)單元1202b所執(zhí)行的頻道再現(xiàn)。作為替換,如果再現(xiàn)單元終止庫被設(shè)計為不向再現(xiàn)單元1202b通知來自輸入單元513的用戶輸入,則也可以達到相同的效果。
這一再現(xiàn)單元終止庫不僅可以用于再現(xiàn)單元1202b,還可以用于當下載的Java程序希望終止預(yù)存儲的子程序的功能并用該Java程序的功能代替該功能時。更具體地,Java程序可以向再現(xiàn)單元終止庫指示它希望終止的功能。
(第二實施例)本實施例在Java程序“ZapperXlet”的操作上與第一實施例不同。
圖28是示出Java程序“ZapperXlet”的操作實例的流程圖。步驟中分配了與第一實施例中相同的附圖標記的操作與第一實施例相同,因此略去對其的描述。與第一實施例不同的是,在步驟S2602中,當正在再現(xiàn)頻道時(圖中為是)處理移動到步驟S2606,并且將這一正在再現(xiàn)的頻道的標識符傳遞到服務(wù)管理器1204以請求再現(xiàn)。
結(jié)果,當將要再現(xiàn)的視頻和音頻相同時,可以執(zhí)行頻道中所定義的Java程序。
在本實施例中,由于盡管頻道相同,但是Java程序“ZapperXlet”仍然在步驟S2606中調(diào)用服務(wù)管理器1204,所以視頻和音頻的再現(xiàn)終止一次,然后在此之后再次再現(xiàn)相同的視頻和音頻。這意味著視頻和音頻可能被中斷。為了避免這種情況,服務(wù)管理器1204參考再現(xiàn)庫1205f,當正在再現(xiàn)的頻道的標識符與從Java程序接收的頻道標識符相同時,可以不必再次再現(xiàn)視頻和音頻。因此,可以防止視頻和音頻被中斷。作為替換,如果不是服務(wù)管理器1204而是JMF 1205a參考再現(xiàn)庫1205f,并且當正在再現(xiàn)的頻道的標識符與從服務(wù)管理器1204接收的頻道標識符相同時,可以不必再次再現(xiàn)視頻和音頻,也可以實現(xiàn)相同的效果。換句話說,如果服務(wù)管理器1204一接收到頻道標識符,就使用再現(xiàn)視頻和音頻所需的子程序參考再現(xiàn)庫1205f,并且當正在再現(xiàn)的頻道的標識符與服務(wù)管理器1204所接收的頻道標識符相同時,不再次再現(xiàn)視頻和音頻,也可以實現(xiàn)相同的效果。
(第三實施例)在第一實施例中,再現(xiàn)單元1202b在直到服務(wù)管理器1204準備好接收頻道標識符的處理和在準備好接收頻道標識符之后的處理之間進行了分叉。
通過提供頻道標識符接收單元消除這種情況。
圖29是示出在實施例中的CPU 514將要執(zhí)行的程序2800的結(jié)構(gòu)的圖。
程序2800由多個子程序組成。更具體地,它由OS 1201、EPG2802、JavaVM 1203、服務(wù)管理器2804、Java庫1205、以及頻道標識符接收單元2806組成。
下面,分配了與第一實施例中的組成元件相同的附圖標記的組成元件起到相同的作用,因此略去對其的描述。
EPG 2802由用于向用戶顯示節(jié)目列表以及用于接收來自用戶的輸入的節(jié)目顯示單元1202a、和用于選擇頻道的再現(xiàn)單元2802b組成。當再現(xiàn)頻道時,再現(xiàn)單元2802b向頻道標識符接收單元2806傳遞頻道標識符,以請求再現(xiàn)該頻道。再現(xiàn)單元2802b的操作不考慮服務(wù)管理器1204的狀態(tài),或者在單獨更新PAT和PMT后不再現(xiàn)視頻和音頻。
服務(wù)管理器2804與第一實施例中的服務(wù)管理器1204的不同之處在于,服務(wù)管理器2804不是從再現(xiàn)單元1202b接收頻道標識符,而是從頻道標識符接收單元2806接收頻道標識符。其他操作是相同的。
頻道標識符接收單元2806從再現(xiàn)單元2802b接收頻道標識符。
在服務(wù)管理器2804不能接收任何頻道標識符的狀態(tài)期間,頻道標識符接收單元2806可以等效于調(diào)諧器1205c、CA 1205d、以及JMF1205c工作。頻道標識符接收單元2806參考存儲在第二存儲單元510中的頻道信息,以獲得對應(yīng)于所提供的頻道標識符的調(diào)諧信息。假設(shè)現(xiàn)在希望再現(xiàn)頻道標識符為“2”的頻道,參考圖15中所示的行1412,獲得對應(yīng)于該頻道的調(diào)諧信息“156MHz”。頻道標識符接收單元2806通過OS 1201中的庫1201b的調(diào)諧器1201b1將調(diào)諧信息傳遞到QAM解調(diào)單元501。QAM解調(diào)單元501根據(jù)所提供的調(diào)諧信息,對從前端101發(fā)送的信號進行解調(diào),并將結(jié)果信號傳遞到POD 504。
然后,頻道標識符接收單元2806通過OS 1201中的庫1201b的條件接入1201b2向POD 504提供解擾所需的信息。基于所提供的信息,POD 504對從QAM解調(diào)單元501提供的信號進行解擾,并將結(jié)果信號傳遞到TS解碼器505。
最后,頻道標識符接收單元2806與在JMF 1205a中的情況一樣,使用TS解碼器505獲得PAT和PMT信息,并獲得將要再現(xiàn)的音頻和視頻的包ID。頻道標識符接收單元2806將所獲得的音頻包ID和視頻包ID傳遞到OS 1201中庫1201b的AV再現(xiàn)1201b3。作為對其的響應(yīng),AV再現(xiàn)1201b3向TS解碼器505提供一組所接收的音頻包ID和音頻解碼器506作為輸出目的地,以及一組所接收的視頻包ID和視頻解碼器508作為輸出目的地。TS解碼器505基于所提供的包ID和輸出目的地執(zhí)行過濾。音頻解碼器506對從TS解碼器505提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便通過揚聲器507再現(xiàn)音頻。同時,視頻解碼器508對從TS解碼器505提供的包執(zhí)行數(shù)字到模擬的轉(zhuǎn)換,以便在顯示器509上顯示視頻。
在服務(wù)管理器2804準備好接收頻道標識符后,頻道標識符接收單元2806如同正常情況下一樣向服務(wù)管理器2804傳遞頻道標識符。頻道標識符接收單元2806根據(jù)來自服務(wù)管理器2804的通知,可以知道服務(wù)管理器2804何時能夠接收頻道標識符。更具體地,服務(wù)管理器2804調(diào)用頻道標識符接收單元2806內(nèi)部所準備的函數(shù)。作為替換,頻道標識符接收單元2806可以為服務(wù)管理器2804注冊一個回調(diào)函數(shù),服務(wù)管理器2804可以調(diào)用這樣注冊的回調(diào)函數(shù)?;蛘?,服務(wù)管理器2804可以間接給出通知,諸如通過向JavaVM 1203提供通知,然后JavaVM 1203向頻道標識符接收單元2806給出通知。換句話說,頻道標識符接收單元2806可以通過多種方法知道服務(wù)管理器1204何時能夠接收頻道標識符。通過頻道標識符接收單元2806考慮服務(wù)管理器2804的狀態(tài)而操作,當從輸入單元513接收用戶的輸入時,再現(xiàn)單元2802b總是必須以相同的方式執(zhí)行操作。這使得可以通過使用比第一實施例中的再現(xiàn)單元1202b更少的執(zhí)行代碼以及更少的人力來實現(xiàn)再現(xiàn)單元2802b。
此外,頻道標識符接收單元2806將最近接受的頻道標識符存儲到第二存儲單元510中。然后,當服務(wù)管理器2804準備好接受頻道標識符時,頻道標識符接收單元2806將存儲在第二存儲單元510中的頻道標識符傳遞到服務(wù)管理器2804,以請求再現(xiàn)該頻道。因此,即使在沒有諸如第二實施例中描述的Java程序“ZapperXlet”這樣的Java程序時,也可以啟動包括在該頻道中的Java程序。
注意如同在第一實施例的情況下一樣,根據(jù)本發(fā)明的本實施例不受頻道標識符接收單元2806通過何種方法知道服務(wù)管理器2804準備好接收頻道標識符的限制。頻道標識符接收單元2806可以通過第一實施例中所描述的多種方法知道服務(wù)管理器2804準備好接收頻道標識符。
圖30是示出頻道標識符接收單元2806執(zhí)行的操作實例的流程圖。
參考圖30,當被啟動時,頻道標識符接收單元2806將內(nèi)部變量“服務(wù)管理器啟動標志”設(shè)置為“假”(步驟S2901)。然后,一接收到頻道標識符(步驟S2902),頻道標識符接收單元2806就參考變量“服務(wù)管理器啟動標志”的值(步驟S2903)。當該值是“假”時,頻道標識符接收單元2806再現(xiàn)包括在對應(yīng)于其所獲得的頻道標識符的頻道中的視頻和音頻(步驟S2904),并將所接受的頻道標識符存儲到第二存儲單元510(步驟S2905)。同時,當該值是“真”時,頻道標識符接收單元2806將所接受的頻道標識符傳遞到服務(wù)管理器2804以請求再現(xiàn)該頻道(步驟S2906)。
隨后,一接收到服務(wù)管理器2804已經(jīng)啟動的通知(步驟S2907),頻道標識符接收單元2806將內(nèi)部變量“服務(wù)管理器啟動標志”設(shè)置為“真”(步驟S2908)。此外,頻道標識符接收單元2806向服務(wù)管理器2804傳遞最后存儲到第二存儲單元510中的頻道標識符,以便請求再現(xiàn)該頻道(步驟S2909)。
注意下面所描述的應(yīng)用對第一、第二、和第三實施例都是可行的。
可以通過將存儲在ROM 512中的信息存儲到第二存儲單元510中來略去ROM 512。此外,第二存儲單元510還可以由多個子第二存儲單元組成,并且每個子第二存儲單元存儲不同的信息,以便以段的形式存儲信息。例如,一個子第二存儲單元可以只存儲調(diào)諧信息,另一個子第二存儲單元可以存儲OS 1201的庫1201b,而另一個不同的子第二存儲單元可以存儲下載的Java程序。
本發(fā)明可以應(yīng)用到多種裝置,假設(shè)這些裝置是諸如個人計算機和移動電話這樣的信息裝置。
同樣,本發(fā)明可以應(yīng)用到人造衛(wèi)星和地面?zhèn)魉?。在這種情況下的通用構(gòu)造是其中的QAM解調(diào)單元501被適當?shù)慕庹{(diào)單元替代,然后該解調(diào)單元直接連到TS解碼器。在這種情況下,不需要QPSK解調(diào)單元502、QPSK調(diào)制單元503、以及POD 504。用于與前端通信的系統(tǒng)通過增加諸如調(diào)制解調(diào)器這樣組成元件來實現(xiàn)。
此外,POD 504在上述實施例中是可分離的,但是如果POD 504是嵌入式的,則也可以實現(xiàn)本發(fā)明。如果POD 504是嵌入式的,則可以去掉POD 504的CPU 706,并且CPU 514執(zhí)行CPU 706的操作。
此外,如果不僅下載的Java程序而且預(yù)存儲的Java程序都要在POD庫1205e中注冊,則也可以實現(xiàn)本發(fā)明。此外,還可以提供插槽單元以用于插入/彈出諸如SD存儲卡這樣的可分離的存儲介質(zhì),以便加載Java程序。同樣,可以提供連到網(wǎng)絡(luò)的網(wǎng)絡(luò)單元,以便從因特網(wǎng)加載Java程序。
盡管上面只詳細描述了本發(fā)明的一些典型實施例,本領(lǐng)域技術(shù)人員將容易地意識到可以在典型實施例中進行許多修改,而在本質(zhì)上不背離本發(fā)明的新穎啟示和優(yōu)點。因此,所有這些修改都被試圖包括在本發(fā)明的范圍內(nèi)。
工業(yè)實用性本發(fā)明適用于作為用于執(zhí)行程序的裝置等使用,尤其是作為通過通信路徑等下載程序并執(zhí)行這樣的下載程序的程序執(zhí)行裝置等,諸如數(shù)字電視接收機。
權(quán)利要求
1.一種程序執(zhí)行裝置,具有用于執(zhí)行Java程序的Java VM并具有嵌入式程序,其中所述嵌入式程序具有的部分功能是所述Java程序的功能的一部分,所述程序執(zhí)行裝置包含執(zhí)行單元,用于執(zhí)行所述嵌入式程序和所述Java VM;以及信息供應(yīng)單元,用于向所述Java程序提供作為所述嵌入式程序的運行結(jié)果而生成的信息。
2.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,其中所述信息供應(yīng)單元向所述Java程序提供在所述Java程序使用所述信息供應(yīng)單元之前作為所述嵌入式程序的運行結(jié)果而生成的所述信息。
3.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,其中所述信息供應(yīng)單元向所述Java程序提供在所述Java程序被啟動之前作為所述嵌入式程序的運行結(jié)果而生成的所述信息。
4.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,其中所述信息供應(yīng)單元向所述Java程序提供在所述嵌入式程序被終止之前作為所述嵌入式程序的運行結(jié)果而生成的所述信息。
5.根據(jù)權(quán)利要求1所述的程序執(zhí)行裝置,還包含嵌入式程序終止指令單元,所述嵌入式程序終止指令單元用于由所述Java程序使用來給出終止所述嵌入式程序的指令。
6.一種程序執(zhí)行裝置,包含Java VM,其執(zhí)行Java程序;輸入單元,用于接受輸入;接收單元,用于接收廣播;頻道再現(xiàn)單元,用于再現(xiàn)包括在由所述接收單元接收的所述廣播中的頻道;再現(xiàn)程序,其基于來自所述輸入單元的指令,向所述頻道再現(xiàn)單元指示將要再現(xiàn)的頻道;執(zhí)行單元,用于執(zhí)行所述再現(xiàn)程序和所述Java VM;以及信息供應(yīng)單元,用于向所述Java程序提供由所述再現(xiàn)程序最后指示的頻道。
7.根據(jù)權(quán)利要求6所述的程序執(zhí)行裝置,還包含第一存儲單元,用于存儲所述Java程序;以及第二存儲單元,用于存儲所述再現(xiàn)程序。
8.根據(jù)權(quán)利要求6所述的程序執(zhí)行裝置,其中所述頻道再現(xiàn)單元再現(xiàn)包括在所述頻道中的視頻和音頻。
9.根據(jù)權(quán)利要求6所述的程序執(zhí)行裝置,還包含服務(wù)再現(xiàn)單元,所述服務(wù)再現(xiàn)單元用于再現(xiàn)包括在所述頻道中的視頻、音頻、和Java程序。
10.根據(jù)權(quán)利要求9所述的程序執(zhí)行裝置,其中所述服務(wù)再現(xiàn)單元部分或全部地由所述Java VM執(zhí)行,并從所述Java程序接受將要再現(xiàn)的服務(wù)。
11.根據(jù)權(quán)利要求10所述的程序執(zhí)行裝置,其中所述服務(wù)再現(xiàn)單元從所述再現(xiàn)單元接受將要再現(xiàn)的所述服務(wù),以及當所述服務(wù)再現(xiàn)單元沒有接受將要再現(xiàn)的所述服務(wù)時,所述再現(xiàn)單元使用所述頻道再現(xiàn)單元來再現(xiàn)所述頻道,而當所述服務(wù)再現(xiàn)單元接受將要再現(xiàn)的所述服務(wù)時,使用所述服務(wù)再現(xiàn)單元來再現(xiàn)所述頻道。
12.根據(jù)權(quán)利要求9所述的程序執(zhí)行裝置,還包含服務(wù)接受開始通知單元,所述服務(wù)接受開始通知單元用于通知所述服務(wù)復(fù)制單元已經(jīng)開始接受將要再現(xiàn)的服務(wù)。
13.一種程序執(zhí)行裝置,包含Java VM,其執(zhí)行Java程序;輸入單元,用于接受輸入;接收單元,用于接收廣播;頻道再現(xiàn)單元,用于再現(xiàn)包括在由所述接收單元接收的所述廣播中的頻道包括的視頻和音頻;服務(wù)再現(xiàn)單元,用于再現(xiàn)包括在由所述接收單元接收的所述廣播中的所述頻道包括的視頻、音頻和數(shù)據(jù);頻道標識符接受單元,用于接收將要再現(xiàn)的頻道的標識符,并且當所述服務(wù)再現(xiàn)單元可以再現(xiàn)頻道時使用所述服務(wù)再現(xiàn)單元來再現(xiàn)所述頻道,而當所述服務(wù)再現(xiàn)單元不能再現(xiàn)頻道時使用所述頻道再現(xiàn)單元來再現(xiàn)所述頻道;再現(xiàn)程序,其基于來自所述輸入單元的指令,向所述頻道標識符接受單元指示將要再現(xiàn)的所述頻道的所述標識符;執(zhí)行單元,用于執(zhí)行所述再現(xiàn)程序和所述Java程序;以及信息供應(yīng)單元,用于向所述Java程序提供由所述再現(xiàn)程序最后向所述頻道標識符接受單元指示的所述頻道。
14.根據(jù)權(quán)利要求13所述的程序執(zhí)行裝置,還包含頻道標識符存儲單元,所述頻道標識符存儲單元用于存儲由所述頻道標識符接受單元接受的所述頻道的所述標識符,其中當所述服務(wù)再現(xiàn)單元可以再現(xiàn)頻道時,所述頻道標識符接受單元向所述服務(wù)再現(xiàn)單元提供存儲在所述頻道標識符存儲單元中的所述頻道的所述標識符,并再現(xiàn)所述頻道。
15.一種計算機可讀的記錄介質(zhì),其中存儲了如以下單元一樣工作的程序Java VM,其執(zhí)行Java程序;嵌入式程序,其具有的部分功能是所述Java程序的功能的一部分;執(zhí)行單元,用于執(zhí)行所述嵌入式程序和所述Java VM;以及信息供應(yīng)單元,用于向所述Java程序提供作為所述嵌入式程序的運行結(jié)果而生成的信息。
全文摘要
嵌入式程序1200包含Java程序的部分功能。嵌入式程序1200在Java程序的啟動處理過程中執(zhí)行該部分功能。這樣,顯得縮短了啟動時間。進一步,本發(fā)明向Java程序提供關(guān)于嵌入式程序1200的操作狀態(tài)的信息,由此使得在Java程序啟動處理完成時能夠連續(xù)執(zhí)行Java程序。
文檔編號G06F9/48GK1864139SQ200480029008
公開日2006年11月15日 申請日期2004年8月4日 優(yōu)先權(quán)日2003年8月5日
發(fā)明者鹽見隆一, 渡邊茂晃, 今西芳典 申請人:松下電器產(chǎn)業(yè)株式會社