專利名稱:Dvd播放器增強的制作方法
技術領域:
本發明涉及一種DVD播放器和一種操作DVD播放器的方法,并特別地涉及一種操作具有增強功能的DVD的方法。
背景技術:
傳統多功能數碼盤(DVD)可包含大量不同的數據類型。特別地,可以將DVD視頻(DVD-V)數據存儲在一種通用數據格式(UFD)文件中。DVD視頻數據以一種標準格式存儲在盤上,所述盤上具有形成單元的大量視頻對象個體,所述單元依次被分組成DVD-V盤上的一個或多個標題。由于本領域技術人員熟知所述格式,因此這里不再提供進一步的細節。
可在傳統的獨立DVD視頻播放器上播放DVD視頻數據。DVD視頻內容主要是音視頻的,但DVD視頻還包括有限交互式菜單的可能性,有限交互式菜單允許用戶導航DVD的內容。在該DVD播放器上實現的虛擬機(VM)上執行這些指令。但是,DVD VM中可用的指令相對局限,并且無法用這些指令生成復雜的應用程序。
DVD盤還能夠以不同于DVD視頻的格式存儲數據。特別地,DVD盤被廣泛用來以一種ISO/UDF格式為計算機系統存儲文件。這些文件可包括能夠存儲在計算機系統中的任何文件。因此,DVD可包括存儲在DVD的ISO/UDF文件系統中的可執行文件。這些可執行文件能夠被設備讀取,特別是可被帶有DVD讀取器的計算機讀取。當被計算機讀取時,這些可執行文件可在該計算機上運行。
另一種標準是涉及廣播素材的多媒體家用平臺(MHP)。在這個已被世界上數個國家引入的標準中,可將Java代碼編寫的復雜應用程序同音視頻內容一起廣播。一個應用程序信息表被廣播以通知MHP應用程序。但是,這一標準無法解決諸如DVD的存儲內容的問題。
Zou等的US2002/0141741描述了一種在諸如DVD的盤上執行應用程序的方法。一種自動運行回放程序被存儲在盤中,并且當盤被插入播放器時便自動地啟動所述自動運行回放程序。該自動運行回放程序自動啟動并隨后被用來訪問和回放媒體內容。通過在盤自身上提供這樣一種程序,促進了復制保護,因為可將版權保護軟件集成到所述程序中。該播放器同樣包括一種傳統DVD VM,用于播放不在DVD上存儲回放程序的傳統DVD盤。這一文獻沒有描述能夠在增強播放器中提供附加功能的向后兼容的DVD盤,而是仍描述了在傳統播放器中提供傳統DVD回放功能的DVD盤。鑒于US2002/0141741中版權保護方面的焦點,傳統播放器中缺乏回放增強DVD能力的這一問題值得考慮。
然而,鑒于大量現有的安裝的DVD播放器,內容供給者很可能想提供既能在現有播放器上回放又能在增強播放器上提供增強功能的DVD視頻盤。
因此,需要增強標準DVD-V,并需要回放方法以及設備,以便通過將應用程序以向后兼容的方式集成到傳統DVD視頻內容中的方法來在DVD上遞送更復雜的應用程序。
發明內容
根據本發明,提供了一種顯示存儲在一個盤上的音視頻內容的方法,所述盤包括DVD視頻內容和非DVD視頻應用程序內容,該方法包括步驟運行一個外部應用程序;啟動DVD視頻虛擬機(VM),用以再生包括音視頻內容和DVD視頻菜單的DVD視頻內容;在該DVD視頻VM中,從盤中讀取DVD視頻內容并且根據這一內容提供一個音視頻顯示;確定該DVD視頻VM中何時發生規定的事件,并且當發生規定的事件中的一個或多個時,從該DVD視頻VM回調到所述外部應用程序;并且執行由所發生事件觸發的應用程序命令。
由事件觸發的應用程序可能僅為初始啟動的外部應用程序。或者,該應用程序可能為一個獨立的應用程序,其或者由DVD VM直接啟動或者由例如外部應用程序的另一個應用程序啟動。
優選地,一種獨立于平臺的執行環境被啟動,并且所述的外部應用程序在這一環境中運行。
重要地,DVD VM被用來解釋存儲為傳統DVD-V內容的音視頻內容。因此,DVD-VM應該能夠完全處理包括音視頻內容和菜單的DVD視頻。當規定的事件發生時,在獨立于平臺的執行環境中提供增強功能。
通過使用基本傳統的DVD VM來顯示標準音視頻內容,將能夠更容易地保證增強盤同傳統播放器的兼容性。傳統播放器僅將DVD視頻解釋為常規的。通常,傳統播放器將僅運行其傳統的DVD VM。盡管傳統DVD VM不能登記事件以便在事件發生時回調調用程序,或者不能夠允許處理數據結構,但它在沒有增強功能的情況下僅將DVD-V數據回放為傳統DVD-V。
可以方便地在平臺獨立的執行環境中編寫DVD-VM。
特別優選地,一旦DVD插入播放器便自動啟動獨立于平臺的執行環境。存在很多實現這一目的的方法。
一個方法中,盤包含一個具有標準名稱的Java歸檔文件(jar文件),例如start.jar,包括DVD的ISO/UDF文件系統中所有的類和資源。這一文件包含標準的manifest.mf文件,它包括自動啟動應用程序的位置及其啟動參數。
另一種方法中,以0x06(私有數據)的流類型或以0x80到0xFF(用戶數據)范圍的流類型將一個附加基本流包含在盤上。這一附加基本流包括在分包基本流(PES)數據包中打包的Java歸檔文件的內容。第一數據包包括應用程序信息表(AIT)數據。
盤播放器的引導加載器識別附加基本流并且檢查第一PES數據包是否包含AIT。如果包含,則從附加基本流的PES數據包建立一個jar文件并且啟動AIT中規定的應用程序。
常規盤播放器只是忽略所述私有基本流。
優選地,通過一個應用編程接口(API)提供DVD VM同外部的平臺獨立的應用程序之間的通信。因此,不同于傳統DVD回放系統中,優選實施例中的DVD VM包括一個用以由外部應用程序控制的API,它實現從平臺獨立的執行環境調用API以向API登記所規定的事件的功能,并且當所登記的規定事件發生時實現從VM回調到平臺獨立的執行環境的功能。
應該注意傳統DVD回放系統具有媒體控制API來啟動、暫停和后退DVD。但是,這些API僅覆蓋DVD播放器的傳統操作控制;DVD VM沒有被暴露,因此無法訪問,并且無法訪問DVD VM的內部處理。
在一個優選實現中,DVD VM API允許外部應用程序調用API來處理VM數據結構,例如菜單。這允許例如在規定事件之一發生之后,外部應用程序根據需要提供不同的菜單選項。
在外部應用程序處理事件之后,可能將處理返回到DVD VM來播放更多的音視頻內容或者顯示一個更新的菜單并等待用戶輸入。
當在一個事件之后控制返回到外部應用程序時,外部應用程序可執行要求的任何處理。例如,外部應用程序可允許用戶玩適當的視頻游戲,并且外部應用程序可根據游戲的結果令DVD VM顯示不同的連續的音視頻內容。
DVD優選地包括MPEG流描述符,并且該方法包括識別這些MPEG流描述符的步驟,例如用以使外部應用程序同視頻中的事件同步。
用于平臺獨立的執行環境的外部應用程序優選地為平臺獨立的代碼,例如Java、MHEG、開放式電視(OpenTV)、高速傳媒設備(Media Highway)或者它們的組合。這避免了傳統DVD將應用程序存儲于只能在適當計算機上執行的ISO或UDF文件系統中的問題。
本發明還涉及用于令DVD播放器執行前述方法的代碼。
另一方面,本發明還涉及一種使用前述方法播放DVD盤的DVD播放器。因此,本發明同樣涉及一種DVD播放器,其包括實現用于播放DVD視頻數據的DVD虛擬機(VM)的代碼,該DVD虛擬機進一步包括一個包含代碼的應用編程接口(API),通過所述代碼,外部應用程序能調用API來啟動或停止DVD VM的執行,用以登記規定的事件,并且當規定事件發生時回調一個調用應用程序;一個自動啟動系統,如果存在外部應用程序,其自動運行存儲在插入的DVD盤上的該外部應用程序,由此該外部應用程序調用DVD VMAPI來回放DVD中的內容。
現將僅以示例的方式、參考附圖對本發明的一個優選實施例進行說明,附圖中圖1示出一個根據本發明的DVD播放器;圖2示出一個根據本發明的盤的表示;以及圖3為實現本發明的API的示意圖。
具體實施例方式
根據本發明第一實施例的DVD視頻播放器2包括DVD讀取器4,用以讀取插入播放器2中的DVD盤6。DVD視頻播放器2還包括處理器10和存儲器12。DVD視頻播放器還可具有許多其它部件,例如在獨立播放器的情況下包括遙控器14。如果DVD視頻播放器2轉而在傳統個人計算機上實現,遙控器14可由鍵盤和鼠標或者其它眾所周知的數據輸入系統代替。
DVD視頻播放器2被連接到一個例如傳統電視機的音視頻再生系統16。本領域技術人員將理解,所述音視頻再生系統可比一個簡單的電視機復雜得多并且包括環繞聲解碼器、多路放大器以及許多其它部件。
存儲器12包括代碼18,用以在DVD播放器2中實現一個平臺獨立虛擬機。“虛擬機”是指能夠實施標準指令的系統,以允許以平臺獨立的方式來執行程序。在當前描述的具體實例中,虛擬機為Java虛擬機18,它允許DVD視頻播放器執行Java代碼。但是,本領域技術人員將理解,存在其它平臺獨立代碼,例如MHEG、開放式電視、高速傳媒設備等等,并且它們可以被替代使用或附加使用。
存儲器12還包括代碼20,用以實現一個DVD-V虛擬機。它的大部分功能都是標準的,并且允許DVD視頻播放器2僅回放音視頻DVD視頻內容、使用遙控器14訪問菜單、并且執行DVD視頻播放器的所有標準功能。
優選實施例中,在平臺獨立的虛擬機18的平臺獨立的代碼18中實現DVD VM 20。這使得DVD VM 20同運行在平臺獨立的虛擬機18中的外部應用程序之間的通信變得直接。但是,技術人員將意識到如何在運行于相同DVD播放器的不同應用程序中的進程之間進行通信,因此DVD VM不必一定運行在相同的平臺獨立的虛擬機18中。
DVD VM 20還包括一個應用編程接口30(API),它賦予DVD視頻播放器2增強功能。
API 30暴露了DVD視頻數據和虛擬機的結構,因為到API的調用可被用來訪問這些數據,包括單元、視頻對象以及DVD視頻數據的各種其它標準部分。到API的調用可被用來執行圖3中示意性示出的下列功能(1)啟動VM 32,即啟動DVD視頻的解碼;(2)停止VM 34;(3)向VM登記36規定的事件,例如DVD視頻數據中的特定位置,諸如所到達的特定單元或在特定菜單中選擇的特定選項;以及(4)處理數據結構38,例如用以改變由VM顯示的菜單。
API提供登記來自DVD VM的回調的能力,當規定的事件發生時調用所述回調。通常,這些是在先由一個調用向API登記的事件,但其它事件也可能引發回調,例如到達DVD視頻數據末端。
圖2示意性示出了具有增強功能的DVD 6。
DVD包括DVD視頻數據22并附加包括存儲于DVD的UDF/ISO文件系統中的具有標準名稱的Java歸檔文件(.jar文件)24,例如start.jar。歸檔文件存儲包括清單文件26(如傳統在Java歸檔中被稱為META_INF/MANIFEST.MF)以及自動啟動應用程序文件29的多個文件。這擴展為包括如同在MHP廣播環境中用來發信號通知MHP應用程序的應用程序信息表(AIT)28的表示。AIT識別主要的外部應用程序27和啟動參數。
插入DVD盤6時,Java歸檔文件24被解壓縮且清單被用來運行具有適當參數的自動啟動應用程序29。假定以Java來編寫自動啟動應用程序29,這一自動啟動應用程序29將在DVD視頻播放器2中的java虛擬機18上運行。
自動啟動應用程序29調用DVD視頻API來登記事件。
在登記事件之后,自動啟動應用程序29便調用DVD視頻API來啟動DVD VM 20回放DVD視頻數據22。DVD VM 20經過登記的事件之一時,將控制從DVD VM 20回傳到自動啟動應用程序29,用以允許自動啟動應用程序29處理該事件。
不同的事件需要不同的處理,且所描述的方法旨在靈活和允許提供不同的內容。API 30允許調用DVD VM來更新菜單結構,且這可以到達某些事件所要求的程度。或者,對于其它事件,復雜的交互式程序可由自動啟動應用程序29啟動并運行,例如計算機游戲應用程序27。在某些情況下,將要求停止DVD VM,且這可以通過從自動啟動應用程序29到DVD VM API的適當調用來執行。其它情況下,要求DVD VM只是繼續下去。
在本說明書中,諸如運行于DVD VM外部的自動應用程序29的應用程序和其它應用程序27將被公知為外部應用程序27、29。
某些情況下,外部應用程序27、29響應于一個事件而加入一個菜單項,且這一菜單項的選擇被登記為一個事件,并且處理傳回到DVDVM。那么,如果到達菜單且選擇了項目,應用程序可執行適當的動作,例如停止DVD視頻回放并啟動一個游戲。
處理事件之后,可使用DVD視頻API將控制傳回到DVD VM,以便允許后續的DVD視頻回放。
因此,通過使用適當播放器2中的自動啟動應用程序29,這一方法允許DVD盤6自動啟動。但是,如果DVD盤6插入到傳統播放器中,盡管沒有由外部應用程序27、29中的事件處理所提供的或由這些應用程序所調用的附加功能,但該播放器中的傳統DVD VM將啟動并按標準方式播放DVD盤6。
可提供另一種方法來提供適當自動啟動功能,其中Java歸檔文件24被存儲在DVD盤上提供的附加基本流中。例如,可在一種流中提供歸檔文件,所述流具有表示私有數據的0x06的流類型,或用戶數據范圍0x80到0xFF的流類型,例如0xBS或0xBF。歸檔文件被分割為數據包,第一數據包包含AIT數據。
DVD盤6插入DVD播放器2時,引導加載器識別附加的基本流并且檢查第一數據包是否包含AIT。如果包含,它從所述流建立一個jar文件,將這一文件加入到路徑中并啟動AIT中規定的應用程序。
標準DVD播放器將簡單地忽略這個附加流。
這個備選方法具有很大的優點,即外部應用程序27、29可被DVD加擾系統保護。
MPEG流描述符可包含在DVD視頻流中用以允許外部應用程序同DVD視頻內的事件同步。例如,支持這種情況的一種機制包括在對于外部應用程序可見的文件系統中放置一個數字存儲媒體命令和控制(DSMCC)StreamEvent(流事件)對象。在MHP應用程序的情況下,將使用org.dvb.dsmcc API在該DSMCC StreamEvent對象上登記一個回調。這令系統啟動對DVD視頻流的某些流描述符的監控。在解碼這些描述符時發生回調。應該注意這一機制比僅將UDF文件系統安裝在DVD上的要求要多,或者需要UDF之上的仿真層或者需要用于在盤上分開存儲的DSMCC文件系統的解碼器。
同樣值得注意,DVD視頻文件系統通過API暴露,并且這允許所述外部應用程序極好地集成到DVD視頻中。
還可通過Java媒體框架(JMF)提供外部應用程序對DVD VM的控制。
盡管將自動啟動應用程序29描述為Java應用程序,但還存在許多其它獨立于平臺的標準,例MHEG、開放式電視、高速傳媒設備,并且可采用這些標準中的一個或多個編寫所述自動啟動應用程序的至少一部分。某些情況下,例如當已知DVD盤6將運行在什么類型的播放器2時,可提供非平臺獨立的代碼;或者,可使用此類非平臺獨立的代碼在某些類型的機器上實現附加功能。
可將本發明應用到任何適當的播放器。
通過閱讀本公開,本領域的技術人員將明顯看出其它的變形和修改。這些變形和修改包含了在音視頻播放器和廣播系統的設計、制造和使用中已知的、并且可以用來替換或者輔助此處所描述的特征的等價替換和其它特征。盡管在本申請中權利要求闡明了特定特征的組合,應當理解的是本公開的范圍還包括任何新穎的特征或者此處公開的特征的任何新穎的組合,而不管它們是明確的、隱含的還是這些特征的任何歸納,也不管它是否同本發明一樣可以解決所有相同的技術問題,或者解決這些技術問題中的一部分。本發明在此給出以下評論新的權利要求被表達為在本申請或者從它衍生的任何進一步的申請審查階段的任何此類特征和/或此類特征的組合。
權利要求
1.一種DVD盤(6),包括以DVD視頻格式存儲的內容(22),包括音視頻內容和至少一個菜單;獨立于非DVD視頻平臺的格式的應用程序代碼(28、29);以及存儲在盤上的裝置,用于識別在回放以DVD視頻格式存儲的內容期間發生的事件,以便觸發一個增強的DVD播放器來運行對應所觸發事件的應用程序代碼。
2.一種用于顯示存儲在盤上的音視頻內容的方法,所述盤包括DVD視頻內容和非DVD視頻應用程序內容,該方法包括步驟運行存儲在盤上的外部應用程序(28);啟動DVD視頻虛擬機(VM)(20),用以運行包括音視頻內容和DVD視頻菜單的DVD視頻內容;在DVD視頻VM(20)中,從所述盤讀取DVD視頻內容并且根據這一內容提供一個音視頻顯示;確定DVD視頻VM中何時發生規定的事件,并且當發生所述規定的事件中的一個或多個時,從DVD視頻VM回調到外部應用程序(28);以及執行由所發生事件觸發的應用程序命令(28、29)。
3.權利要求2所述的方法,進一步包括啟動一種平臺獨立的執行環境(18),并且在這一環境中運行所述外部應用程序(28)。
4.權利要求3所述的方法,包括將盤(6)插入一個適當的播放器并且自動啟動平臺獨立的執行環境(18)。
5.權利要求3或4所述的方法,其中DVD VM包括一個用于根據平臺獨立的執行環境進行控制的應用編程接口API,所述方法包括步驟從平臺獨立的執行環境調用所述API,用以向該API登記規定的事件,并且當登記的規定事件發生時,從視頻VM回調到平臺獨立的執行環境。
6.權利要求2-6中任一權利要求所述的方法,包括步驟調用API用以處理來自外部應用程序(28)的視頻VM數據結構。
7.權利要求6所述的方法,其中視頻VM數據結構為菜單。
8.權利要求2-7中任一權利要求所述的方法,包括識別一個存儲在DVD中標識DVD視頻內容的MPEG流描述符,以便觸發在DVD視頻VM中對規定事件之發生的確定。
9.一種DVD播放器,包括一個DVD虛擬機(VM)(20),用以顯示DVD視頻數據,該DVD虛擬機(20)進一步包括一個包含代碼的應用編程接口(API)(30),通過所述代碼,外部應用程序能調用API來啟動或停止DVD VM的運行,以便登記規定的事件,并且當規定的事件發生時,調用一個回調應用程序;一個自動啟動系統,如果存在外部應用程序,其用以自動運行存儲在插入的DVD盤上的外部應用程序(28),由此,外部應用程序(28)調用DVD VM API(20)來回放DVD上的內容。
10.權利要求9所述的DVD播放器,其中DVD VM API還實現對API的調用來處理DVD數據結構。
11.一種計算機程序,用以令DVD播放器執行根據權利要求2-8中任一權利要求所述的方法的步驟。
12.權利要求11所述的計算機程序,被記錄在數據載體中。
全文摘要
一種擴展的DVD系統包括DVD播放器2,它能夠播放具有擴展應用程序能力的盤6。一旦插入盤,便從一種平臺獨立的執行環境(18)啟動DVD視頻虛擬機(VM)20,其從盤中讀取視頻內容并且根據這一內容提供一種音視頻顯示。DVD視頻VM 20確定何時發生規定事件并且回調到平臺獨立的執行環境18,這產生需要執行的命令,例如存儲于DVD盤6的獨立應用程序。
文檔編號G11B27/10GK1788316SQ200480013027
公開日2006年6月14日 申請日期2004年5月10日 優先權日2003年5月15日
發明者A·S·R·阿斯萊, I·本杰斯, J·C·福斯特, R·J·豪德斯沃思 申請人:皇家飛利浦電子股份有限公司