專利名稱:控制執(zhí)行音頻視頻交互程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種控制執(zhí)行音頻視頻交互(AVI)可執(zhí)行的程序(programme)成分的方法。
已經(jīng)提出交互式電視接收系統(tǒng)的方案,其中的電視接收機(jī)包括根據(jù)廣播臺(tái)并可以響應(yīng)用戶加入的數(shù)據(jù)而可編程的處理器,產(chǎn)生迭加在廣播視頻圖像上的屏幕上圖形顯示,產(chǎn)生和廣播音頻相結(jié)合的聲音和/或與廣播臺(tái)或其他外部數(shù)據(jù)處理業(yè)務(wù)結(jié)合的交換數(shù)據(jù)。在這種系統(tǒng)中,廣播地點(diǎn)(location)包括產(chǎn)生交互應(yīng)用程序信息的計(jì)算機(jī)系統(tǒng),該信息包括可執(zhí)行的代碼和數(shù)據(jù),將作為附加成分的交互式應(yīng)用程序信息與相關(guān)的視頻和音頻電視信號(hào)分量相結(jié)合。在電視接收機(jī)中的處理器從廣播臺(tái)接收交互式應(yīng)用程序信息,執(zhí)行由那些信息表示的交互式應(yīng)用程序,產(chǎn)生將與電視視頻與音頻相結(jié)合的圖形和聲音,并且處理通過(guò)遙控單元接收的用戶輸入。
在建議的AVI系統(tǒng)中,來(lái)自廣播臺(tái)的復(fù)合AVI信號(hào)是分組數(shù)據(jù)流形式的廣播,它包含多個(gè)時(shí)分復(fù)用的分組業(yè)務(wù)。每個(gè)分組業(yè)務(wù)載送復(fù)合AVI信號(hào)的不同成分信號(hào)。例如,一個(gè)業(yè)務(wù)載送視頻成分,另一個(gè)載送音頻成分,還有一個(gè)載送交互式應(yīng)用程序信息成分。還可以有載送立體聲和SAP音頻頻道和/或閉合字幕信息等的其他業(yè)務(wù)。另外,某些分組數(shù)據(jù)流可以包含載送多于1個(gè)AVI程序的分量信號(hào)的分組業(yè)務(wù)。每個(gè)分組業(yè)務(wù)具有與它相關(guān)的獨(dú)立的業(yè)務(wù)成分識(shí)別符(SCID),并且在該分組業(yè)務(wù)中每個(gè)分組都有業(yè)務(wù)識(shí)別符。
另外,在提出的AVI系統(tǒng)中,每個(gè)分組業(yè)務(wù)載送程序引導(dǎo)并包括預(yù)定的業(yè)務(wù)識(shí)別符。由程序引導(dǎo)分組業(yè)務(wù)載送的數(shù)據(jù)使載送這些成分的分組業(yè)務(wù)的業(yè)務(wù)識(shí)別符與AVI程序的成分有關(guān)聯(lián)。利用這個(gè)數(shù)據(jù),載送要求的AVI程序成分的分組業(yè)務(wù)可以從分組的數(shù)據(jù)流中抽取。
在AVI信號(hào)分組數(shù)據(jù)流中的成分信號(hào)由一個(gè)或多個(gè)傳輸單元載送,每個(gè)單元由多個(gè)分組組成。在任何傳輸單元中的第1個(gè)分組是標(biāo)題分組,在傳輸單元中的其余的分組是與數(shù)據(jù)分組有關(guān)的。標(biāo)題分組包含有關(guān)隨后數(shù)據(jù)的信息,而且相關(guān)的數(shù)據(jù)分組載送構(gòu)成成分信號(hào)部分的數(shù)據(jù)。不同的傳輸單元可以包含不同數(shù)量的數(shù)據(jù)分組,將成分信號(hào)劃分成為傳輸單元會(huì)受到在希望的時(shí)間傳送不同的成分信號(hào)到觀看者的地點(diǎn)所必須的時(shí)序的影響,或者受到其他的實(shí)時(shí)因素的影響。
交互式應(yīng)用程序成分是由一個(gè)或多個(gè)代碼模塊(包含可執(zhí)行的代碼)組成,可能是一個(gè)或多個(gè)數(shù)據(jù)模塊,以及包含描述代碼的數(shù)據(jù)和組成交互式應(yīng)用程序成分的數(shù)據(jù)模塊的目錄模塊。在應(yīng)用程序數(shù)據(jù)成分流中這些模塊連續(xù)地重復(fù)。這些模塊各自被單獨(dú)地識(shí)別,而且由傳輸單元載送,正如前所述,在傳輸單元中標(biāo)題分組還包含模塊的識(shí)別符和在模塊內(nèi)隨后數(shù)據(jù)分組內(nèi)的數(shù)據(jù)所屬的位置。該交互式應(yīng)用程序信息成分還包含用以控制執(zhí)行AVI應(yīng)用程序的特殊的信號(hào)。例如,一個(gè)信號(hào)可以指示當(dāng)前執(zhí)行的AVI應(yīng)用程序暫停執(zhí)行;另一個(gè)信號(hào)可以指示當(dāng)前暫停的AVI應(yīng)用程序重新開(kāi)始執(zhí)行;而且還有一個(gè)信號(hào)可以指示當(dāng)前執(zhí)行的應(yīng)用程序中止執(zhí)行。這些信號(hào)可以結(jié)合在AVI程序成分分組業(yè)務(wù)內(nèi)的信號(hào)分組中。
在AVI接收機(jī)中的處理器在系統(tǒng)裝入程序的控制下首先從數(shù)據(jù)流中提取目錄模塊,而且利用包含在目錄中的信息確定哪個(gè)代碼模塊首先被執(zhí)行。稱之為自動(dòng)啟動(dòng)模塊的代碼模塊于是從數(shù)據(jù)流中被取出并裝入到存儲(chǔ)器中,當(dāng)自動(dòng)啟動(dòng)模塊被全部裝入存儲(chǔ)器時(shí),處理器開(kāi)始執(zhí)行代碼模塊。在它的執(zhí)行過(guò)程中,代碼模塊可以從目錄模塊中識(shí)別的數(shù)據(jù)模塊請(qǐng)求數(shù)據(jù)。這些數(shù)據(jù)模塊于是被取出來(lái)并裝入到存儲(chǔ)器中。當(dāng)該模塊已經(jīng)完全裝入存儲(chǔ)器中時(shí),該請(qǐng)求的代碼模塊于是被通知,并且執(zhí)行程序連續(xù)地處理這些數(shù)據(jù)。這還可以使一個(gè)代碼模塊鏈接到隨后的一個(gè)。在這種情況下,當(dāng)前的代碼模塊發(fā)出鏈接列出在目錄模塊中新的一個(gè)代碼模塊的請(qǐng)求,而且它的存儲(chǔ)空間是空的。被請(qǐng)求的代碼模塊于是從數(shù)據(jù)流中被提取出來(lái),并且裝入到存儲(chǔ)器中。當(dāng)它完全裝入存儲(chǔ)器中時(shí),它隨后被執(zhí)行了。其他的功能也是可能的,并且在以下描述。
不象其他的分布式計(jì)算機(jī)系統(tǒng),由AVI接收機(jī)接收的AVI程序成分在任何時(shí)候可以變化。例如,AVI程序可以為非商業(yè)AVI或?yàn)樯虡I(yè)AVI所中斷,當(dāng)然這包括不同的AVI節(jié)目。或者一個(gè)觀看者可以從一個(gè)AVI節(jié)目到另一個(gè)AVI節(jié)目改變頻道。它必須保持AVI可執(zhí)行的代碼和由那個(gè)代碼產(chǎn)生的聲音和圖形間的適當(dāng)?shù)耐?,同時(shí)接收音頻和視頻成分。
根據(jù)本發(fā)明的原理,在接收包含目錄和具有與目錄中的識(shí)別符有關(guān)的AVI程序的分組數(shù)據(jù)流的音頻和視頻交互式(AVI)接收機(jī)中,控制執(zhí)行AVI程序的方法包括下列步驟第一,響應(yīng)出現(xiàn)的分組數(shù)據(jù)流中的AVI程序,將AVI程序裝入存儲(chǔ)器。然后開(kāi)始執(zhí)行裝入的AVI程序。當(dāng)在分組數(shù)據(jù)流中用于識(shí)別不同的AVI程序的目錄被檢測(cè)到時(shí),就把執(zhí)行的AVI程序減小到最小。
圖1是引入的本發(fā)明的AVI信號(hào)解碼器的部分的方框圖;
圖2是圖1所示的處理單元40所執(zhí)行的軟件的軟件結(jié)構(gòu)圖;
圖3是有益于理解從AVI程序中的數(shù)據(jù)成分中提取模塊的流程圖和設(shè)計(jì)圖;
圖4是有益于理解從AVI程序中的數(shù)據(jù)成分抽取模塊的部分以方框形式和部分以存儲(chǔ)器的設(shè)計(jì)圖形式的示圖;
圖5是表示系統(tǒng)裝入程序的初始化功能的流程圖;
圖6是表示系統(tǒng)裝入程序的數(shù)據(jù)流監(jiān)視功能的狀態(tài)轉(zhuǎn)換圖。
圖1是結(jié)合于本發(fā)明中的AVI信號(hào)解碼器的部分的方框圖。在圖1中示出了在每個(gè)觀看者場(chǎng)所安裝的解碼器,在該場(chǎng)所它按照要求參與AVI程序。在圖1中,傳輸機(jī)構(gòu)(未示出)耦合到解碼器的輸入端5。輸入端5耦合到調(diào)諧器10的輸入端。調(diào)諧器10的輸出端接到AVI程序成分解碼器30的數(shù)據(jù)輸入端。程序成分解碼器30的數(shù)據(jù)輸出端接到處理單元40的系統(tǒng)總線416上。處理單元40包含通過(guò)系統(tǒng)總線416以公知的方式連接在一起的中央處理單元(CPU)410、讀/寫(xiě)存儲(chǔ)器(RAM)412和只讀存儲(chǔ)器(ROM)414。數(shù)據(jù)流I/O適配器408是以雙向的方式連接在系統(tǒng)總線416和程序成分解碼器30的控制端之間。
連接到系統(tǒng)總線416的音頻處理器418提供音頻信號(hào)給AVI音頻輸出端25,而連接到系統(tǒng)總線416的視頻處理器420提供視頻信號(hào)給AVI視頻輸出端15。此外,通過(guò)雙向端45由I/O端口422將輸入和輸出設(shè)備連接到配置的本地處理器(未示出)上。用戶I/O適配器424用以通過(guò)輸入端35從用戶處接收數(shù)據(jù);而且通過(guò)雙向終端55將調(diào)制解調(diào)器426連接到外部計(jì)算機(jī)(未示出),所有這些也是以公知的方式連接到系統(tǒng)總線416上。其他的例如數(shù)學(xué)處理器、其他的I/O適配器等等以公知的方式連接到系統(tǒng)總線416上。此外,可以還包括總線擴(kuò)展器用于連接解碼器外部的其他設(shè)備。
在操作中,例如可以是直接射頻(RF)衛(wèi)星鏈路、電纜系統(tǒng)饋送或光纖鏈路的解碼器傳輸機(jī)構(gòu)載送多個(gè)AVI信號(hào),任何一個(gè)AVI信號(hào)可以由觀看的用戶選擇觀看。在直接衛(wèi)星鏈路中,例如多個(gè)AVI數(shù)據(jù)流可以通過(guò)調(diào)制各自的RF載波信號(hào)在傳輸機(jī)構(gòu)上做到頻分復(fù)用。每個(gè)RF載波信號(hào)可以由衛(wèi)星中的相應(yīng)的轉(zhuǎn)發(fā)器再?gòu)V播給觀眾的所在地。在處理器40的控制下,調(diào)諧器10用公知的方法選擇需要的RF調(diào)制信號(hào)。例如,在直接衛(wèi)星系統(tǒng)中,包含載有所要求的AVI程序信號(hào)的成分的分組業(yè)務(wù)的RF調(diào)制信號(hào)由公知的RF調(diào)諧器調(diào)諧。調(diào)諧器10的輸出是包含這些分組業(yè)務(wù)的基帶數(shù)字分組數(shù)據(jù)流。
通過(guò)將希望的業(yè)務(wù)識(shí)別符以及RAM412緩沖器存儲(chǔ)單元寫(xiě)入適當(dāng)?shù)臉I(yè)務(wù)成分識(shí)別符(SCID),CPU410從程序成分檢測(cè)器30中請(qǐng)求希望的分組業(yè)務(wù),而直接存儲(chǔ)器存取(DMA)控制器通過(guò)數(shù)據(jù)流I/O適配器408在程序成分檢測(cè)器30中寄存希望的分組業(yè)務(wù)。程序成分檢測(cè)器30于是監(jiān)視分組數(shù)據(jù)流以得到希望的分組業(yè)務(wù)。當(dāng)從任意的希望的分組業(yè)務(wù)中接收到標(biāo)題分組時(shí),用公知的DMA寫(xiě)技術(shù)將它們存入RAM412中的預(yù)定的標(biāo)題分組緩沖器,而且產(chǎn)生標(biāo)題分組中斷。當(dāng)從任意的希望的分組業(yè)務(wù)中接收到數(shù)據(jù)分組時(shí),使用公知的DMA寫(xiě)技術(shù)將其存儲(chǔ)在RAM412中的先前指定的緩沖器存儲(chǔ)單元。當(dāng)已經(jīng)接收到了傳輸單元中的所有數(shù)據(jù)分組時(shí),產(chǎn)生數(shù)據(jù)的完全中斷。在CPU410的控制下,也可啟動(dòng)也可禁止從分組業(yè)務(wù)中接收的標(biāo)題和/或數(shù)據(jù)分組。由K.E.Bridgewater等人在94年4月22日申請(qǐng)的題為“分組視頻信號(hào)反向傳送處理器存儲(chǔ)器選址電路”的美國(guó)專利申請(qǐng)No.232,787,更詳盡地描述了程序成分檢測(cè)器30。
例如,當(dāng)調(diào)諧器10調(diào)諧新的RF調(diào)制信號(hào)時(shí),包含程序引導(dǎo)的分組業(yè)務(wù)通過(guò)提供固定程序引導(dǎo)業(yè)務(wù)識(shí)別符給程序成分檢測(cè)器30中的業(yè)務(wù)識(shí)別符寄存器而由CPU410提出請(qǐng)求。當(dāng)在程序引導(dǎo)分組中的數(shù)據(jù)已被接收并儲(chǔ)存在存儲(chǔ)器中時(shí),該數(shù)據(jù)允許CPU為所希望的AVI程序請(qǐng)求分組數(shù)據(jù)業(yè)務(wù)。
在由程序成分檢測(cè)器30接收請(qǐng)求的分組業(yè)務(wù)中的信息分組以后,該分組通過(guò)DMA寫(xiě)入RAM412中的先前指定的緩沖器存儲(chǔ)單元,使用公知的DMA讀技術(shù),在程序成分檢測(cè)器30的控制下,視頻處理器420和音頻處理器418從與它們各自的分組業(yè)務(wù)相關(guān)的RAM412緩沖器存儲(chǔ)單元讀出數(shù)據(jù)。視頻處理器420和音頻處理器418于是解碼壓縮的和編碼的數(shù)據(jù)以便分別在輸出端15產(chǎn)生AVI視頻信號(hào)和在輸出端25產(chǎn)生AVI音頻信號(hào)。在解碼過(guò)程中CPU40可能與視頻處理器420和/或音頻處理器418合作,用以下插敘的方法,在CPU410的控制下處理數(shù)據(jù)成分分組業(yè)務(wù)的分組信息。
如上所述,每當(dāng)程序成分檢測(cè)器30接收到來(lái)自被請(qǐng)求的分組業(yè)務(wù)的標(biāo)題分組時(shí),它都會(huì)被存儲(chǔ)在用于分組業(yè)務(wù)的RAM412中的預(yù)定存儲(chǔ)單元,并且為CPU410產(chǎn)生標(biāo)題分組中斷信號(hào)。響應(yīng)標(biāo)題分組中斷信號(hào),中斷處理程序執(zhí)行對(duì)標(biāo)題分組內(nèi)容的分析,以及要么適當(dāng)?shù)厮⑿略诔绦虺煞謾z測(cè)器30中的DMA寄存器中的RAM412緩沖器存儲(chǔ)單元,并啟動(dòng)DMA轉(zhuǎn)換,要么如果傳輸單元是所不需要的,使DMA不轉(zhuǎn)換。一旦DMA轉(zhuǎn)換可以執(zhí)行,數(shù)據(jù)分組中的數(shù)據(jù)于是在DMA的控制下裝入到RAM412中。當(dāng)這個(gè)數(shù)據(jù)分組裝入完成時(shí),程序成分檢測(cè)器30產(chǎn)生數(shù)據(jù)完全中斷信號(hào)。響應(yīng)數(shù)據(jù)完全中斷信號(hào),執(zhí)行中斷處理程序以進(jìn)行“清除”功能并準(zhǔn)備下一個(gè)標(biāo)題分組。
圖2是由圖1所示處理單元40執(zhí)行的軟件200的結(jié)構(gòu)圖。圖2示出了組成AVI處理多重任務(wù)操作系統(tǒng)的主要軟件成分。在圖2中中,除去應(yīng)用程序外,所有的存儲(chǔ)在ROM414中的成分用黑色區(qū)表示。由AVI信號(hào)的數(shù)據(jù)成分載送的應(yīng)用程序從廣播位置接收并存儲(chǔ)在RAM412中。圖2中所示的軟件成分表示可執(zhí)行的代碼和相關(guān)的常量數(shù)據(jù)。正象代碼執(zhí)行的一樣,它可以產(chǎn)生和存取存儲(chǔ)在RAM412中的可變數(shù)據(jù)。
在建議的AVI廣播系統(tǒng)中,不同的解碼器可以使用例如來(lái)自不同制造商的不同的指令集的CPU。在這個(gè)系統(tǒng)中,應(yīng)用程序是處理器獨(dú)立的中間碼。在每個(gè)解碼器中的軟件包括解釋中間應(yīng)用碼的成分。這就可在包含任何型CPU410的解碼器中執(zhí)行廣播應(yīng)用程序。該解釋程序?qū)⒃趤?lái)自RAM412運(yùn)算存儲(chǔ)器的中間碼中讀取數(shù)據(jù)成分指令,并借助應(yīng)用編程接口(API)通過(guò)其他軟件成分與硬件交互作用。作為基本上是可利用的應(yīng)用程序的子例程的列表和必要時(shí)要訪問(wèn)的信息的API被公布,并可被應(yīng)用程序員利用以對(duì)解碼器單元進(jìn)行訪問(wèn)。
數(shù)學(xué)庫(kù)執(zhí)行進(jìn)行整數(shù)和浮點(diǎn)算術(shù)的所有的功能。流程操作系統(tǒng)控制監(jiān)視AVI信號(hào)的數(shù)據(jù)成分的所有必要的驅(qū)動(dòng)器,并處理被請(qǐng)求的模塊,以下將詳細(xì)描述。用戶接口管理部分處理所有的用戶交互作用,并利用圖形庫(kù),以及一個(gè)事件管理器與用戶進(jìn)行通訊。該圖形庫(kù)執(zhí)行在接收的AVI視頻上迭加的所有圖象的產(chǎn)生,并且使用數(shù)學(xué)庫(kù)劃出復(fù)雜的曲線。
通過(guò)彼此間非同步地傳送消息,解碼器軟件的不同的軟件成分間相互通訊。每個(gè)程序成分具有消息隊(duì)列,并且通過(guò)從讀消息隊(duì)列讀出下一個(gè)消息、處理那個(gè)消息、可能的話發(fā)送信息給另外的程序成分以及如果不再有未定的消息的話,等待下一個(gè)消息來(lái)重復(fù)地工作。通過(guò)適當(dāng)?shù)芈酚蛇x擇這些消息并保持消息隊(duì)列,事件管理器管理在其他的軟件成分中的這些消息的通訊。
每個(gè)硬件適配器還包括相關(guān)的軟件驅(qū)動(dòng)器。該驅(qū)動(dòng)器通過(guò)系統(tǒng)總線416執(zhí)行CPU410和相關(guān)的硬件適配器中的寄存器間實(shí)際的交互作用。例如有用于調(diào)制解調(diào)器426、外部I/O端口422、數(shù)據(jù)流I/O適配器408和用戶I/O424的驅(qū)動(dòng)器。另外,分立的驅(qū)動(dòng)器維持軟件定時(shí)器并操作解碼器的前面板。這些驅(qū)動(dòng)器密切依賴于事件管理器。所有以上的成分使用由多重任務(wù)核心提供的通用的功能。例如,該核心保持處理優(yōu)先權(quán)、實(shí)際任務(wù)隊(duì)列、信號(hào)、信號(hào)量(semaphores)、優(yōu)先任務(wù)轉(zhuǎn)換時(shí)鐘信號(hào)、中斷(硬件和軟件)以及處理堆棧存儲(chǔ)器。另外,該核心提供硬件預(yù)置初始狀態(tài)和作為系統(tǒng)裝入程序的第一系統(tǒng)任務(wù)的啟動(dòng)。
在啟動(dòng)時(shí),系統(tǒng)裝入程序執(zhí)行API對(duì)流程操作系統(tǒng)的請(qǐng)求,它依次通過(guò)數(shù)據(jù)流I/O適配器408請(qǐng)求數(shù)據(jù)流驅(qū)動(dòng)器給程序成分檢測(cè)器30發(fā)送適當(dāng)?shù)臄?shù)據(jù)。這些來(lái)自系統(tǒng)裝入程序的API請(qǐng)求以后面將詳述的方式啟動(dòng)目錄模塊的數(shù)據(jù)成分分組業(yè)務(wù)的掃描。當(dāng)目錄模塊被找到,它被裝入RAM412,并且查看是否所有的執(zhí)行程序的需要的資源是可用的。如果是可用的,于是系統(tǒng)裝入程序啟動(dòng)第一模塊AVI數(shù)據(jù)成分的掃描,第一模塊又稱為自動(dòng)啟動(dòng)模塊,該模塊啟動(dòng)AVI程序。當(dāng)自動(dòng)啟動(dòng)模塊被裝入,它將從數(shù)據(jù)成分分組業(yè)務(wù)中抽取出來(lái)并裝入RAM412中。這個(gè)自動(dòng)啟動(dòng)模塊是中間碼的形式,并且由解釋程序解釋執(zhí)行。該自動(dòng)啟動(dòng)模塊執(zhí)行初始狀態(tài)預(yù)置的剩余部分并開(kāi)始執(zhí)行AVI程序。這個(gè)程序可能裝入其他的碼和數(shù)據(jù)塊,并且鏈接到另外的代碼模塊,所有這些都通過(guò)API請(qǐng)求。以此方式,該系統(tǒng)裝入程序是以與典型的UNIX相同的方式工作的。
另外,系統(tǒng)裝入程序連續(xù)地掃描將傳輸?shù)哪夸浤K與在RAM412中的當(dāng)前目錄模塊相比較的數(shù)據(jù)成分分組業(yè)務(wù)。如果傳輸?shù)哪夸浤K不同于RAM412中所存儲(chǔ)的,它表示該數(shù)據(jù)成分分組業(yè)務(wù)已經(jīng)改變,例如,觀看者改變了頻道,或者一個(gè)交互式商業(yè)節(jié)目正在廣播。在這種情況下,通過(guò)事件管理器使用API將一則消息傳送給應(yīng)用程序。響應(yīng)這一消息,應(yīng)用程序重新分配它的所有資源,僅僅保持在處理單元40中的最小的存在。例如,用于存儲(chǔ)所有代碼和數(shù)據(jù)模塊的存儲(chǔ)器可能是空的,僅有應(yīng)用的執(zhí)行狀態(tài)保持在RAM412中。當(dāng)完成了應(yīng)用程序最小化時(shí),一個(gè)消息傳送給系統(tǒng)裝入程序。
系統(tǒng)裝入程序于是分配執(zhí)行由新的目錄模塊表示的AVI程序所必需的資源。在AVI數(shù)據(jù)成分分組業(yè)務(wù)中檢測(cè)到新的目錄模塊時(shí),搜索先前的最小化了的應(yīng)用列表,如果出現(xiàn)了由新的目錄表示的應(yīng)用,那么這個(gè)應(yīng)用通過(guò)重新從數(shù)據(jù)成分流中輸入必要的代碼和數(shù)據(jù)模塊而重新開(kāi)始,即從先前已經(jīng)停止處重新開(kāi)始。這可能發(fā)生在插入的交互式商業(yè)節(jié)目的末尾。這個(gè)過(guò)程可以是遞歸的,在這里第2個(gè)AVI程序本身可以由第3個(gè)AVI程序中斷,隨后重新啟動(dòng)。
圖3示出了流程圖和存儲(chǔ)器布局圖,圖4是有助于理解從AVI程序中的數(shù)據(jù)成分抽取模塊的圖1所示的程序成分檢測(cè)器30的更詳細(xì)的方框圖和存儲(chǔ)器布局更詳盡的示圖。在圖4中,來(lái)自圖1所示調(diào)諧器10的基帶數(shù)字分組流分別地連到數(shù)據(jù)DMA控制器32的數(shù)據(jù)輸入端和程序成分檢測(cè)器30內(nèi)的標(biāo)題分組DMA控制器34的數(shù)據(jù)輸入端。數(shù)據(jù)DMA控制器32以及標(biāo)題分組DMA控制器34的各自的數(shù)據(jù)輸出端連接到處理單元40的系統(tǒng)總線416。數(shù)據(jù)流I/O適配器408連接在系統(tǒng)總線416與各自的數(shù)據(jù)DMA控制器32和標(biāo)題分組DMA控制器34的控制輸入端之間。在工作中,數(shù)據(jù)流I/O適配器408提供控制信息,例如緩沖器存儲(chǔ)單元開(kāi)始和結(jié)束的地址、讀和寫(xiě)地址以及轉(zhuǎn)換計(jì)數(shù),并用公知的方式以圖1所示的CPU410加給數(shù)據(jù)DMA控制器32和標(biāo)題分組DMA控制器34。數(shù)據(jù)流I/O適配器408于是能使數(shù)據(jù)DMA控制器32和/或標(biāo)題分組DMA控制器34分別地以公知的方式在CPU410控制下從分組數(shù)據(jù)流到緩沖器傳送數(shù)據(jù)或標(biāo)題分組,或者使這種傳送不進(jìn)行。當(dāng)數(shù)據(jù)DMA控制器32完成了數(shù)據(jù)傳輸時(shí),它產(chǎn)生一個(gè)數(shù)據(jù)完成中斷給CPU40。當(dāng)標(biāo)題分組DMA控制器34完成輸入標(biāo)題分組時(shí),它產(chǎn)生一個(gè)標(biāo)題分組中斷給CPU410。
仍在圖4中,RAM412是由大方框表示的,數(shù)據(jù)結(jié)構(gòu)是由在大方框內(nèi)的小方框表示的。圖4中的方框僅僅是示意,決不意味RAM412中數(shù)據(jù)結(jié)構(gòu)分配的絕對(duì)和相對(duì)位置以及尺寸大小。在412中示出了模塊請(qǐng)求隊(duì)列322、標(biāo)題分組緩沖器324、目錄模塊緩沖器326和模塊緩沖器328的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)內(nèi)的信息字段用水平的條表示,該條包含字段中含有的信息類型的名字。這些在以后將詳細(xì)討論。
圖3示出了隨后的從數(shù)據(jù)成分分組業(yè)務(wù)中抽取模塊并存儲(chǔ)在RAM412中的緩沖器的步驟。用作其他的模塊處理的隨后的類似步驟將在以后描述。在圖3中,應(yīng)用程序(或系統(tǒng)裝入程序)中的動(dòng)作表示在“標(biāo)題應(yīng)用程序(APPLNPROG)”下面的左側(cè)欄中。在方框302中,使用AVI的應(yīng)用程序可以請(qǐng)求流程操作系統(tǒng)從AVI程序成分分組業(yè)務(wù)中裝入具有識(shí)別符ID的模塊。如上所述,API請(qǐng)求基本上是對(duì)操作系統(tǒng)功能的子例程請(qǐng)求的。該程序執(zhí)行傳送給流程操作系統(tǒng)(FOS)。在FOS中的動(dòng)作表示在(FOS)流程操作系統(tǒng)標(biāo)題下面的相鄰的右欄中。由于該請(qǐng)求包含模塊的裝入,在方框312中的FOS請(qǐng)求存儲(chǔ)器管理器分配容納該模塊的足夠大小的存儲(chǔ)空間。例如,如果請(qǐng)求的模塊是代碼或者數(shù)據(jù)模塊,先前存儲(chǔ)的目錄模塊326(圖4)包括含有模塊ID的長(zhǎng)度(LENGTH)的字段。在這種情形存儲(chǔ)器管理器分配具有開(kāi)始地址START和終止地址END的模塊存儲(chǔ)器緩沖器328(圖4中示出)。然后在方框314中的描述請(qǐng)求的信息,例如是模塊的識(shí)別符ID、請(qǐng)求REQUEST的類型(在這種情形中請(qǐng)求抽取和裝入模塊)以及分配的緩沖器開(kāi)始地址START和終止地址END都存儲(chǔ)在請(qǐng)求隊(duì)列(QUEUE)322的條目處。當(dāng)他們出現(xiàn)在分組數(shù)據(jù)流中時(shí),標(biāo)題分組DMA控制器34就可以被啟動(dòng)以將標(biāo)題分組裝入RAM412中。
如果請(qǐng)求是對(duì)于目錄模塊的,預(yù)先不知道其長(zhǎng)度。在這種情況下就需要相對(duì)大的存儲(chǔ)器分配。如果這個(gè)分配產(chǎn)生得太小,就要重復(fù)請(qǐng)求,直到請(qǐng)求到大的存儲(chǔ)器分配,要么目錄模塊裝入,要么確定為沒(méi)有充分的存儲(chǔ)器可以令其裝入,在這種情況下運(yùn)行AVI程序的努力就放棄了。
隨后FOS立即返回到調(diào)用應(yīng)用程序。該應(yīng)用程序于是可以執(zhí)行其他的處理,例如向其他的模塊發(fā)出請(qǐng)求、其他的初始狀態(tài)預(yù)置等等。當(dāng)請(qǐng)求的模塊的存取是所需要的,在方框304中的應(yīng)用程序可以發(fā)出API請(qǐng)求給核心中的等待功能。這個(gè)功能暫停應(yīng)用程序的執(zhí)行,直到由應(yīng)用程序檢測(cè)到表示成功裝入請(qǐng)求的模塊的消息為止。當(dāng)接收到那個(gè)消息時(shí),該應(yīng)用程序被再次啟動(dòng)以處理那個(gè)消息。另外,該應(yīng)用程序可以保持有效,例如為了響應(yīng)更快的用戶輸入,并且周期地詢問(wèn)消息隊(duì)列表示成功裝入請(qǐng)求的模塊的消息是否收到,當(dāng)收到該消息時(shí)就處理該消息。
如上所述,標(biāo)題分組DMA控制器在先前由存儲(chǔ)器管理器分配的RAM412中的標(biāo)題分組(HDRPKT)緩沖器324(見(jiàn)圖4)中裝入標(biāo)題分組,并且輸出標(biāo)題分組中斷給CPU410。由位于核心的標(biāo)題中斷處理器執(zhí)行處理的一部分在圖3中的標(biāo)有“HEADERINTR”(標(biāo)題中斷)的欄中示出。在方框322中,在傳輸單元中載送的,作為標(biāo)題程序分組的程序分組的識(shí)別符,從在標(biāo)題分組緩沖器324中的公知存儲(chǔ)單元、ID處搜索到,請(qǐng)求隊(duì)列332被檢查以確定是否這里有這個(gè)模塊的未決的請(qǐng)求。
如果有模塊未決的請(qǐng)求,則在方框336中,在程序成分檢測(cè)器30中的數(shù)據(jù)分組DMA控制器用下列的值預(yù)置初始狀態(tài)來(lái)自請(qǐng)求隊(duì)列322中的開(kāi)始地址START和終結(jié)地址END的模塊緩沖器328;作為模塊緩沖器328開(kāi)始地址與傳輸單元數(shù)據(jù)偏移OFFSET(即START+OFFSET)的和的寫(xiě)地址;和作為START+OFFSET+SIZE的上一個(gè)寫(xiě)地址(換言之,是來(lái)自代替上一個(gè)寫(xiě)地址的標(biāo)題分組緩沖器324的尺寸大小SIZE的裝入計(jì)數(shù))。該數(shù)據(jù)分組DMA控制器32于是可以工作。
在方框338中,如果這是完成裝入請(qǐng)求以后接收的第1個(gè)標(biāo)題分組,存儲(chǔ)在請(qǐng)求隊(duì)列322中的指向第1寫(xiě)地址的指針FIRST被初始化為該第1傳輸單元的寫(xiě)地址(即FIRST+START+OFFSET)。另外,一個(gè)預(yù)期的指向下一個(gè)寫(xiě)地址的指針也存儲(chǔ)在請(qǐng)求隊(duì)列332中,該指針NEXT對(duì)第1個(gè)傳輸單元的寫(xiě)地址(即NEXT=START+OFFSET)預(yù)置初始狀態(tài)。隨后其他的處理在方框338中完成,338將在以后詳細(xì)描述。例如,指向請(qǐng)求隊(duì)列332中的存儲(chǔ)單元的專用指針被當(dāng)前處理,CURRREQ(即當(dāng)前請(qǐng)求)存儲(chǔ)在RAM412中未示出的預(yù)定存儲(chǔ)單元中。然后,在方框339中,中斷處理器返回(339)。
數(shù)據(jù)分組DMA控制器32對(duì)指向先前接收的寫(xiě)地址(START+OFFSET)的寫(xiě)指針進(jìn)行預(yù)置初始狀態(tài),并且將來(lái)自AVI程序成分分組業(yè)務(wù)中的隨后的數(shù)據(jù)分組裝入RAM412中模塊緩沖器328中的順序的存儲(chǔ)單元。當(dāng)傳輸單元中的所有數(shù)據(jù)已經(jīng)裝入RAM412,就產(chǎn)生數(shù)據(jù)完全中斷。在核心中的數(shù)據(jù)完全中斷處理器執(zhí)行的處理的部分示于圖3中的標(biāo)有DATACOMPLINTR標(biāo)題的右側(cè)欄中。
在方框342中執(zhí)行有關(guān)DMA傳輸?shù)漠?dāng)前狀態(tài)的清除功能。先前設(shè)定在標(biāo)題分組中的中斷處理程序中的當(dāng)前請(qǐng)求指針(CURRREQ)指向請(qǐng)求隊(duì)列332中的傳輸單元?jiǎng)偤靡呀?jīng)完成了裝入的條目。在當(dāng)前請(qǐng)求中的預(yù)期的下一個(gè)寫(xiě)地址指針增加了標(biāo)題分組緩沖器中的SIZE值,而且現(xiàn)在為下一個(gè)傳輸單元指向預(yù)期的寫(xiě)地址。如果預(yù)期的下一個(gè)寫(xiě)地址指針的新值等于緩沖器328的結(jié)束地址END,它將用返轉(zhuǎn)方式對(duì)模塊緩沖器328的開(kāi)始地址START復(fù)位。
在方框344中,確定是否所有的請(qǐng)求的模塊已經(jīng)裝入存儲(chǔ)器了。預(yù)期的下一個(gè)寫(xiě)地址指針NEXT的值與第1個(gè)裝入地址START比較。如果相同,即整個(gè)模塊已經(jīng)裝入了。在方框346中,如圖3中的破折線所示,消息通過(guò)事件管理器傳送給請(qǐng)求應(yīng)用程序以指示請(qǐng)求的模塊已完全地搜索。另外,從請(qǐng)求隊(duì)列322中除去請(qǐng)求。如果預(yù)期的下一個(gè)寫(xiě)地址NEXT的值和第1個(gè)裝入地址START不相同,該數(shù)據(jù)完全中斷處理程序返回(349),包含請(qǐng)求模塊的數(shù)據(jù)的下一個(gè)傳輸單元,如上所述,由標(biāo)題分組中斷處理程序處理。在這兩種情形下,當(dāng)前請(qǐng)求指針(CURRREQ)被清除了。
如果程序成分檢測(cè)器30未能適當(dāng)?shù)亟邮諅鬏攩卧哪承┎糠郑趤?lái)自先前的標(biāo)題分組的數(shù)據(jù)完全中斷信號(hào)已由程序成分檢測(cè)器30中的DMA電路產(chǎn)生出來(lái)前,隨后的標(biāo)題分組將被接收到。這就是在先前數(shù)據(jù)完全中斷信號(hào)可以產(chǎn)生之前,依次產(chǎn)生隨后的標(biāo)題分組中斷信號(hào)。在標(biāo)題分組中斷處理程序和數(shù)據(jù)完全中斷處理程序中的處理可以合作以識(shí)別這種狀態(tài)并提供對(duì)差錯(cuò)的處理。
在標(biāo)題分組中斷處理程序中,在數(shù)據(jù)分組DMA控制器可以接收下一個(gè)傳輸單元后,在方框338(圖3中示出)進(jìn)行這種處理。對(duì)于每一個(gè)接收的標(biāo)題分組,在由數(shù)據(jù)完全中斷處理程序先前刷新的當(dāng)前請(qǐng)求隊(duì)列的條目中預(yù)期的下一個(gè)寫(xiě)地址NEXT被與新接收的標(biāo)題分組的寫(xiě)地址(START+OFFSET)相比較。如果他們是相同的,先前的傳輸單元被成功地接收。然而,如果最后的結(jié)束地址和新的偏移不相同,這意味著先前的傳輸單元的DMA傳輸完成得不成功。在這種情況下,第1寫(xiě)地址FIRST和預(yù)期的下一個(gè)寫(xiě)地址NEXT二者被刷新成當(dāng)前的寫(xiě)地址(START+OFFSET)。這就是說(shuō)先前裝入的傳輸單元基本上被放棄,而且用當(dāng)前的傳輸單元重新啟動(dòng)模塊的裝入。由于先前成功裝入的傳輸單元當(dāng)重新裝入時(shí)可能產(chǎn)生差錯(cuò),從差錯(cuò)的數(shù)據(jù)遺漏型恢復(fù)的方式可能要用更多的時(shí)間。然而,使用這種形式的恢復(fù),由標(biāo)題分組中斷處理程序和數(shù)據(jù)完全中斷處理程序完成的任務(wù)被最小化,而且只有兩個(gè)指針需存入存儲(chǔ)器中。
作為模塊完整的消息處理的一部分,對(duì)接收的模塊內(nèi)事件處理程序執(zhí)行誤差檢查。例如,循環(huán)冗余校驗(yàn)(CRC)碼作為模塊嵌入的部分被傳輸。事件處理程序在RAM412中的模塊緩沖器328中的接收的模塊內(nèi)計(jì)算CRC,并將其與嵌入的CRC作比較。如果新計(jì)算的CRC等于嵌入CRC,則模塊被正確地接收,否則則出現(xiàn)差錯(cuò),如前所述該模塊要重新裝入。
當(dāng)請(qǐng)求的模塊已經(jīng)完全裝入存儲(chǔ)器中時(shí),可以連續(xù)進(jìn)行由應(yīng)用模塊所做的進(jìn)一步處理,在圖3中由API調(diào)用的底部到等待功能304的一條虛線表示出。然而,在應(yīng)用程序中的獨(dú)立的任務(wù)可以被起動(dòng)以便響應(yīng)來(lái)自應(yīng)用程序消息隊(duì)列的消息的接收。
上述的AP1包括借助應(yīng)用程序、解釋程序或系統(tǒng)裝入程序而訪問(wèn)數(shù)據(jù)流的功能。一個(gè)應(yīng)用程序?qū)⑹褂冒l(fā)表了的API說(shuō)明來(lái)提出API請(qǐng)求以訪問(wèn)所希望的數(shù)據(jù)流功能。第一組功能涉及到模塊目錄。第1功能DIRNEW是對(duì)新的目錄的請(qǐng)求。如上所述,為了響應(yīng)這個(gè)API功能,對(duì)存儲(chǔ)器做出分配,于是請(qǐng)求被排入隊(duì)列以便將數(shù)據(jù)流中的下一個(gè)目錄模塊裝入,然后API功能返回。當(dāng)目錄已經(jīng)裝入后,發(fā)送一個(gè)消息給請(qǐng)求程序。另一個(gè)功能DIR_FREE釋放當(dāng)前目錄所占有的存儲(chǔ)器空間。功能DIR_SELECT表示哪一個(gè)目錄模塊將用于隨后的API請(qǐng)求。功能DIR_CURRENT將處理返回到當(dāng)前選擇的目錄。
功能DIR_SPY和DIR_STOP_SPY類似于DIR_NEW功能。響應(yīng)DIR_SPYAPI請(qǐng)求,一個(gè)請(qǐng)求被排入目錄模塊請(qǐng)求隊(duì)列,而不是當(dāng)它被裝入時(shí)進(jìn)行裝入目錄模塊和發(fā)送消息,無(wú)論何時(shí)在數(shù)據(jù)流中(目錄模塊未裝入)檢測(cè)到目錄模塊,該功能都發(fā)送一個(gè)消息。另外,該請(qǐng)求一直保留在請(qǐng)求隊(duì)列中直到完成DIR_STOP_SPYAPI請(qǐng)求。當(dāng)作出DIR_STOP_SPY_API請(qǐng)求時(shí),針對(duì)目錄窺探請(qǐng)求對(duì)請(qǐng)求隊(duì)列進(jìn)行搜尋,而且條目被清除。這些功能用于在數(shù)據(jù)流中窺探當(dāng)前目錄的任何變化。最后,API請(qǐng)求抽取關(guān)于當(dāng)前目錄的信息DIR_IDENTIFIER、DIR_REQUIREMENT和DIR_NB_MODULES。
由于在模塊中嵌入CRC碼,為了裝入模塊的任何存儲(chǔ)器分配請(qǐng)求必須考慮這種碼。提供三個(gè)API請(qǐng)求用以處理這個(gè)(碼)??紤]到任何CRC或其他的存儲(chǔ)器需求,功能MODULE_ALLOC將模塊識(shí)別符作為自變量并請(qǐng)求分配適當(dāng)數(shù)量的存儲(chǔ)器以裝入模塊。功能MODULE_FREE釋放模塊所占有的存儲(chǔ)器。MODULE_CHECK執(zhí)行對(duì)裝入的模塊的CRC校驗(yàn)并返回該結(jié)果。由于CRC是在裝入存儲(chǔ)器時(shí)嵌入在模塊中的,所以這就可以在任何時(shí)候來(lái)執(zhí)行。
另外一組API請(qǐng)求涉及用當(dāng)前選擇的目錄去識(shí)別模塊。API請(qǐng)求抽取的有關(guān)的模塊的信息為MODULE_REQUIREMENT、MODULE_SIZE和MODULE_FLAGS。這些能夠使系統(tǒng)確定模塊是否可能被裝入和/或執(zhí)行。功能MODULE_RUN用以裝入可執(zhí)行的模塊,如上所述,產(chǎn)生一種新的處理,并且在模塊的入口點(diǎn)開(kāi)始執(zhí)行該模塊。這個(gè)功能是由系統(tǒng)裝入程序所使用的以便啟動(dòng)AVI程序的執(zhí)行。功能MODULE_CHAIN用以裝入隨后的可執(zhí)行的模塊、結(jié)束當(dāng)前模塊的執(zhí)行以及在它的入口端開(kāi)始執(zhí)行新的模塊裝入。在這種情況下沒(méi)有產(chǎn)生新的處理。功能MODULE_LOAD用以裝入模塊,但不開(kāi)始執(zhí)行。如上所述,當(dāng)模塊裝入已經(jīng)完成時(shí),一個(gè)消息就發(fā)送給請(qǐng)求程序。功能MODULE_EXEC用以產(chǎn)生新的處理并開(kāi)始執(zhí)行模塊,該模塊由MODULE_LOADAPI請(qǐng)求在它的入口端先已裝入。
功能MODULE_LINK使用當(dāng)前的處理、資源和變量執(zhí)行新的模塊。它允許借用提供的動(dòng)態(tài)鏈路將模塊內(nèi)的子例程之類的請(qǐng)求接到新的模塊。這就允許AVI程序劃分成為更小的模塊,一旦需要,這些更小的模塊可以動(dòng)態(tài)地鏈接。功能MODULE_LINK保持再定位和轉(zhuǎn)移表。功能MODULE_SPY和MODULE_STOP_SPY的工作與DIRECTORY_SPY和DIRECTORY_STOP_SPY相類似,但與所識(shí)別的模塊相關(guān)。MODULEAPI請(qǐng)求在包含模塊的識(shí)別符的請(qǐng)求隊(duì)列中插入一條目。不論何時(shí)在數(shù)據(jù)流中檢測(cè)到與標(biāo)題模塊相同的識(shí)別符,一個(gè)消息就發(fā)送給請(qǐng)求程序。這要持續(xù)到ULE_STOP_SPYAPI請(qǐng)求完成。響應(yīng)MODULE_STOP_SPYAPI請(qǐng)求,包含對(duì)識(shí)別的模塊作窺探請(qǐng)求的條目被從請(qǐng)求隊(duì)列中被除掉。在處理中MODULE_STOP_LOAD功能停止任何當(dāng)前模塊裝入的請(qǐng)求并從請(qǐng)求隊(duì)列中除去裝入請(qǐng)求的條目。當(dāng)與數(shù)據(jù)流相關(guān)的具體的信令分組,諸如暫停數(shù)據(jù)流或結(jié)束數(shù)據(jù)流出現(xiàn)時(shí),F(xiàn)LOW_MESSAGE和FLOW_STOP_MESSGE分別產(chǎn)生和除去對(duì)消息的請(qǐng)求。當(dāng)這種事件發(fā)生時(shí),一個(gè)消息被發(fā)送給請(qǐng)求程序。
如上所述,系統(tǒng)裝入程序執(zhí)行系統(tǒng)的初始狀態(tài)的預(yù)置并監(jiān)視數(shù)據(jù)流以確保應(yīng)用程序的執(zhí)行與接收的音頻和視頻成分同步。圖5是表示系統(tǒng)裝入程序的預(yù)置初始狀態(tài)功能的流程圖。在圖5中的方框52中,解碼器(17)的不同的硬件和軟件成分被預(yù)置初始狀態(tài)。另外,分配了RAM412中的存儲(chǔ)單元并對(duì)不同的數(shù)據(jù)結(jié)構(gòu)預(yù)置初始狀態(tài)。這些初始狀態(tài)的預(yù)置功能是公知的,并且依賴于解碼器中的其他軟件成分。系統(tǒng)程序員將明白,硬件和軟件需要預(yù)置什么樣的初始狀態(tài)、需要什么樣的數(shù)據(jù)結(jié)構(gòu)以及如何執(zhí)行預(yù)置初始狀態(tài)。因此,這個(gè)方框在下面不準(zhǔn)備詳述了。
在方框54中,如上所述完成DIR_NEWAPI請(qǐng)求。該API請(qǐng)求將出現(xiàn)在AVI程序成分分組業(yè)務(wù)中的下個(gè)目錄模塊裝進(jìn)RAM412中的分配的緩沖器中。這個(gè)API請(qǐng)求立即返回到系統(tǒng)裝入程序,甚至直到晚些時(shí)候目錄才裝入RAM412中。系統(tǒng)裝入程序執(zhí)行其他的功能,而且,然后如果必需,等待API請(qǐng)求(未示出)一直到一個(gè)消息通過(guò)事件管理器被接收到,表示目錄模塊已經(jīng)裝入。在方框56中,在解碼器(圖1中)中可利用的資源在目錄模塊中與表示需要的資源的數(shù)據(jù)作比較。如果解碼器有充足的資源執(zhí)行AVI程序,則作出一個(gè)MODULE_RUNAPI請(qǐng)求以便從如前所述地裝入在先前裝入的目錄中識(shí)別出的自動(dòng)啟動(dòng)代碼模塊。再者,API請(qǐng)求立即返回,但是直到在稍后一些時(shí)間,來(lái)自數(shù)據(jù)流的代碼模塊才被裝入。在自動(dòng)啟動(dòng)代碼模塊完全裝入后,通過(guò)解釋程序,使用執(zhí)行AVI程序的多重任務(wù)核心程序以公知的方式產(chǎn)生另一個(gè)任務(wù)。
在方框58中,系統(tǒng)裝入程序開(kāi)始監(jiān)視執(zhí)行信號(hào)的AVI程序成分和目錄變化,并且如下所述,通過(guò)發(fā)送消息給AVI程序來(lái)控制AVI程序的執(zhí)行。圖6是表示系統(tǒng)裝入程序的監(jiān)視功能以及有利于理解系統(tǒng)裝入程序的工作的狀態(tài)轉(zhuǎn)變圖。如果在AVI程序成分分組業(yè)務(wù)中檢測(cè)到了目錄,則觀看者已選擇了的節(jié)目是一個(gè)交互式節(jié)目。一旦目錄以及由AVI成分分組業(yè)務(wù)請(qǐng)求的自動(dòng)啟動(dòng)代碼模塊已經(jīng)裝入RAM412中,在系統(tǒng)裝入程序的控制下,AVI程序進(jìn)入INACTIVE狀態(tài)61。在該狀態(tài)61中,所有的啟動(dòng)的應(yīng)用的資源已經(jīng)分配好,而且該應(yīng)用可以部分地或全部地裝入,但是沒(méi)有與觀看者的交互作用。例如,當(dāng)自動(dòng)啟動(dòng)模塊被裝入時(shí),AVI程序保持處在INACTIVE狀態(tài)61。另外,甚至自動(dòng)啟動(dòng)模塊已經(jīng)裝入,觀看者僅僅能通過(guò)傳送AVI程序的通道改變頻道,并且不打算與AVI程序交互作用?;蛘哂^看者在作出決定去連接交互作用前恰恰能希望觀看AVI節(jié)目。在這些情況下重要的是,遙控在一般頻道改變方式中起作用,在交互式方式中不起作用。這就是INACTIVE狀態(tài)61的目的。為了通知觀看者正在觀看的頻道廣播的是交互式節(jié)目,具體的交互式節(jié)目(program)Logo(教學(xué)程序)和icon(肖像)迭加在AVI視頻圖像上。
為了使觀看者實(shí)際開(kāi)始與AVI程序(progarm)的交互作用,在下面的一個(gè)稱之為ACTIVATEKEY的專用鍵提供用作遙控。當(dāng)已顯示了交互程序(program)Logo或icon時(shí),觀看者可以按ACTIVATEKEY鍵,響應(yīng)按ACTIVATEKEY鍵,系統(tǒng)裝入程序發(fā)送一個(gè)ACTIVATE消息給AVI程序,該程序然后進(jìn)入ACTIVATE狀態(tài)63。在該狀態(tài)63中,解釋程序?qū)嶋H開(kāi)始執(zhí)行先前在它的入口端裝入的AVI程序。當(dāng)AVI程序的自動(dòng)啟動(dòng)模塊開(kāi)始執(zhí)行時(shí),它在RAM412中分配和預(yù)置它自己的數(shù)據(jù)結(jié)構(gòu)的初始狀態(tài),裝入其他的代碼和/或數(shù)據(jù)模塊并控制所有來(lái)自遙控器和前控制面板的用戶的操作。
由于AVI程序控制所有的用戶的交互作用,它可以防止用戶改變頻道或執(zhí)行其他的通常遙控功能。為了恢復(fù)通常的遙控功能,觀看者必須首先停止當(dāng)前的AVI程序。觀看者要再按ACTIVATEKEY鍵,以撤銷該程序。響應(yīng)這個(gè)鍵的按下,系統(tǒng)裝入程序發(fā)出一個(gè)DEACTIVATE(撤銷)消息給執(zhí)行中的AVI程序,該程序于是離開(kāi)ACTIVATE狀態(tài)63,并返回到INACTIVATE狀態(tài)61。再者,具體的交互程序Logo或icon顯示出來(lái),表示AVI程序已經(jīng)裝入,但未執(zhí)行。然后,觀看者可以變化頻道或操作其他的通常遙控功能,或者可以再按ACTIVATEKEY鍵來(lái)重新開(kāi)啟AVI程序。ACTIVATEKEY鍵當(dāng)它按下時(shí),起到了ACTIVE狀態(tài)63和INACTIVE狀態(tài)61間的觸發(fā)器或開(kāi)關(guān)的作用。ACTIVATE和DEACTIVATE消息也可以被認(rèn)為開(kāi)啟開(kāi)關(guān)的(ACTIVATETOGGLE)作用。當(dāng)ACTIVATEKEY鍵按下,它們的意思是(ACTIVATE或DEACTIVATE)依賴于AVI程序的狀態(tài)。
當(dāng)在ACTIVE63中執(zhí)行AVI程序時(shí),當(dāng)希望暫停它的執(zhí)行時(shí)要重復(fù)幾次。例如,當(dāng)非交互式的商業(yè)節(jié)目被發(fā)送,該發(fā)送的音頻和視頻將不再與由解碼器10(見(jiàn)圖1)產(chǎn)生的音頻和視頻相適應(yīng),它希望允許觀看者用正常的方式使用遙控器。然而,系統(tǒng)程序員不能提前知道何時(shí)需要這種暫停。因此,在這種情況下,獨(dú)立于AVI程序的廣播臺(tái)可以重復(fù)地包括在AVI程序成分分組業(yè)務(wù)中的稱之為暫停信號(hào)分組的專用信號(hào)分組(如上面所述)。每個(gè)這樣的分組包含涉及暫停執(zhí)行當(dāng)前執(zhí)行的AVI程序的數(shù)據(jù)。
系統(tǒng)裝入程序通過(guò)FLOW_MESSAGFAPI請(qǐng)求接收每當(dāng)在AVI程序成分分組業(yè)務(wù)中識(shí)別出那個(gè)分組而發(fā)出的消息。例如,當(dāng)接收到暫停的信號(hào)分組時(shí),系統(tǒng)裝入程序接收暫停的信號(hào)消息,并且響應(yīng)第一個(gè)暫停信號(hào)消息而發(fā)出一個(gè)暫停的消息給AVI程序,AVI程序依次暫停執(zhí)行而進(jìn)入SUSPENDED暫停狀態(tài)65。在該狀態(tài)65中,執(zhí)行的AVI程序是以這樣的方式停止的,即它可以從它暫停的點(diǎn)上再次啟動(dòng)。這就是說(shuō),所有執(zhí)行AVI程序的必要的所有的資源保持分配的狀態(tài),AVI程序的執(zhí)行狀態(tài)存儲(chǔ)在RAM412中的一個(gè)存儲(chǔ)單元。另外,表示先前執(zhí)行的交互式程序暫停,而且準(zhǔn)備當(dāng)允許時(shí)再次開(kāi)始的第2個(gè)Logo或icon迭加在當(dāng)前的視頻圖象上。
當(dāng)中斷(即非交互式商業(yè)節(jié)目)過(guò)去后,廣播臺(tái)停止包含在AVI程序成分分組業(yè)務(wù)中的信號(hào)分組。在沒(méi)有接收暫停信號(hào)消息的時(shí)間期間過(guò)后,系統(tǒng)裝入程序給AVI程序發(fā)出CONTINUE(連續(xù))的消息,該AVI程序依次從它先前暫停的狀態(tài)而重新啟動(dòng)從而進(jìn)入ACTIVE的活動(dòng)狀態(tài),這正如前面所述過(guò)的一樣。
如上所述的SUSPEND/CONTINUE信令方案的另一實(shí)施例,是當(dāng)希望暫停執(zhí)行AVI程序時(shí),為廣播臺(tái)在AVI程序成分分組業(yè)務(wù)中包括單一的一個(gè)暫停的信號(hào)分組。當(dāng)需要重新啟動(dòng)AVI程序時(shí),廣播臺(tái)于是包含在AVI程序成分分組業(yè)務(wù)中的稱之為繼續(xù)信號(hào)分組的另一個(gè)具體的信號(hào)分組。這個(gè)分組包含涉及當(dāng)前暫停的AVI程序重新啟動(dòng)的數(shù)據(jù)。系統(tǒng)裝入程序識(shí)別了該繼續(xù)信號(hào)分組,并發(fā)出CONTINUE(繼續(xù))的信息給AVI程序,該程序重新開(kāi)始并進(jìn)入ACTIVE(有效)狀態(tài)63,這和以前所述相同。
還可以讓觀看者停止執(zhí)行暫停的AVI程序。當(dāng)暫停的程序的Logo或icon被顯示出來(lái),觀看者按動(dòng)ACTIVATEKEY鍵。響應(yīng)這個(gè)按鍵,系統(tǒng)裝入程序發(fā)出DEACTIVATE消息(停用)給暫停的AVI程序,如前面述過(guò)的一樣,該AVI程序依次進(jìn)入INACTIVE狀態(tài)(靜止)。從INACTIVE狀態(tài)61,當(dāng)觀看者按動(dòng)ACTIVTEKEY鍵時(shí),程序可以僅重新開(kāi)始執(zhí)行,該鍵的按動(dòng)使得系統(tǒng)裝入程序發(fā)出一個(gè)ACTIVATE消息給AVI程序,該程序于是進(jìn)入ACTIVE狀態(tài)63。如果系統(tǒng)裝入程序繼續(xù)收到暫停信號(hào)分組,另一個(gè)SUSPEND消息立即發(fā)給AVI程序,該程序再次進(jìn)入SUSPENDED狀態(tài)(暫停)65。INACTIVE狀態(tài)61、ACTIVE狀態(tài)63和SUSPENDED狀態(tài)65是AVI程序中的三種狀態(tài),AVI程序響應(yīng)發(fā)自系統(tǒng)裝入程序的消息來(lái)轉(zhuǎn)換狀態(tài)。然而還有兩種別的狀態(tài),它們?cè)谙到y(tǒng)裝入程序的直接控制下可以進(jìn)入。
一個(gè)AVI程序可以到達(dá)它的執(zhí)行的終點(diǎn)。例如,廣播臺(tái)可以包括稱之為終點(diǎn)執(zhí)行信號(hào)分組的另一個(gè)具體的信號(hào)分組于該AVI程序成分分組業(yè)務(wù)中。當(dāng)通過(guò)FLOW_MESSAGEAPI請(qǐng)求在AVI程序成分分組業(yè)務(wù)中識(shí)別出一個(gè)終點(diǎn)執(zhí)行信號(hào)分組時(shí),系統(tǒng)裝入程序接到一個(gè)終點(diǎn)執(zhí)行消息。響應(yīng)該終點(diǎn)執(zhí)行消息,系統(tǒng)裝入程序發(fā)出一個(gè)EXIT(退出)的消息給AVI程序。不考慮AVI程序是處在INACTIVE61、ACTIVE63或SUSPENDED65的哪種狀態(tài),AVI程序響應(yīng)EXIT消息解除它的所有資源,并且除掉在解碼器10(圖1中示出)的它的所有記錄。這個(gè)程序被認(rèn)為進(jìn)入HALTED(停止)狀態(tài)69,并且從解碼器10處消失。在這些情況下,程序本身可以通過(guò)用戶命令或依靠它自己的執(zhí)行來(lái)識(shí)別它的執(zhí)行是否到達(dá)了終點(diǎn)。當(dāng)AVI程序識(shí)別出它的執(zhí)行已結(jié)束,它將主動(dòng)進(jìn)行例如收到EXIT消息后使其進(jìn)入HALTED狀態(tài)69的相同的處理。
當(dāng)AVI程序處在SUSPENDED狀態(tài)時(shí),在AVI程序成分?jǐn)?shù)據(jù)流中接收不同的交互式AVI程序是可能的。例如AVI程序可以由于商業(yè)節(jié)目而暫停,該商業(yè)節(jié)目本身可以是交互式節(jié)目,或者用戶可以將頻道變到廣播不同AVI節(jié)目的頻道上。在這兩種情況下,新的AVI程序?qū)夸浤K,該目錄模塊不同于暫停的AVI程序。
每當(dāng)在AVI程序成分分組業(yè)務(wù)中檢測(cè)到目錄,系統(tǒng)裝入程序通過(guò)DIR_SPYAPI請(qǐng)求,接收一個(gè)消息。系統(tǒng)裝入程序?qū)?dāng)前的有效目錄與剛檢測(cè)的目錄相比較。當(dāng)系統(tǒng)裝入程序識(shí)別出出現(xiàn)在AVI程序成分分組業(yè)務(wù)中的不同的目錄時(shí),它開(kāi)始裝入用這些目錄所表示的AVI程序。
首先,一則消息發(fā)給當(dāng)前暫停的AVI程序以表示該程序成分分組業(yè)務(wù)不再?gòu)V播它自己的節(jié)目,或者該節(jié)目“失去流程”(losttheflow)。這個(gè)消息是當(dāng)前執(zhí)行的程序最小化它自己的請(qǐng)求,即是MINIMIZE消息。為了響應(yīng)該MINIMIZE消息,當(dāng)前暫停的AVI程序首先將其當(dāng)前的執(zhí)行狀態(tài)和環(huán)境存儲(chǔ)在RAM412的一個(gè)小存儲(chǔ)塊之中;RAM412包含AVI程序的識(shí)別以及下面要描述的時(shí)間的持續(xù)。然后暫停的AVI程序開(kāi)始解除它的資源。最小化AVI程序不包括任何代碼,因此,不能響應(yīng)消息改變狀態(tài)或重新啟動(dòng)自己。
系統(tǒng)裝入程序然后裝入新檢測(cè)的目錄和自動(dòng)啟動(dòng)模塊,并且將新的AVI程序放入前面已述過(guò)的顯示交互式程序Logo或icon的INACTINE狀態(tài)61。觀看者于是可以通過(guò)按ACTIVATEKEY鍵來(lái)開(kāi)始和結(jié)束與新的AVI程序的交互作用。而且該程序本身可能被暫停和繼續(xù)。
該最小化處理是循環(huán)處理。例如,這個(gè)新AVI程序,如果暫停,如果在AVI程序成分分組業(yè)務(wù)中檢測(cè)到另外一個(gè)AVI程序,也可以被最小化。在這種情況下,存儲(chǔ)器的另一存儲(chǔ)塊被分配,于是AVI程序的執(zhí)行狀態(tài)和環(huán)境,根據(jù)它的識(shí)別符和持續(xù)時(shí)間存儲(chǔ)在這個(gè)存儲(chǔ)塊中??梢酝瑫r(shí)被最小化的程序的數(shù)目?jī)H受到所需存儲(chǔ)包括最小化程序的執(zhí)行狀態(tài)和環(huán)境的所有存儲(chǔ)塊數(shù)量的限制。
如果沒(méi)有足夠的可用的存儲(chǔ)空間用以裝入新的目錄模塊,或者執(zhí)行由先前裝入的目錄模塊所代表的程序,而且如果有表示最小化的程序已分配了的存儲(chǔ)器塊,系統(tǒng)裝入程序可以自動(dòng)地根據(jù)算法重新分配某些或全部的存儲(chǔ)器塊(例如首先重新分配最早的存儲(chǔ)器塊,或者首先重新分配標(biāo)為由最初的應(yīng)用可擴(kuò)展的存儲(chǔ)器塊)以試圖派生充分的存儲(chǔ)空間。另外,系統(tǒng)裝入程序可為觀看者表現(xiàn)出最小化應(yīng)用的列表,以允許觀看者選擇某些或刪除所有的。代表選擇的最小化應(yīng)用的存儲(chǔ)塊于是被重新分配以導(dǎo)出充分的存儲(chǔ)空間。
這時(shí),包含先前最小化AVI程序的執(zhí)行狀態(tài)和環(huán)境的存儲(chǔ)塊保持分配在存儲(chǔ)器中。如前所述,在每個(gè)存儲(chǔ)塊中有一個(gè)持續(xù)時(shí)間。如在任何塊中持續(xù)時(shí)間超過(guò)了,于是先前的最小化AVI程序重復(fù)進(jìn)行。在這種情況下,程序被認(rèn)作已進(jìn)入停止?fàn)顟B(tài)69,它的包含執(zhí)行狀態(tài)和環(huán)境的存儲(chǔ)塊被重新分配,先前的最小化AVI程序的所有記錄失掉了。
然而,可以讓解碼器10再次接收包含先前的最小化的AVI程序的目錄、代碼和數(shù)據(jù)模塊的AVI程序成分,或讓AVI程序回到該流程(regaintheflow)。例如交互式的商業(yè)節(jié)目可能已經(jīng)結(jié)束,進(jìn)入HALTED停止?fàn)顟B(tài)69,或者觀看者可以改變?cè)擃l道返回到這個(gè)頻道。系統(tǒng)裝入程序開(kāi)始裝入AVI程序成分分組業(yè)務(wù)中的“新”的目錄。每當(dāng)新的目錄裝入,應(yīng)用識(shí)別符與包含當(dāng)前存儲(chǔ)在RAM412中的狀態(tài)和環(huán)境的所有存儲(chǔ)塊的識(shí)別符相比較。如果相符合的塊找到了,于是代碼和數(shù)據(jù)模塊被裝入,AVI程序處在INACTIVE狀態(tài)61,但是它的執(zhí)行狀態(tài)在它剛被最小化前被刷新。當(dāng)觀看者按動(dòng)ACTIVATEKEY鍵時(shí),AVI程序進(jìn)入ACTIVE狀態(tài)63,并且在先前停止處開(kāi)始執(zhí)行該程序。用這種方式程序可以暫時(shí)停止以進(jìn)行其他的AVI程序,然而不需同時(shí)將二個(gè)程序所需的充分資源保留在存儲(chǔ)器中,而重新開(kāi)始程序。
權(quán)利要求
1.在接收包括目錄和在目錄中有相關(guān)識(shí)別符的AVI程序的分組數(shù)據(jù)流的一種音頻視頻交互式(AVI)的接收機(jī)中的一種控制執(zhí)行AVI程序的方法,其特征是有如下的步驟響應(yīng)在分組數(shù)據(jù)流中出現(xiàn)的AVI程序,將該AVI程序裝入存儲(chǔ)器;開(kāi)始執(zhí)行裝入的AVI程序;和當(dāng)標(biāo)識(shí)不同的AVI程序的目錄在分組數(shù)據(jù)流中被檢測(cè)到時(shí),最小化該執(zhí)行AVI程序。
2.根據(jù)權(quán)利要求1所述的方法,其特征是最小化該執(zhí)行AVI程序的步驟還包括如下步驟停止執(zhí)行該AVI程序;在存儲(chǔ)器的一存儲(chǔ)塊中存儲(chǔ)AVI程序的識(shí)別符、以及AVI程序的執(zhí)行狀態(tài)和環(huán)境;和從存儲(chǔ)器中清除AVI程序。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于裝入AVI程序的步驟中還包括如下步驟搜尋包含與那個(gè)AVI程序相符的識(shí)別符的先前存儲(chǔ)的存儲(chǔ)塊;和如果是相符的存儲(chǔ)塊,在該存儲(chǔ)塊中設(shè)定AVI程序的執(zhí)行狀態(tài)和環(huán)境。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于分組數(shù)據(jù)流還包括執(zhí)行信號(hào),并進(jìn)一步包括響應(yīng)分組數(shù)據(jù)流中結(jié)束執(zhí)行信號(hào)的停止執(zhí)行并從存儲(chǔ)器中清除AVI程序的步驟。
5.根據(jù)權(quán)利要求1的方法,其特征在于分組數(shù)據(jù)流還包括執(zhí)行信號(hào),并進(jìn)一步包括如下步驟響應(yīng)在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào),暫停執(zhí)行AVI程序;和響應(yīng)在分組數(shù)據(jù)流中的繼續(xù)執(zhí)行信號(hào),繼續(xù)執(zhí)行先前暫停的AVI程序。
6.根據(jù)權(quán)利要求5的方法,其特征在于響應(yīng)在分組數(shù)據(jù)流中的結(jié)束執(zhí)行信號(hào)停止執(zhí)行并從存儲(chǔ)器中清除AVI程序的步驟。
7.在接收包括AVI程序和執(zhí)行信號(hào)的分組數(shù)據(jù)流的音頻視頻交互式(AVI)接收機(jī)中的控制AVI程序執(zhí)行的方法,其特征在于如下步驟響應(yīng)在分組數(shù)據(jù)流中出現(xiàn)的AVI程序?qū)VI程序裝入存儲(chǔ)器;開(kāi)始執(zhí)行裝入的AVI程序;和響應(yīng)在分組數(shù)據(jù)流中的結(jié)束執(zhí)行信號(hào)停止執(zhí)行并從存儲(chǔ)器中清除AVI程序。
8.根據(jù)權(quán)利要求7的方法,其特征在于結(jié)束執(zhí)行信號(hào)在分組數(shù)據(jù)流中是以結(jié)束執(zhí)行信號(hào)分組的形式出現(xiàn)的。
9.根據(jù)權(quán)利要求7的方法,其特征在于如下步驟響應(yīng)在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào)暫停執(zhí)行AVI程序;和響應(yīng)在分組數(shù)據(jù)流中的繼續(xù)執(zhí)行信號(hào)繼續(xù)執(zhí)行先前暫停的AVI程序。
10.根據(jù)權(quán)利要求9的方法,其特征在于分組數(shù)據(jù)流中的暫停信號(hào)是由在暫停期間重復(fù)的暫停執(zhí)行信號(hào)分組所表現(xiàn)的,而繼續(xù)執(zhí)行信號(hào)是由不重復(fù)的暫停執(zhí)行信號(hào)分組所表現(xiàn)的。
11.根據(jù)權(quán)利要求9的方法,其特征在于在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào)是由暫停執(zhí)行信號(hào)分組所表現(xiàn)的,而由繼續(xù)執(zhí)行信號(hào)分組表現(xiàn)繼續(xù)執(zhí)行信號(hào)。
12.在接收具有AVI程序和執(zhí)行信號(hào)的分組數(shù)據(jù)流以及包括一個(gè)用于控制執(zhí)行AVI程序的執(zhí)行控制器的音頻視頻交互式(AVI)接收機(jī)中,控制執(zhí)行AVI程序的方法,其特征在于如下步驟在該執(zhí)行控制器中響應(yīng)在分組數(shù)據(jù)流中出現(xiàn)的AVI程序,將AVI程序裝入存儲(chǔ)器中;發(fā)出一個(gè)啟動(dòng)觸發(fā)消息給AVI程序以響應(yīng)用戶的輸入;響應(yīng)在分組數(shù)據(jù)流中的結(jié)束執(zhí)行信號(hào)發(fā)出一個(gè)退出消息給AVI程序;響應(yīng)在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào)發(fā)出一個(gè)暫停消息給AVI程序;響應(yīng)在分組數(shù)據(jù)流中的繼續(xù)執(zhí)行信號(hào)發(fā)出一個(gè)繼續(xù)消息給AVI程序;和在該AVI程序中執(zhí)行下列中的一個(gè)一種非現(xiàn)用(inactive)的狀態(tài),在該狀態(tài)下AVI程序不被使用;一種有效(active)狀態(tài),在該狀態(tài)下正在執(zhí)行AVI程序;一種暫停狀態(tài),在該狀態(tài)下,暫停執(zhí)行AVI程序;響應(yīng)將AVI程序裝入存儲(chǔ)器,而進(jìn)入非現(xiàn)用狀態(tài);響應(yīng)退出消息,停止執(zhí)行AVI程序并從存儲(chǔ)器中清除AVI程序;響應(yīng)有效觸發(fā)消息,當(dāng)在非現(xiàn)用狀態(tài)時(shí)進(jìn)入有效狀態(tài);當(dāng)在有效狀態(tài)下響應(yīng)有效觸發(fā)消息進(jìn)入非現(xiàn)用狀態(tài);和響應(yīng)暫停消息進(jìn)入暫停狀態(tài);和當(dāng)在暫停狀態(tài)響應(yīng)繼續(xù)消息進(jìn)入有效狀態(tài);和響應(yīng)有效觸發(fā)消息進(jìn)入非現(xiàn)用狀態(tài)。
13.根據(jù)權(quán)利要求12的方法,其特征在于在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào)是由在暫停時(shí)間間隔內(nèi)的重復(fù)的暫停執(zhí)行信號(hào)分組所表現(xiàn)的,而繼續(xù)執(zhí)行信號(hào)是由不重復(fù)的暫停執(zhí)行信號(hào)分組所表現(xiàn)的;和在執(zhí)行控制器中發(fā)出暫停消息的步驟包括響應(yīng)第1個(gè)暫停執(zhí)行信號(hào)分組發(fā)出暫停消息的步驟;在執(zhí)行控制器中發(fā)出繼續(xù)消息的步驟包括在沒(méi)有收到暫停執(zhí)行信號(hào)分組的預(yù)定時(shí)間期間過(guò)后發(fā)出一個(gè)繼續(xù)消息的步驟。
14.根據(jù)權(quán)利要求12的方法,其特征在于在分組數(shù)據(jù)流中的暫停執(zhí)行信號(hào)是由暫停執(zhí)行信號(hào)分組表現(xiàn)的,而繼續(xù)執(zhí)行信號(hào)是由繼續(xù)執(zhí)行信號(hào)分組表現(xiàn)的;和在執(zhí)行控制器中發(fā)出暫停消息的步驟包括響應(yīng)一個(gè)暫停執(zhí)行信號(hào)分組發(fā)出暫停消息的步驟;和在執(zhí)行控制器中發(fā)出繼續(xù)消息的步驟包括響應(yīng)一個(gè)繼續(xù)執(zhí)行信號(hào)分組發(fā)出繼續(xù)消息的步驟。
15.在一種在用戶控制下選擇接收多個(gè)分組數(shù)據(jù)流中的一個(gè)分組數(shù)據(jù)流的音頻視頻交互式接收機(jī)中,每個(gè)分組數(shù)據(jù)流包含具有識(shí)別符的AVI程序以及執(zhí)行信號(hào),該接收機(jī)包括控制執(zhí)行AVI程序的執(zhí)行控制器,在該接收機(jī)中控制執(zhí)行AVI程序的方法,其特征在于如下步驟在執(zhí)行控制器中響應(yīng)在從多個(gè)分組數(shù)據(jù)流中選擇的一個(gè)中出現(xiàn)的AVI程序,將AVI程序裝入存儲(chǔ)器,將裝入的應(yīng)用程序的識(shí)別符存入存儲(chǔ)器的各自存儲(chǔ)單元,搜尋先前存儲(chǔ)在存儲(chǔ)器中包含最小化AVI程序的數(shù)據(jù)塊,并且如果在該數(shù)據(jù)塊中包含的識(shí)別符與裝入存儲(chǔ)器中的AVI程序的識(shí)別符相符,將新的裝入的AVI程序的執(zhí)行狀態(tài)和環(huán)境設(shè)定為包含在相匹配數(shù)據(jù)塊中的執(zhí)行狀態(tài)和環(huán)境;響應(yīng)用戶輸入發(fā)出一個(gè)有效的觸發(fā)消息給AVI程序;響應(yīng)從多個(gè)分組數(shù)據(jù)流中選擇的一個(gè)中的結(jié)束執(zhí)行信號(hào),發(fā)一個(gè)退出消息給AVI程序;響應(yīng)從多個(gè)分組數(shù)據(jù)流中選擇的一個(gè)中的暫停執(zhí)行信號(hào),發(fā)出一個(gè)暫停消息給AVI程序;和響應(yīng)從多個(gè)分組數(shù)據(jù)中選擇的一個(gè)中的繼續(xù)執(zhí)行信號(hào),發(fā)出一個(gè)繼續(xù)消息給AVI程序;響應(yīng)在具有與存儲(chǔ)器中各自存儲(chǔ)單元中的識(shí)別符不同的識(shí)別符的數(shù)據(jù)流中出現(xiàn)的AVI程序;發(fā)出一個(gè)最小化消息給AVI程序;和在AVI程序中執(zhí)行下面中的一個(gè)一種非現(xiàn)用狀態(tài),在這種狀態(tài)中AVI程序是非現(xiàn)用的;一種有效狀態(tài),在這種狀態(tài)中AVI程序正在執(zhí)行;暫停狀態(tài),在這種狀態(tài)中AVI程序暫停;和已最小化的狀態(tài),有如下步驟停止執(zhí)行AVI程序;然后在存儲(chǔ)器的一個(gè)存儲(chǔ)塊中儲(chǔ)存AVI程序的識(shí)別符,以及AVI程序的執(zhí)行狀態(tài)和環(huán)境;然后從存儲(chǔ)器中消除AVI程序;響應(yīng)在存儲(chǔ)器中裝入的AVI程序,進(jìn)入非現(xiàn)用狀態(tài),響應(yīng)退出消息,停止執(zhí)行并從存儲(chǔ)器中消除AVI程序;當(dāng)處在非現(xiàn)用狀態(tài)時(shí),響應(yīng)有效觸發(fā)消息進(jìn)入有效狀態(tài);當(dāng)處在有效狀態(tài)時(shí);響應(yīng)有效觸發(fā)消息,進(jìn)入非現(xiàn)用狀態(tài);和響應(yīng)暫停消息,進(jìn)入暫停的狀態(tài);和當(dāng)處在暫停狀態(tài)時(shí)響應(yīng)繼續(xù)消息,進(jìn)入有效狀態(tài);響應(yīng)有效觸發(fā)消息,進(jìn)入非現(xiàn)用狀態(tài);和響應(yīng)最小化消息,進(jìn)入最小化狀態(tài)。
16.按照權(quán)利要求15的方法,其特征在于執(zhí)行應(yīng)用程序中的最小化狀態(tài)的存儲(chǔ)步驟還包括如下步驟在一個(gè)存儲(chǔ)塊中存儲(chǔ)表示存儲(chǔ)在存儲(chǔ)塊中的數(shù)據(jù)要保留在存儲(chǔ)器中的時(shí)間期間的持續(xù)時(shí)間,在這個(gè)持續(xù)時(shí)間超過(guò)以后,就清除存儲(chǔ)在存儲(chǔ)塊中的數(shù)據(jù)。
17.根據(jù)權(quán)利要求15的方法,其特征在于在多個(gè)分組數(shù)據(jù)流所選中的一個(gè)中的暫停執(zhí)行信號(hào)由在暫停時(shí)間間隙中的暫停執(zhí)行信號(hào)分組表現(xiàn),而繼續(xù)執(zhí)行信號(hào)由不重復(fù)的暫停執(zhí)行信號(hào)分組表現(xiàn);和在執(zhí)行控制器中的發(fā)出暫停消息的步驟包括響應(yīng)第1個(gè)暫停執(zhí)行信號(hào)分組發(fā)出暫停消息的步驟;和在執(zhí)行控制器中的發(fā)送繼續(xù)消息的步驟包括在沒(méi)有接收到暫停執(zhí)行信號(hào)分組的預(yù)定時(shí)間期間過(guò)后發(fā)出一個(gè)繼續(xù)消息的步驟。
18.根據(jù)權(quán)利要求15的方法,其特征在于暫停執(zhí)行信號(hào)由暫停執(zhí)行信號(hào)分組表現(xiàn),而繼續(xù)執(zhí)行信號(hào)由繼續(xù)執(zhí)行信號(hào)分組表示;和在執(zhí)行控制器中發(fā)送暫停消息的步驟包括響應(yīng)暫停執(zhí)行信號(hào)分組發(fā)出暫停消息的步驟;和在執(zhí)行控制器中發(fā)送繼續(xù)消息的步驟包括響應(yīng)繼續(xù)執(zhí)行信號(hào)分組發(fā)出繼續(xù)消息的步驟。
全文摘要
在接收包括目錄和在該目錄中具有有關(guān)的識(shí)別符的AVI程序的分組數(shù)據(jù)流的一種音頻視頻交互式(AVI)接收機(jī)中,一種控制執(zhí)行AVI程序的方法包括下列步驟首先響應(yīng)在分組數(shù)據(jù)流中出現(xiàn)的AVI程序?qū)VI程序裝入存儲(chǔ)器中,然后開(kāi)始執(zhí)行已裝入的AVI程序。然而當(dāng)在分組數(shù)據(jù)流中識(shí)別不同AVI程序的目錄被檢測(cè)到時(shí),對(duì)該執(zhí)行的AVI程序進(jìn)行最小化。
文檔編號(hào)H04N7/173GK1112333SQ9510470
公開(kāi)日1995年11月22日 申請(qǐng)日期1995年4月27日 優(yōu)先權(quán)日1994年4月28日
發(fā)明者J·-R·曼南德, A·德?tīng)柶障?申請(qǐng)人:湯姆森消費(fèi)電子有限公司