国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于播放裝置的集成電路的制作方法

      文檔序號:6750029閱讀:308來源:國知局
      專利名稱:用于播放裝置的集成電路的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于控制虛擬機(jī)中應(yīng)用程序執(zhí)行的應(yīng)用程序控制技 術(shù)的領(lǐng)域,并且更具體地,涉及用于將該控制技術(shù)應(yīng)用于例如 BD-ROM的記錄介質(zhì)和BD-ROM播放裝置的應(yīng)用技術(shù),并且其中該 BD-ROM用于發(fā)行電影作品。
      背景技術(shù)
      用于虛擬機(jī)的應(yīng)用程序控制技術(shù),例如Java (TM)編程,已經(jīng) 在個人計算機(jī)軟件行業(yè)中得到了廣泛應(yīng)用。目前,如何將從個人計算 機(jī)軟件發(fā)展而來的Java (注冊商標(biāo),在下文中用TM表示)編程用于 實現(xiàn)BD-ROM (藍(lán)光光盤只讀存儲器)播放裝置中的播放控制是一 個研究的熱點。
      在下面專利文件1中敘述的技術(shù)是一種公知的關(guān)于一種類似的 播放裝置的傳統(tǒng)技術(shù)。 *專利文件1:日本專利公開No.281324
      發(fā)明內(nèi)容
      本發(fā)明要解決的問題
      同吋,Java (TM)編程所創(chuàng)建的應(yīng)用程序的運行并不穩(wěn)定,運 行狀態(tài)會根據(jù)資源使用狀態(tài)和CPU負(fù)載而改變。因此,經(jīng)常會發(fā)生 資源短缺,而這會導(dǎo)致應(yīng)用程序的啟動失敗或者導(dǎo)致應(yīng)用程序異常終 止,從導(dǎo)致裝置發(fā)生中斷。在個人計算機(jī)軟件行業(yè)中,人們可能并不 將這視為嚴(yán)重問題。但是,在制造例如BD-ROM播放裝置這樣的消費品的領(lǐng)域中,這種現(xiàn)象將會被視作質(zhì)量問題。因此,許多制造商都
      不愿意使用Java (TM)編程來實現(xiàn)裝置控制。(注中斷是指這樣一 種狀態(tài),其中,裝置中的軟件停止工作并且顯示屏變?yōu)楹谄?
      本發(fā)明的目的是提供一種記錄介質(zhì),當(dāng)控制記錄介質(zhì)的應(yīng)用程序 異常終止時,或者當(dāng)該應(yīng)用程序發(fā)生啟動故障時,所述記錄介質(zhì)可以 實現(xiàn)失效保護(hù)。
      解決這些問題的方法
      通過一種記錄介質(zhì)可以實現(xiàn)上述目的,在該介質(zhì)中記錄有應(yīng)用程 序、數(shù)字流以及管理信息,其中所述應(yīng)用程序是用編程語言編寫的用 于虛擬機(jī)的程序,并且定義了一個生存周期,在該周期內(nèi)虛擬機(jī)可以 執(zhí)行該應(yīng)用程序,并且管理信息指示了在所述生存周期期間與所述應(yīng) 用程序的執(zhí)行同時執(zhí)行的所述數(shù)字流的播放控制。
      本發(fā)明的作用
      根據(jù)本發(fā)明的記錄介質(zhì),由于為每個生存周期定義與應(yīng)用程序的 執(zhí)行同時執(zhí)行的數(shù)字流的播放控制,如果發(fā)生應(yīng)用程序的啟動故障或 者如果該應(yīng)用程序在執(zhí)行過程中異常終止,那么同時執(zhí)行的數(shù)字流的 播放會繼續(xù)進(jìn)行,其提供了一種狀態(tài),在該狀態(tài)中"屏幕上仍然顯示 某些圖像"。通過這種安排,可以避免裝置發(fā)生中斷這種最壞情況。 這至少在一定程度上可以使裝置的制造商感到放心。
      這種放心感可以把對質(zhì)量問題放心不下的制造商推向通過Java (TM)應(yīng)用程序的播放裝置控制的開發(fā)。通過這種強(qiáng)有力的推動作 用,播放裝置將會變得更便宜并且種類更多,并且BD-ROM的內(nèi)容 也將得到豐富,而這也會引領(lǐng)內(nèi)容相關(guān)行業(yè)的增長。
      附圖簡述


      圖1顯示了本發(fā)明的播放裝置的一種使用形式; 圖2顯示了用于BD-ROM的文件/目錄結(jié)構(gòu); 圖3顯示了播放列表信息的構(gòu)建;圖4顯示了 AV剪輯時間軸和PL時間軸之間的關(guān)系;
      圖5顯示了通過四個Clip—information—file—name實現(xiàn)的批說明;
      圖6顯示了 PLMark信息的內(nèi)部結(jié)構(gòu);
      圖7顯示了通過PLMarks定義章;
      圖8顯示了子路徑信息的內(nèi)部結(jié)構(gòu);
      圖9顯示了如何在子播放項時間軸上做出同步說明和播放周期 的定義;
      圖IO顯示了電影對象的內(nèi)部結(jié)構(gòu); 圖ll顯示了BD-J對象的內(nèi)部結(jié)構(gòu);
      圖12A顯示了存儲于Java (TM)存檔文件中的程序和數(shù)據(jù); 圖12B顯示了類文件的內(nèi)部結(jié)構(gòu); 圖13顯示了盤內(nèi)容中的狀態(tài)改變; 圖14顯示了 HDMV模式中包含動態(tài)腳本的兩個標(biāo)題; 圖15顯示了BD-J模式(BD-J對象)中包含動態(tài)腳本的標(biāo)題的 內(nèi)部結(jié)構(gòu);
      圖16顯示了不包含播放列表管理表的一個標(biāo)題;
      圖17顯示了從HDMV模式中標(biāo)題到BD-J模式中標(biāo)題的一個轉(zhuǎn)
      移;
      圖18顯示了從BD-J模式中標(biāo)題到HDMV模式中標(biāo)題的一個轉(zhuǎn)
      移;
      圖19顯示了 index.bdmv的內(nèi)部結(jié)構(gòu);
      圖20A顯示了應(yīng)用程序管理表的內(nèi)部結(jié)構(gòu);
      圖20B顯示了應(yīng)用程序管理表中包含的信息元素的含義;
      圖21A顯示了整個盤的時間軸;
      圖21B顯示了時間軸是如何構(gòu)建的;
      圖22A和22B在整個BD-ROM的時間軸上顯示了由一個BD-J 對象標(biāo)識的標(biāo)題播放周期,而該BD-J對象是由標(biāo)識符"bobjjd"標(biāo) 識的;
      圖23顯示了在圖22B中所示時間軸上定義的一種典型的生存周圖24顯示了包含三個標(biāo)題的盤內(nèi)容,所述三個標(biāo)題為主標(biāo)題、
      在線購物標(biāo)題以及游戲標(biāo)題;
      圖25A和25B顯示了應(yīng)用程序管理表和生存周期的實例; 圖26顯示了三種運行屬性(預(yù)發(fā)送、自動運行和暫停)以及前
      一個標(biāo)題的三種可能的狀態(tài)(未運行、運行中和暫停); 圖27A顯示了播放列表管理表的內(nèi)部結(jié)構(gòu); 圖27B顯示了播放列表管理表中包含的信息元素的含義; 圖28顯示了轉(zhuǎn)移目的地標(biāo)題的三種可能的狀態(tài)((i)不具有播
      放列表管理表;(ii)具有播放列表管理表和自動播放以及(iii)具
      有播放列表管理表和預(yù)發(fā)送)與前一個標(biāo)題中PL的兩種可能的狀態(tài) (未播放以及正在播放)的六種組合;
      圖29A顯示了播放列表管理表和應(yīng)用程序管理表的描述實例; 圖29B顯示了如何基于圖29A中所示播放列表和應(yīng)用程序管理
      表,使播放列表被播放和執(zhí)行應(yīng)用程序;
      圖30A顯示了播放列表管理表的描述的一個實例;
      圖30B顯示了是如何基于圖30A中所示腳本播放播放列表以及
      執(zhí)行應(yīng)用程序;
      圖31A至31C顯示了播放列表時間軸和標(biāo)題播放周期之間的關(guān)
      系;
      圖32顯示了本發(fā)明的播放裝置的內(nèi)部結(jié)構(gòu); 圖33以層結(jié)構(gòu)的方式顯示了 CPU 24中的硬件和存儲于其中的 軟件;
      圖34是由呈現(xiàn)引擎31對模塊管理器34所執(zhí)行的處理的說明;
      圖35顯示了應(yīng)用程序管理器36所執(zhí)行的處理;
      圖36顯示了用戶事件管理器37至缺省操作管理器40;
      圖37顯示了Java (TM)虛擬機(jī)39的內(nèi)部結(jié)構(gòu);
      圖38顯示了應(yīng)用程序終止的四種模式;
      圖39是一個流程圖,該圖顯示了應(yīng)用程序管理器36的工作步驟; 圖40顯示了播放列表管理表和應(yīng)用程序管理表的具體實例; 圖41A顯示了實施例2中BD-J對象的內(nèi)部結(jié)構(gòu);圖41B顯示了錯誤管理表的內(nèi)部結(jié)構(gòu);
      圖42顯示了錯誤管理表中五個標(biāo)記的含義;
      圖43A顯示了其中寫有錯誤管理表的兩個標(biāo)題(標(biāo)題#1,標(biāo)題
      #2);
      圖43B顯示了根據(jù)圖43A所示的應(yīng)用程序和錯誤管理表進(jìn)行的 應(yīng)用程序執(zhí)行和播放列表播放的進(jìn)行過程;
      圖44是一個流程圖,該圖顯示了實施例2中應(yīng)用程序管理器36 的工作步驟;
      圖45是一個流程圖,該圖顯示了實施例2中應(yīng)用程序管理器36 的工作步驟;
      圖46是一個流程圖,該圖顯示了由應(yīng)用程序管理器36執(zhí)行的通 知的工作步驟;
      圖47是一個流程圖,該圖顯示了實施例3中應(yīng)用程序管理器36
      的工作步驟;
      圖48A顯示了基于母級別的選擇算法的內(nèi)容;
      圖48B顯示了基于音頻語言的選擇算法的內(nèi)容;
      圖48C顯示了基于對于視頻的播放器配置的選擇算法的內(nèi)容;
      圖49是過程的說明,在該過程中,標(biāo)題無界應(yīng)用程序選擇PL;
      圖50是一個流程圖,該圖顯示了由播放控制引擎32執(zhí)行的PL
      播放工作步驟;
      圖51是一個流程圖,該圖顯示了角改變步驟和向回跳讀/向下跳 讀的工作步驟;
      圖52是一個流程圖,該圖顯示了當(dāng)判斷出調(diào)用了向回跳讀/向下 跳讀API時執(zhí)行的處理步驟;
      圖53是一個流程圖,該圖詳細(xì)顯示了呈現(xiàn)引擎31的處理步驟; 圖54是一個流程圖,該圖顯示了子播放項的處理步驟。
      符號描述
      1 BD-ROM驅(qū)動器
      2 讀取緩沖器3 解復(fù)用器
      4 視頻解碼器
      5 視頻平面
      6 P圖像解碼器
      7 呈現(xiàn)圖像平面
      8 合并單元
      9 字體生成器
      10 I圖像解碼器 11開關(guān)
      12互動圖像平面 13合并單元
      14 CLUT單元
      15 CLUT單元 16音頻解碼器 22用戶事件處理單元
      23 PSR集合
      24 CPU
      25腳本存儲器 26本地存儲器 33 HDMV模塊 34模塊管理器 35 BD-J模塊 36用程序管理器
      37 UO控制器
      38 Java (TM)虛擬機(jī) 41PLMT處理器
      42許可控制器 52用戶類加載器 53方法區(qū)域 54工作存儲器55a, 55b,…55n 線程
      56a, 56b,…56n Java (TM)堆棧
      具體實施例方式
      實施例1
      接下來的內(nèi)容描述了本發(fā)明的記錄介質(zhì)的實施例。首先,將會描 述本發(fā)明的記錄介質(zhì)的使用形式。在圖1中,本發(fā)明的記錄介質(zhì)是 BD-ROM 100。 BD-ROM 100用于向一個家庭影院系統(tǒng)提供內(nèi)容,其 中該家庭影院系統(tǒng)包含播放裝置200、遙控器300和電視400。
      其中,遙控器300配有一些鍵,例如播放(Play)、停止CStop)、 暫停開始(Pause On)、暫停結(jié)束(Pause Off)、靜止結(jié)束(Still Off) 向前播放(Forward Play,帶有速度的說明)、向后播放(BackwardPlay, 帶有速度的說明)、音頻變換(Audio Change)、字幕變換(SubTitle Change)以及角度變換(Angle Change),并且這些鍵用于接收這些 功能的指令,還有一些鍵,例如向上移動(MoveUp)、向下移動(Move Down)向右移動(Move Right)以及向左移動(Move Left),這些鍵 用于接收在菜單操作期間使焦點發(fā)生移動的指令,另外還有彈出鍵 (PopUp),用于接收顯示菜單的指令,以及用于接收數(shù)字輸入的數(shù) 字鍵。
      到現(xiàn)在為止,己經(jīng)對本發(fā)明的記錄介質(zhì)的使用形式進(jìn)行了描述。 接下來將描述本發(fā)明的記錄介質(zhì)的制造??梢酝ㄟ^BD-ROM上 文件系統(tǒng)的改進(jìn)實現(xiàn)本發(fā)明的記錄介質(zhì)。圖2顯示了用于BD-ROM 的文件/目錄結(jié)構(gòu)。如圖中所示,對于BD-ROM,在根目錄下提供 BD雨目錄。
      BDMV目錄具有擴(kuò)展名為"bdmv"的文件("index.bdmv"、"Movie Object.bdmv"、 "BD-JObject.bdmv")。在BDMV目錄下,有四個子目 錄播放列表(PLAYLIST)目錄、CLIPNF目錄、流(STREAM) 目錄以及BDJA目錄。該播放列表目錄具有擴(kuò)展名為"mpls"的文件 ("OOOOl.mpls"、 "00002.mpls"、 "00003.mpls")。
      CLIPNF目錄具有擴(kuò)展名為"dpi"的文件("00001.clpi"、"00002.clpi"、 "00003.dpi")。流目錄具有擴(kuò)展名為"m2ts"的文件 ("00001. m2ts"、 "00002. m2ts"、 "00003. m2ts")。 BDJA目錄具有擴(kuò) 展名為"jar"的文件("00001. jar"、 "00002. jar"、 "00003.jar")。通 過上面的描述可以知道,該目錄結(jié)構(gòu)可以使得在BD-ROM上記錄不 同類型的文件。
      在圖2中,擴(kuò)展名為"m2ts"的文件("00001. m2ts"、"00002. m2ts"、 "00003. m2ts",…)包含可以分為例如主剪輯和子剪輯的AV剪輯。 主剪輯是通過將多個基本流復(fù)用到一起而獲得的,這些基本流是例如 視頻流、音頻流、構(gòu)成字幕的呈現(xiàn)圖像流(PG流),以及構(gòu)成菜單的 互動圖像流(IG流)。
      子剪輯是對應(yīng)于一種基本流的數(shù)字流,其中這些基本流是例如音 頻流、圖像流以及文本字幕流(TextStream)。擴(kuò)展名為"dpi"的文 件("00001. clpi、 "00002. clpi"、 "00003. clpi",…)是與AV剪輯有 一一對應(yīng)關(guān)系的管理信息。作為管理信息,剪輯信息具有關(guān)于如下方
      面的信息AV剪輯中流的編碼格式、幀速率、比特率、分辨率等等,
      以及指示GOP的起始位置的"EP_map"。
      擴(kuò)展名為"mpls"的文件("00001. mpls"、 "00002. mpls"、 "00003. mpls",…)是包含播放列表信息的文件。播放列表信息是通過指出 AV剪輯而定義播放列表的信息。圖3顯示了播放列表信息的構(gòu)造。 如圖3的左手側(cè)所示,播放列表信息包含主路徑信息、PL Mark信息 以及子路徑信息。
      主路徑信息(MainPath ())包含多條如虛線箭頭"mpl"所指 示的播放項信息(Playltem ())。播放項(Play Item)是通過在一個 或多個AV剪輯時間軸上指定"In—time"和"Out—time"從而定義的 播放周期。將多個播放項信息合并在一起就定義了一個包含多個播放 周期的播放列表(PL)。圖3中的虛線箭頭"mp2"指示了播放項信 息的內(nèi)部結(jié)構(gòu)的局部放大圖。如圖3中所示,播放項信息包含指示相 應(yīng)的AV剪輯的"Clip_information—file—name"、 " In_time "以及 "Out—time"。圖4顯示了 AV剪輯和PL之間的關(guān)系。該圖的第一行 指示了 AV剪輯的時間軸,并且第二行指示了 PL的時間軸。PL信息包含三條播放項信息"Playltem#l "、"Playltem弁2"以及"Playltem弁3"。 Playltem#l、 Playltem#2和Playltem#3的In_time和Out—time定義了 三個播放周期。通過安排這三個播放周期,就定義了一個不同于AV 剪輯時間軸的時間軸。這個時間軸就是第二行所示的PL時間軸。從 中可以明顯地看出,可以通過定義播放項信息從而定義一個不同于 AV剪輯時間軸的時間軸。
      基本地,只指定了一個AV剪輯。但是,可以由一個批說明來指 定多個AV剪輯。通過播放項信息中的多個Clip—information—file—name 獲得該批說明。圖5顯示了通過四個Clip—information—file—name獲得 的批說明。在圖5中,第一行到第四行指示了四個AV剪輯時間軸(AV 剪輯#1、 #2、 #3和#4的時間軸),并且第五行指示了一個PL時間 軸。由包含在播放項信息中的四個Clip—information—file—name指定這 四個時間軸。通過這樣一種構(gòu)造,由包含在播放項中的In—time和 Out—time定義了這四個播放周期,并且可以有選擇性地播放這四個周 期。這使得可以通過PL時間軸定義這樣一個周期(所謂的多角度周 期),其中可以提供多個可變換角度的圖像。
      PLMark信息(PLMark ())是將PL時間軸上一段給定周期指定 為一個章節(jié)的信息。圖6顯示了 PLMark信息的內(nèi)部結(jié)構(gòu)。如圖中虛 線"pml"所指示的,PLMark信息包含"ref_to—Playltem—Id"和 "Mark—time—stamp"。圖7顯示了通過PLMark定義章節(jié)。在圖7中, 第一行指示一個AV剪輯時間軸,并且第二行指示一個PL時間軸。 在圖7中,箭頭"pkl"和"pk2"分別指示PLMark中一個播放項的 說明(ref—to_PlayItem_Id)和一個時間點的說明(Mark—time—stamp)。 通過這些說明,在PL時間軸上定義了三個章節(jié)。到目前為止,已經(jīng) 解釋了PLMark。接下來將解釋子路徑信息。
      子路徑信息(SubPath ())是通過指定子剪輯時間軸上的In_Time 和Out—Time從而定義一個或多個播放周期的信息。圖8顯示了內(nèi)部 結(jié)構(gòu)。如圖8中的虛線"shl"所指示的,子路徑信息包含多個子播 放項信息(SubPlayltem ())。如虛線"sh2"所指示的,子播放項信 息包含"Clip—information—file—name " 、 "In—time" 、 "Out—time"、"Sync—Playltem—Id "以及"Sync—start—Pts—of—Playltem "。 由 Clip—information_file—name"、 "In—time"和Out—time"指定子剪輯時 間軸上的 In—time 和 Out—time 。
      " Sync—Playltem—Id "和
      "Sync—start—Pts_of—Playltem"用于同步說明以將子剪輯時間軸上的 播放周期與PL時間軸同步。通過該同步說明,子剪輯時間軸和PL 時間軸同步進(jìn)行。
      圖9顯示了如何做出同步說明和在子播放項(Sub Play Item)時 間軸上定義一個播放周期。在圖9中,第一行指示了PL時間軸,并 且第二行指示了子播放項時間軸。在圖9中,SubPlayltem.In—time和 SubPlayItem.Out_time分別指示了播放周期的開始點和結(jié)束點。由此 可以理解,播放周期也是被定義在子剪輯時間軸上。對應(yīng)于箭頭Snl 的Sync—Playltem一Id指示播放項的同步說明,并且對應(yīng)于箭頭sn2的 Sync—start—Pts—of—Playltem指示PL時間軸上播放項中一個時間點的 說明。
      BD-ROM上的播放列表信息的特征在于它可以定義一個多角度 周期和一個同步周期,其中在該多角度周期內(nèi)可以在多個AV剪輯之 間切換,并且在該同步周期內(nèi)AV剪輯可以與子剪輯之間同步。上述 的剪輯信息和播放列表信息可以歸類為"靜態(tài)腳本"。這是因為剪輯 信息和播放列表信息定義了一個PL,而該PL是一個靜態(tài)播放單元。 上述是對靜態(tài)腳本的描述。
      接下來描述"動態(tài)腳本"。動態(tài)腳本是一種動態(tài)地定義AV剪輯 的播放控制的腳本數(shù)據(jù)。這里,"動態(tài)地"意味著播放控制可以根據(jù) 播放裝置的狀態(tài)變換或用戶通過鍵盤輸入的事件進(jìn)行變換。BD-ROM 假定了兩種模式作為播放控制的操作環(huán)境。第一種模式是一種類似于 DVD播放裝置的操作環(huán)境的操作環(huán)境,并且是一種基于命令的執(zhí)行 環(huán)境。第二種模式是一種Java (TM)虛擬機(jī)的操作環(huán)境。在這兩種 操作環(huán)境中,第一種操作環(huán)境稱作HDMV模式,第二種操作環(huán)境稱 作BD-J模式。由于這兩種工作環(huán)境的存在,所以通過假定兩種操作 環(huán)境中的任意一種寫動態(tài)腳本。假設(shè)HDMV模式的動態(tài)腳本稱作電 影對象,并且由管理信息對其進(jìn)行定義。另一方面,假定BD-J模式的動態(tài)腳本稱作BD-J對象。
      首先將解釋電影對象。 <電影對象>
      電影對象存儲在文件"Movie Object.bdmv"中。圖10顯示了 Movie Object.bdmv的內(nèi)部結(jié)構(gòu)。如圖10的最左側(cè)部分所示,Movie Object.bdmv包含指示編碼序列"MOBJ "的"type—indicator "、 "version—number"以及一個或多個電影對象"Movie Objects ()"。 圖10中的虛線vh指示了電影對象的內(nèi)部結(jié)構(gòu)的局部放大圖。"Movie Objects ()"包含指示其自身數(shù)據(jù)長度的"length"、指示其中所含電 影對象的數(shù)量的"nmnber—of—mobjs",以及其數(shù)量由number—of—mobjs 指示的多個電影對象。由標(biāo)識符mobj一id標(biāo)識電影對象,而這些電影 對象的數(shù)量由number—of—mobjs指示。圖10中的虛線vh2指示了由 標(biāo)識符mobj_id標(biāo)識的一個給定Movie Object [mobj一id]的內(nèi)部結(jié)構(gòu)的 局部放大圖。
      如虛線所指示的,電影對象包含"resume—intention—flag",它指 示在執(zhí)行一次菜單調(diào)用之后是否繼續(xù)播放;"menu—call—mask",它是 指示是否應(yīng)該屏蔽菜單調(diào)用的信息;"Title—search—flag",它指示是否 應(yīng)該屏蔽標(biāo)題搜索功能;"number—of一navigation—command",它指示 導(dǎo)航命令的數(shù)量;以及其數(shù)量由"number—of—navigation—command" 指示的多個導(dǎo)航命令。
      導(dǎo)航命令序列包含實現(xiàn)以下功能的命令條件轉(zhuǎn)移;設(shè)置播放裝 置中的狀態(tài)寄存器;獲得該狀態(tài)寄存器中設(shè)置的值等等。以下是可以 寫入電影對象的命令。 PlayPL命令
      格式PlayPL (第一變量,第二變量)
      作為第一變量的播放列表號可以用于指示一個將被播放的PL。 包含在PL中的播放項、PL中的給定時間、 一個章節(jié)或者一個掩碼, 作為第二變量可以用于指示播放起始位置。
      使用播放項在PL時間軸上指定播放起始位置的PlayPL函數(shù)被稱 作PlayPLatPlayltem ()。使用一個章節(jié)在PL時間軸上指定播放起始位置的PlayPL函數(shù)被 稱作PlayPLatChapter ()。
      使用時間信息在PL時間軸上指定播放起始位置的PlayPL函數(shù)被 稱作PlayPLatPlayltem ()。 JMP命令
      格式JMP變量
      JMP命令用于這樣一個轉(zhuǎn)移該轉(zhuǎn)移丟棄當(dāng)前正在執(zhí)行的動態(tài)腳
      本而執(zhí)行一個由該變量指定的轉(zhuǎn)移目的動態(tài)腳本。JMP命令有兩種類
      型直接地指定轉(zhuǎn)移目的動態(tài)腳本的直接指向類型;以及間接地指向
      轉(zhuǎn)移目的動態(tài)腳本的間接指向類型。
      電影對象中導(dǎo)航命令的描述格式類似于DVD中的導(dǎo)航命令的描 述格式。因此,可以有效地實現(xiàn)將盤內(nèi)容從DVD上轉(zhuǎn)移到BD-ROM 上。電影對象是一種在以下的國際出版物中公開的現(xiàn)有技術(shù)。詳細(xì)內(nèi) 容可以參考國際出版物。
      國際公開WO 2004/074976。
      到目前為止,已經(jīng)對電影對象進(jìn)行了描述。接下來將描述BD-J 對象。
      <BD-J對象>
      BD-J對象是在Java (TM)編程環(huán)境中寫出的BD-J模式中的一 種動態(tài)腳本。
      圖11顯示了 BD-JObject.bdmv的內(nèi)部結(jié)構(gòu)。如圖11的最左側(cè)所 示,BD-J Object.bdmv包含指示碼序列"BOBJ"的"type—indicater",
      "version—number"以及一個或多個BD-J對象"BD-J Object ()"。圖 11中的虛線"bhl"指示了 BD-J Object ()的內(nèi)部結(jié)構(gòu)的局部放大圖。
      "BD-J Object ()"包含指示其自身數(shù)據(jù)長度的"length"、指示其中 所包含BD-J對象的數(shù)量的"number_of—bobjs",以及數(shù)量由 number—of—bobjs所指示的多個BD-J對象。通過標(biāo)識符bobj—id標(biāo)識 數(shù)量由number一of—bobjs所指示的多個BD-J對象。圖11中的虛線bh2 指示了由標(biāo)識符bobj—id標(biāo)識的一個給定BD-J Object[bob—id]()的 內(nèi)部結(jié)構(gòu)的局部放大圖。如帶有虛線指示的圖中所示,BD-J對象包含 "resume—intention一flag[bobj—id] " 、 " menu—call_mask[bobj—id]"、 " Title—search—flag[bobj—id] " 、
      " Application—Management一Table[bobj—id] "以 及 "Playlist—Management—Table[bobjjd] " 。
      BD-J 對象也包含 "resume—intention—flag"、 "menu_call—mask"以及"Title—search—flag", 在這點上BD-J對象大致上與電影對象相同。
      BD-J對象與電影對象之間的區(qū)別在于,在BD-J對象中命令不被 直接寫。也就是說,在電影對象中,控制過程是直接寫入導(dǎo)航命令中。 與此不同地是,BD-J對象通過允許Java (TM)應(yīng)用程序的說明被寫 入"Application_Management—Table[bobj—id]"從而間接地定義了控制 過程。通過這樣一種間接定義提供了對公用控制過程的有效共享,并 且使得多個動態(tài)腳本可以共享一個公用控制過程。
      另外,在電影對象中,根據(jù)寫入在電影對象中的用于命令執(zhí)行 PL播放的導(dǎo)航命令(PlayPl命令)執(zhí)行PL播放。與此不同地是,在 BD-J 對象中,通過將指示 PL 播放過程的 "Application—Management—Table[bobj—id]"包含到BD-J對象中從而 使得PL播放過程被寫入。而且,還可以通過將PL過程包含到從應(yīng) 用程序管理表指出的一個應(yīng)用程序中,從而寫入PL播放過程。也就 是說,既可以通過將播放列表播放過程寫入到播放列表管理表中,也 可以通過將其寫入到應(yīng)用程序中從而將該播放列表播放過程包含進(jìn) 來。
      這里,將對Java (TM)應(yīng)用程序進(jìn)行描述。Java (TM)應(yīng)用程 序包含一個或多個加載到虛擬機(jī)的堆區(qū)域(也稱作工作存儲器)中的 xlet程序。Java (TM)應(yīng)用程序包含多個xlet程序和數(shù)據(jù)。到目前為 止,已經(jīng)對Java (TM)應(yīng)用程序的構(gòu)造進(jìn)行了描述。
      Java(TM)應(yīng)用程序的重要主體是存儲在如圖2中所示的BDMV 目錄下的BDJA目錄中的Java(TM)存檔文件(00001 .jar、 00002.jar)。 接下來將參考圖12A和12B描述Java (TM)存檔文件。 <Java (TM)存檔文件>每個Java (TM)存檔文件(圖2中所示的00001.jar、 00002.jar)
      都是通過將一個或多個類文件和一個或多個數(shù)據(jù)文件合并在一起而 形成的。圖12A顯示了存儲在存檔文件中的程序和數(shù)據(jù)。通過將多 個文件安排到橢圓框所指示的目錄結(jié)構(gòu)中,由Java (TM)存檔器對 圖12A中所示的數(shù)據(jù)進(jìn)行了配置。該橢圓框所指示的目錄結(jié)構(gòu)包含 根、Java (TM)以及圖像目錄。common.pkg安排在根目錄下,類文 件(aaa.class、 bbb.class)安排在Java (TM) 目錄下,并且menu.jpg 安排在圖像目錄下。Java (TM)存檔器通過將上述這些文件合成為 一個而形成每個Java (TM)存檔文件。當(dāng)從BD-ROM中讀出這樣的 類文件和數(shù)據(jù)時,會對它們進(jìn)行擴(kuò)充并且將它們視作安排在目錄中的 文件。每個Java (TM)存檔文件名字中的五位數(shù)字"zzzzz"指示了 應(yīng)用程序ID。當(dāng)將這樣一個Java (TM)存檔文件被讀取到高速緩存 中時,可以通過參考附帶到文件名字上的數(shù)字來提取出任意一個Java (TM)應(yīng)用程序所包含的程序和數(shù)據(jù)。這些類文件(圖12A中所示 的aaa.class、 bbb.class)是對應(yīng)于上述xlet程序的類文件。對應(yīng)于類 文件的實例的xlet程序定義了 BD-J模式中的播放過程。
      xlet程序是這樣一種Java(TM)程序它可以使用符合Java(TM) 媒體框架(JMF)的接口,并且可以根據(jù)例如JMF的格式,執(zhí)行響 應(yīng)于鍵盤事件的處理。因為xlet程序可以執(zhí)行JMF格式的處理,所 以它可以通過生成對應(yīng)于一個MPLS文件的實例(JMF播放器實例), 從而命令播放裝置播放一個播放列表。另外,xlet程序可以通過寫入 對功能API的調(diào)用從而命令BD-ROM播放裝置執(zhí)行對于BD-ROM播 放裝置來說是唯一的處理。
      此外,xlet程序可以執(zhí)行用于訪問一個WWW網(wǎng)站并且從該網(wǎng)站 上下載內(nèi)容的步驟。這使得可以播放一些原創(chuàng)作品,其中這些作品是 通過將所下載的內(nèi)容與播放列表播放結(jié)合到一起從而生成的。
      接下來將描述xlet程序的類文件。圖12B顯示了類文件的內(nèi)部 結(jié)構(gòu)。如圖12B中所示,類文件包含"常數(shù)池"、"接口"以及"方 法l、 2、 3…n"。類文件中的方法可以分為以下幾種 一種方法(事 件聽者方法),通過該方法可以預(yù)先記錄觸發(fā)一種操作的鍵盤事件;用于命令JMF播放步驟的方法(JMF播放器實例的方法);以及調(diào)用 BD-ROM播放裝置的功能API的方法。在這些方法中,使用分配給 他們自己的局部變量或者用于調(diào)用他們自己的參數(shù),寫入這些用于計 算等的步驟。到目前為止,.已經(jīng)對Java (TM)存檔文件進(jìn)行了描述。 應(yīng)該注意到,盡管在本實施例中,應(yīng)用程序所包含的程序和數(shù)據(jù)存儲 于Java (TM)存檔文件中,但是這些程序和數(shù)據(jù)也可以存儲于LZH 文件或zip文件中。
      到目前為止,已經(jīng)對BD-J模式中的動態(tài)腳本進(jìn)行了描述。 <BD-ROM中的狀態(tài)改變>
      只讀盤中提供的盤內(nèi)容,例如DVD視頻,具有一種以頂級菜單 為中心的結(jié)構(gòu)。這樣一種盤內(nèi)容中的狀態(tài)改變是唯一的,這是因為播 放從頂級菜單標(biāo)題轉(zhuǎn)移到每個標(biāo)題并且隨后返回到頂級菜單標(biāo)題。圖 13顯示了盤內(nèi)容的狀態(tài)改變。圖13中的方框代表了標(biāo)題。這里,每 個標(biāo)題是對應(yīng)于狀態(tài)改變中一個"狀態(tài)"的播放單元,并且該"狀態(tài)" 對于盤內(nèi)容來說是唯一的。標(biāo)題可以分為以下幾類加載BD-ROM 后首先播放的"FirstPlayTitle"(首先播放標(biāo)題)、組成頂級菜單的 "Top—menuTitle"(頂級菜單標(biāo)題)以及通用標(biāo)題"Title"。圖13中 的箭頭jhl、 jh2、 jh3、 jh4、 jh5、 jh6、 jh7以及jh8象征性地指示了 標(biāo)題之間的轉(zhuǎn)移。根據(jù)圖13中所示的狀態(tài)改變,在加載BD-ROM后 馬山播放"FirstPlayTitle",然后出現(xiàn)跳轉(zhuǎn)到"Top_menuTitle"的轉(zhuǎn)移, 并且然后等待頂級菜單上的選擇。在用于發(fā)行電影的記錄介質(zhì)(例如 BD-ROM)的行業(yè)中,經(jīng)常一加載這樣一種記錄介質(zhì)就播放動態(tài)商標(biāo)。 該動態(tài)商標(biāo)象征著電影的制片商或發(fā)行人。"FirstPlayTitle"的作用就 在于在加載BD-ROM之后立即播放動態(tài)商標(biāo)。
      然后,如果用戶選擇了菜單上的一個標(biāo)題,那么就播放所選擇的 標(biāo)題。然后播放返回到頂級菜單標(biāo)題。反復(fù)執(zhí)行這樣一種播放步驟, 直到彈出該BD-ROM。這是只有該盤內(nèi)容才有的狀態(tài)改變。
      具有這種狀態(tài)改變的標(biāo)題包含HDMV模式中的動態(tài)腳本或BD-J 模式中的動態(tài)腳本。圖14顯示了包含HDMV模式中的動態(tài)腳本的兩 個標(biāo)題。圖14的第一行指示了一個由標(biāo)識符"Title—id"標(biāo)識的標(biāo)題(Title—id)。第二行指示了一個電影對象(Movie Object)序列,其包
      含一個或多個構(gòu)成標(biāo)題的電影對象。第三行指示了電影對象所包含的 導(dǎo)航命令序列。
      圖13中所示的從一個標(biāo)題到另一個標(biāo)題的轉(zhuǎn)移是通過預(yù)先在一 個電影對象中寫入一個導(dǎo)航命令(JumpTitle命令)而實現(xiàn)的,該導(dǎo) 航命令指示播放裝置跳轉(zhuǎn)到另一個標(biāo)題。另外,圖14的第四行指示 了屬于該標(biāo)題的播放列表。該播放列表與該標(biāo)題之間的這種從屬關(guān)系 是通過預(yù)先在一個電影對象中寫入一個導(dǎo)航命令(PlayPL命令)而 實現(xiàn)的,該導(dǎo)航命令指示播放該播放列表。.
      通過使一個播放列表屬于一個標(biāo)題,對于HDMV模式中的標(biāo)題, 可以定義一個伴隨有一個視頻播放的電影。這就是由HDMV模式中 動態(tài)腳本所定義的標(biāo)題的結(jié)構(gòu)。
      接下來將描述包含BD-J模式中動態(tài)腳本的標(biāo)題的內(nèi)部構(gòu)造。圖 15顯示了包含BD-J模式中動態(tài)腳本(BD-J對象)的標(biāo)題的內(nèi)部構(gòu) 造。
      第一行指示了一個由標(biāo)識符"Titlejd"標(biāo)識的標(biāo)題。第二行指示 了組成該標(biāo)題的唯一 BD-J對象。第三行指示了 BD-J對象中提供的 應(yīng)用程序管理表和播放列表管理表。第四行指示了一個由第三行中應(yīng) 用程序管理表操作的應(yīng)用程序。該應(yīng)用程序包含一種命令播放裝置跳 轉(zhuǎn)到另一個標(biāo)題的方法(一種調(diào)用JumpTitle API的方法),如第五行 所指示的那樣。因此,如圖13中所示的跳轉(zhuǎn)到另一個標(biāo)題的轉(zhuǎn)移是 通過JumpTitleAPI調(diào)用方法而實現(xiàn)的。另一方面,因為在第三行中寫 入播放列表管理表,所以在執(zhí)行該應(yīng)用程序的同時播放一個播放列 表,如第四行中所指示的那樣。
      該BD-J對象包含應(yīng)用程序管理表和播放列表管理表。這使得可 以在執(zhí)行應(yīng)用程序的同時執(zhí)行PL播放,如第四行中所指示的那樣。 這種應(yīng)用程序和PL播放的同時執(zhí)行是BD-J模式中標(biāo)題的一個特點。
      并不是所有的BD-J對象都包含播放列表管理表。播放列表管理 表是一種任意的成分。 一些BD-J對象包含播放列表管理表,而其它 BD-J對象不包含。圖16顯示了并不包含播放列表管理表的標(biāo)題。在這樣一個僅包含應(yīng)用程序管理表但不包含播放列表管理表的BD-J對 象中,僅定義了應(yīng)用程序操作,如第四行中所指示的那樣。通過這樣 一種應(yīng)用程序操作的定義,就定義了一種標(biāo)題,其中這種標(biāo)題僅有控 制步驟而并不伴隨有PL播放。
      圖14顯示了從HDMV模式中一個標(biāo)題轉(zhuǎn)移到HDMV模式中一 個標(biāo)題。但是應(yīng)該注意到,如圖17中所示,也可以實現(xiàn)從HDMV模 式中一個標(biāo)題轉(zhuǎn)移到BD-J模式中一個標(biāo)題。類似地,盡管圖15顯示 了從BD-J模式中一個標(biāo)題轉(zhuǎn)移到BD-J模式中一個標(biāo)題,也可以實 現(xiàn)從BD-J模式中一個標(biāo)題轉(zhuǎn)移到HDMV模式中一個標(biāo)題,如圖18 中所示。
      在上述的標(biāo)題的內(nèi)部結(jié)構(gòu)中,由圖2中所示的index.bdmv定義 標(biāo)題所包含的電影對象或BD-J對象。接下來將描述index.bdmv。 index.bdmv是指示標(biāo)題所包含的電影對象或BD-J對象的一個表。
      圖19顯示了 index.bdmv的內(nèi)部結(jié)構(gòu)。如圖19中所示,index.bdmv 包含具有值"INDX"的"type—indicator"、 "version—number"、指示 從文件起始位置到索引的相對地址的"Indexes_start—address"以及
      "Indexes ()"。 "Indexes O"分別對應(yīng)于不同的標(biāo)題。如圖19中虛 線箭頭"ixl"所示,"Indexes ()"包含"length"、 "FirstPlayback () (FirstPlayback一mobj一id一ref) "、"TopMenu( ) {TopMenu—mobj—id一ref)"、
      "number—of—Titles"以及"Title[O]()…Title [number—of—Titles - 1〗
      ()"o
      "FirstPlayback () {FirstPlayback—mobj—id_ref}"是FirstPlayTWe 的索引,并且存儲該FirstPlayTitle所包含的電影對象的電影對象標(biāo)識 符參照值 (FirstPlayback—mobj—id—ref ) 。 " TopMenu () {TopMenu_mobj_id_ref}"是TopMenuTitle的索弓l,并且存儲該 TopMenuTitle所包含的電影對象的電影對象標(biāo)識符參照值 (TopMenu—mobj—id_ref)。
      "Title[O]()…Title[number—ofJTitles - 1]()"是除FirstPlayTitle 和TopMenuTitle之外的標(biāo)題的索弓l,并且它們的數(shù)量為number—of—Title。 "Title[O]()…Title[number—of—Titles - 1]()"由標(biāo) 識符Title—id標(biāo)識。
      由標(biāo)識符Title—id標(biāo)識的索引表示為Title[Title—id]()。圖19中 的虛線ix2指示了 Title[Title—id]()的局部放大圖。
      如圖19 中所示,"Title[Title—id]()" 包含 "Title—Playback—Type[Titlejd]",它指示了標(biāo)題播放類型,它是通過 例如該"Title[Title一id]()"是否包含一個轉(zhuǎn)移來示出的; "Title—access—Flag[TMe—id]",它指示了是否允許執(zhí)行標(biāo)題的服務(wù)函 數(shù);以及唯一地指示了該標(biāo)題所包含的電影對象的 "Title—mobj—id—ref[Title一id]"。這里,如果標(biāo)題所包含的動態(tài)腳本是 BD-J 對象,那么由 "Title—bobj—id—ref[Title—id]" 代替 "Title_mobj—id—reflTitle—id]"。 "Title—bobj—id—ref[Title—id]"唯一地指 示了該標(biāo)題所包含的BD-J對象。
      下面的國際公開對Index.bdmv進(jìn)行了詳細(xì)公開。詳細(xì)內(nèi)容請參 考國際公開。
      國際公開WO 2004/025651 Al 。 <應(yīng)用程序管理表>
      包含在BD-J對象表中的應(yīng)用程序管理表和播放列表管理表是本 實施例的主要元素。接下來將對這些表進(jìn)行詳細(xì)描述。首先,將要描 述應(yīng)用程序管理表(AMT)。
      圖20A顯示了應(yīng)用程序管理表的內(nèi)部結(jié)構(gòu)。如圖20A中所示, 應(yīng)用程序管理表包含"life_cycle"、 "apli—id—ref,、 "run—attribute"以 及"run_priority"。
      圖20B顯示了應(yīng)用程序管理表所包含的信息元素的含義。 "life_Cyde"指示了應(yīng)用程序的"生存周期"。 "apli—id—ref"通過與"應(yīng)用程序標(biāo)識符" 一致寫入到其中的參 照值指示了具有上述生存周期的應(yīng)用程序。該應(yīng)用程序標(biāo)識符由Java (TM)存檔文件中提供的作為文件名的五位數(shù)字值"zzzzz"表示,。 該五位數(shù)字值被寫入"apli一icLref"中。
      "run attribute"指示了應(yīng)用程序在生存周期內(nèi)的運行屬性。這些運行屬性可以分為以下幾類自動運行、預(yù)發(fā)送以及暫停。
      "mn_priority"指示應(yīng)用程序在生存周期內(nèi)的"運行優(yōu)先級"。 BD-J對象使用這些信息控制應(yīng)用程序的運行。 <生存周期>
      接下來將描述應(yīng)用程序管理中所定義的生存周期。 生存周期意味著這樣一個周期在該周期內(nèi),應(yīng)用程序存活于虛 擬機(jī)的工作存儲器上,并且用BD-ROM的全部內(nèi)容的時間軸代表該 周期。這里,名詞"存活"指這樣一種狀態(tài)其中己經(jīng)將應(yīng)用層程序 所包含的xlet程序加載到工作存儲器中,從而可以由虛擬機(jī)執(zhí)行該應(yīng) 用程序。
      當(dāng)在Java (TM)虛擬機(jī)上運行應(yīng)用程序時,有一點很重要,那 就是在時間軸上清楚地定義由應(yīng)用程序提供的服務(wù)的起點和終點。應(yīng) 用程序管理表的"life_Cyde"中定義了服務(wù)的這些起點和終點。
      下面的內(nèi)容顯示了是如何對如圖13所示改變狀態(tài)的盤內(nèi)容定義 標(biāo)題的生存周期。假設(shè)在加載BD-ROM之后,以圖13中箭頭jhl、 jh2、 jh3、 jh4…所指示的數(shù)字的上升的順序進(jìn)行轉(zhuǎn)移,并且彈出了 BD-ROM。可以將以加載為開始到以BD-ROM彈出為結(jié)束的連續(xù)時 間段視作一個時間軸。將該時間軸定義為整個盤的時間軸。圖21A 顯示了整個盤的時間軸。圖21B顯示了該時間軸是如何構(gòu)建的。如 圖21B中所示,整個盤的時間軸包含播放FirstPlayTitle的周期;播 放TopMenuTitle的周期;播放Title #1的周期 一個標(biāo)題包含一個
      或多個電影對象或一個BD-J對象。因此,可以將每個標(biāo)題的播放周 期定義為這樣一個周期,期間激活了電影對象或BD-J對象中的任意 一個對象的周期。
      也就是說,F(xiàn)irstPlayTitle、 TopMenuTitle以及其它標(biāo)題中的每一 個都包含動態(tài)腳本。因此,可以將每個標(biāo)題的播放周期定義為這樣一 個周期,期間可以將標(biāo)題所包含的電影對象或BD-J對象中的任意一 個對象激活為當(dāng)前電影對象或當(dāng)前BD-J對象,并且可以在播放裝置 中對該對象進(jìn)行解碼并執(zhí)行。圖22A在整個BD-ROM的時間軸上顯 示了由BD-J對象標(biāo)識的標(biāo)題播放周期,該BD-J對象由標(biāo)識符"bobj一id"標(biāo)識。這里,如果一個標(biāo)題包含由標(biāo)識符"bobj—id"標(biāo)識 的BD-J對象,那么可以將BD-ROM時間軸上的激活了由標(biāo)識符 "bobj—id"標(biāo)識的BD-J對象的周期視作標(biāo)題的播放周期。
      類似地,如果一個標(biāo)題包含由標(biāo)識符"mobj一id"標(biāo)識的電影對 象,那么可以將BD-ROM時間軸上的激活了由標(biāo)識符"mobj一id"標(biāo) 識的電影對象的周期視作標(biāo)題的播放周期。
      激活了電影對象或BD-J對象的周期一直持續(xù)到執(zhí)行標(biāo)題轉(zhuǎn)移 (JumpTitle)。也就是說, 一直將動態(tài)腳本視作當(dāng)前電影對象或當(dāng)前 BD-J對象,直到執(zhí)行了一個標(biāo)題轉(zhuǎn)移(JumpTitle),其中該動態(tài)腳本 是執(zhí)行的目標(biāo)。因此,將一直持續(xù)到電影對象或BD-J對象中發(fā)生 JumpTitle的周期視作標(biāo)題播放周期。
      接下來將描述標(biāo)題播放周期和PL時間軸之間的關(guān)系。如前面所 述,在電影對象或BD-J對象中,可以將PL播放步驟寫為處理步驟。 如果已經(jīng)寫入了 PL播放步驟,那么上述PL時間軸的全部或部分屬 于標(biāo)題播放周期。假設(shè)在圖22A所示的例子中的BD-J對象中寫入了 一個播放列表管理表。那么,如圖22B中所示,PL時間軸屬于對應(yīng) 于BD-J對象的標(biāo)題播放周期。因為可以進(jìn)一步在PL時間軸上定義 多個章(章#1、 #2、 #3),所以BD-ROM時間軸上存在有域(全部 BD-ROM-Title-PL-Chapter)??梢允褂眠@些域從而寫入應(yīng)用程序的生 存周期。這里應(yīng)該注意到,因為播放列表播放與應(yīng)用程序的執(zhí)行同時 開始,所以標(biāo)題轉(zhuǎn)移可能發(fā)生在播放列表的播放過程中。在這種情況 下,僅部分播放列表時間軸而不是整個播放列表時間軸屬于一個標(biāo)題 播放周期。也就是說,究竟是僅部分播放列表時間軸還是整個播放列 表時間軸屬于一個標(biāo)題播放周期取決于標(biāo)題轉(zhuǎn)移發(fā)生的時間。
      圖23顯示了在圖22B中所示時間軸上定義的一種典型的生存周 期。如圖23中所示,有三種典型應(yīng)用程序標(biāo)題邊界應(yīng)用程序,它 的生存周期是一個標(biāo)題;章節(jié)邊界應(yīng)用程序,它的生存周期是標(biāo)題內(nèi) 的一個章節(jié);以及無邊界應(yīng)用程序,它的生存周期是整個BD-ROM 的時間軸。
      在這三種應(yīng)用程序中,可以使用標(biāo)題的標(biāo)識符定義標(biāo)題邊界應(yīng)用程序的生存周期。另外,可以使用下述兩種標(biāo)識符的組合定義章節(jié)邊 界應(yīng)用程序的生存周期該章節(jié)所屬于的標(biāo)題的標(biāo)識符和該章節(jié)的標(biāo) 識符。
      即使平臺正在運行,還是可以在被定義為標(biāo)題或章節(jié)的生存周期 結(jié)束之后從應(yīng)用程序重新獲得資源。這樣一種構(gòu)建確保了可以重新獲 得資源,并且由此穩(wěn)定了平臺的運行。
      接下來將通過一個具體的例子描述如何將生存周期寫入到應(yīng)用 程序管理表中,其中該例子包含將在以后實現(xiàn)的用作材料的盤內(nèi)容作 為材料。用作材料的盤內(nèi)容包含三種不同類型的標(biāo)題主圖像作品所 包含的主標(biāo)題(標(biāo)題#1);在線購物所包含的在線購物標(biāo)題(標(biāo)題 #2);以及游戲應(yīng)用程序所包含的游戲標(biāo)題(標(biāo)題#3)。圖24顯示了 包含三種標(biāo)題的盤內(nèi)容主標(biāo)題、在線購物標(biāo)題以及游戲標(biāo)題。圖 24的左手側(cè)顯示了 Index.bdmv,并且圖24的右手側(cè)顯示了這三個標(biāo) 題。
      圖24的右手側(cè)的虛線框顯示了指示每個應(yīng)用程序所述標(biāo)題的從 屬關(guān)系。在這三個標(biāo)題中,標(biāo)題#1包含應(yīng)用程序#1、應(yīng)用程序#2以 及應(yīng)用程序#3。另外,標(biāo)題弁2包含應(yīng)用程序#3和應(yīng)用程序#4,并且 標(biāo)題#3包含應(yīng)用程序#5。在圖24所示的例子中,由標(biāo)題#1和標(biāo)題 #2都運行應(yīng)用程序#3。
      圖25A顯示了每個應(yīng)用程序的生存周期,而這些生存周期都是 基于圖24的虛線框所示的從屬關(guān)系而得到的。在圖25A中,水平軸 指示標(biāo)題播放周期,而垂直軸方向安排應(yīng)用程序的生存周期。這里, 應(yīng)用程序#1和應(yīng)用程序#2僅屬于標(biāo)題#1,并且因此這些應(yīng)用程序的 生存周期限制在標(biāo)題#1內(nèi)。應(yīng)用程序#4僅屬于標(biāo)題#2,并且因此 該應(yīng)用程序的生存周期限制在標(biāo)題#2內(nèi)。應(yīng)用程序#5僅屬于標(biāo)題 #3,并且因此該應(yīng)用程序的生存周期限制在標(biāo)題#3內(nèi)。應(yīng)用程序#3 屬于標(biāo)題#1和標(biāo)題#2,因此該應(yīng)用程序的生存周期延伸在標(biāo)題#1和 標(biāo)題弁2上。圖25B顯示了標(biāo)題弁1、標(biāo)題弁2和標(biāo)題3的應(yīng)用程序管 理表,其中這些表是根據(jù)圖25A中所示生存周期而寫入的。按照這 種方式寫入應(yīng)用程序管理表之后,當(dāng)啟動標(biāo)題#1的播放時將應(yīng)用程序#1、應(yīng)用程序#2以及應(yīng)用程序#3加載到工作存儲器中。然后,當(dāng) 啟動標(biāo)題#2的播放時,將應(yīng)用程序#1和應(yīng)用程序#2從工作寄存器 中刪除,這會導(dǎo)致僅有應(yīng)用程序#3保留在工作寄存器中。類似地, 可以進(jìn)行控制從而當(dāng)啟動標(biāo)題#2的播放時將應(yīng)用程序#4加載到工作 寄存器中,并且當(dāng)啟動標(biāo)題#3的播放時,將應(yīng)用程序#3和應(yīng)用程序 #4從工作寄存器中刪除。
      進(jìn)一步,可以進(jìn)行控制從而當(dāng)播放標(biāo)題#3時將應(yīng)用程序#5加載 到工作寄存器中,并且當(dāng)標(biāo)題#3的播放終止時,將應(yīng)用程序#5從工 作寄存器中刪除。
      通過這種構(gòu)造,可以使得將應(yīng)用程序加載到工作存儲器中的次數(shù) 最小化。這是因為如果在標(biāo)題之間發(fā)生一個轉(zhuǎn)移,那么同時位于轉(zhuǎn)移 源和轉(zhuǎn)移目的地中的應(yīng)用程序會存儲于工作存儲器中,而且不位于轉(zhuǎn) 移源而僅位于轉(zhuǎn)移目的地中的應(yīng)用程序也會加載到工作存儲器中。這 樣一種降低加載數(shù)據(jù)次數(shù)的構(gòu)造使得可以實現(xiàn)無邊界應(yīng)用程序,這種 應(yīng)用程序使得人們并不會意識到標(biāo)題之間的邊界。
      接下來將描述應(yīng)用程序的運行屬性。這些運行屬性包含自動運 行,它指示具有這種屬性的應(yīng)用程序會自動地開始運行;預(yù)發(fā)送,它 指示具有這種屬性的應(yīng)用程序不是自動運行的目標(biāo)但是可以存儲于 虛擬機(jī)的工作存儲器中;以及暫停,它指示具有這種屬性的應(yīng)用程序 存儲于虛擬機(jī)的工作存儲器中但是并未分配給該應(yīng)用程序CPU功 率。
      當(dāng)一個對應(yīng)的標(biāo)題發(fā)生轉(zhuǎn)移時,具有"自動運行"屬性的應(yīng)用程 序被加載到工作存儲器中并且被執(zhí)行。當(dāng)一個標(biāo)題轉(zhuǎn)移到另一個標(biāo)題 時,管理應(yīng)用程序的管理體(應(yīng)用程序管理器)將一個應(yīng)用程序加載 到虛擬機(jī)的工作存儲器中并且執(zhí)行該應(yīng)用程序,其中該應(yīng)用程序存活 于轉(zhuǎn)移目的地標(biāo)題中并且已經(jīng)將它的運行屬性設(shè)置為自動運行。這意 味著當(dāng)標(biāo)題發(fā)生轉(zhuǎn)移時該應(yīng)用程序自動地啟動運行。
      運行屬性"預(yù)發(fā)送"是一種連續(xù)屬性,并且指示轉(zhuǎn)移源標(biāo)題中應(yīng) 用程序的狀態(tài)被保持。這還是一種指示了可以執(zhí)行一個對應(yīng)的應(yīng)用程 序的屬性??梢詮牧硪粋€應(yīng)用程序調(diào)用運行屬性被設(shè)置為"預(yù)發(fā)送"的應(yīng)用程序。當(dāng)從另一個正在運行的應(yīng)用程序中調(diào)用一個程序時,管 理體(應(yīng)用程序管理器)判斷該應(yīng)用程序的應(yīng)用程序ID是否己經(jīng)寫 入到應(yīng)用程序管理表并且是否該應(yīng)用程序的運行屬性被設(shè)置為"預(yù)發(fā) 送"。如果該應(yīng)用程序的運行屬性被設(shè)置為"預(yù)發(fā)送",那么管理體將 該應(yīng)用程序加載到工作存儲器中。如果調(diào)用目的地應(yīng)用程序的應(yīng)用程
      序ID未寫入到應(yīng)用程序管理表中,那么管理體并不將該應(yīng)用程序加
      載到工作存儲器中。只有那些屬性設(shè)置為"預(yù)發(fā)送"的應(yīng)用程序才可 以被從另一個程序中調(diào)用。"預(yù)發(fā)送"是一種缺省的運行屬性,當(dāng)沒 有明確指明運行屬性時就指派給應(yīng)用程序這種屬性。因此,當(dāng)應(yīng)用程 序的運行屬性為指示沒有說明的"一"時,這就意味著應(yīng)用程序的運 行屬性為"預(yù)發(fā)送"。
      "暫停"指示了給具有這種屬性的應(yīng)用程序分配了資源但是未給
      它分配CPU功率。屬性"暫停"是有效的,例如在以下方面當(dāng)執(zhí) 行一個游戲標(biāo)題時,實現(xiàn)通過一條便道的處理。
      圖26顯示了這三種運行屬性(預(yù)發(fā)送、自動運行和暫停)和前
      一個標(biāo)題的三種可能的狀態(tài)(未運行、運行中以及暫停)之間的組合。 如果前一個狀態(tài)是"未運行"并且運行屬性是"自動運行",那么應(yīng) 用程序在轉(zhuǎn)移目的地標(biāo)題中啟動。
      如果前一個狀態(tài)是"未運行"并且運行屬性是"預(yù)發(fā)送"或"暫 停",那么不進(jìn)行操作并且保持該狀態(tài)。
      如果前一個狀態(tài)是"運行中"并且運行屬性是"預(yù)發(fā)送"或"自 動運行",那么不進(jìn)行操作并且保持該狀態(tài)。
      如果將運行屬性設(shè)置為"暫停",那么該應(yīng)用程序的狀態(tài)是暫停。 如果前一個狀態(tài)是"暫停"并且轉(zhuǎn)移目的地標(biāo)題的運行屬性是"暫停", 那么就保持"暫停"。如果前一個狀態(tài)是"暫停"并且轉(zhuǎn)移目的地標(biāo) 題的運行屬性是"預(yù)發(fā)送"或"自動運行",那么在轉(zhuǎn)移目的地標(biāo)題 中再繼續(xù)該應(yīng)用程序。在應(yīng)用程序管理表中定義生存周期和運行屬性
      使得可以執(zhí)行同步控制以在標(biāo)題播放周期期間運行Java (TM)應(yīng)用 程序。這使得可以實現(xiàn)和提供各種用于播放圖像和執(zhí)行程序的應(yīng)用程 序。應(yīng)該注意到,如果前一個狀態(tài)是"暫停"并且轉(zhuǎn)移目的地標(biāo)題的 運行屬性是"預(yù)發(fā)送",那么前一個狀態(tài)"暫停"可以被保持。 最后,將描述每個應(yīng)用程序的"運行優(yōu)先級"。
      運行優(yōu)先級的值為0到255。當(dāng)存儲器資源變得短缺或當(dāng)CPU 負(fù)載較高時,應(yīng)用程序管理器可以使用運行優(yōu)先級來決定強(qiáng)制終止哪 個應(yīng)用程序,或者決定哪個應(yīng)用程序重新獲得資源。應(yīng)用程序管理器 終止具有低級別運行優(yōu)先級的應(yīng)用程序,而保持具有高級別運行優(yōu)先 級的應(yīng)用程序的運行。
      還可以將運行優(yōu)先級用于對由于請求正在播放的一個PL從而彼 此發(fā)生沖突的應(yīng)用程序進(jìn)行仲裁。這里假設(shè)一個應(yīng)用程序正在對一個 播放列表進(jìn)行快進(jìn)操作,而另一個應(yīng)用程序向該播放列表發(fā)出了暫停 請求。那么,對分配給這兩個應(yīng)用程序的運行優(yōu)先級的級別進(jìn)行比較。 如果快進(jìn)應(yīng)用程序具有較高運行優(yōu)先級級別,那么就繼續(xù)進(jìn)行該快進(jìn) 操作。如果暫停請求應(yīng)用程序具有較高運行優(yōu)先級級別,那么正在快 進(jìn)的PL就會被暫停。
      使用上述的生存周期、運行屬性以及運行優(yōu)先級,可以在編寫程 序時將可以在虛擬機(jī)上運行的應(yīng)用程序的數(shù)量限制為預(yù)定的數(shù)量或 更少。這使得應(yīng)用程序可以穩(wěn)定地工作。 <播放列表管理表>
      到目前為止,已經(jīng)描述了應(yīng)用程序管理表。接下來將描述播放列 表管理表。播放列表管理表顯示了應(yīng)該在應(yīng)用程序的生存周期期間與 每個應(yīng)用程序的執(zhí)行同時進(jìn)行的播放控制。應(yīng)用程序的運行是不穩(wěn)定 的??赡軙l(fā)生啟動故障或異常終止。在本實施例中,為每個應(yīng)用程 序生存周期都提供了一個播放列表管理表并將其作為發(fā)生啟動故障 或異常終止時發(fā)揮作用的失效保護(hù)機(jī)制。播放列表管理表是一種信 息,它定義了當(dāng)一個應(yīng)用程序生存周期開始時應(yīng)該執(zhí)行的播放控制。 這里所描述的播放控制是一種基于播放列表信息的AV剪輯的播放。 也就是說,通過執(zhí)行基于播放列表信息的播放控制,可以同時進(jìn)行應(yīng) 用程序的執(zhí)行和播放列表的播放。在前面我們曾經(jīng)說過,為每個應(yīng)用 程序的生存周期都提供了一個播放列表管理表。但是,這里應(yīng)該注意到,播放列表管理表僅與標(biāo)題邊界應(yīng)用程序一致地被提供。這是因為 標(biāo)題無邊界應(yīng)用程序的生存周期延伸到所有標(biāo)題,所以在標(biāo)題無邊界 應(yīng)用程序中無法控制同時進(jìn)行應(yīng)用程序的執(zhí)行和播放列表的播放。
      對于章節(jié)邊界應(yīng)用程序來說,并不需要定義播放列表的播放。這 是因為定義章節(jié)邊界應(yīng)用程序的生存周期是以該應(yīng)用程序的執(zhí)行是 從播放列表內(nèi) 一個章節(jié)開始為前提的。通過上述內(nèi)容我們可以理解, 與包含一個或多個標(biāo)題的生存周期一致地定義播放列表管理表。
      圖27A顯示了播放列表管理表的內(nèi)部結(jié)構(gòu)。如圖27A中所示, 播放列表管理表包含"PL—id—ref"禾B "Playback—Attribute"。
      圖27B顯示了播放列表管理表所包含的信息元素的含義。 "PL—id一ref"通過與PL標(biāo)識符一致地寫入到其中的參照值指示 了在應(yīng)用程序生存周期期間可以被播放的PL。該PL標(biāo)識符由一個在 文件YYYYYMPLS中提供的作為文件名的五位數(shù)字值"YYYYY" 所表示。其中寫入了 YYYYY的"PL—id一ref"指示了可以在一個對 應(yīng)的標(biāo)題中播放的PL。
      "Playback—Attribute"是類似于應(yīng)用程序管理表中運行屬性的一 種屬性,并且它定義了當(dāng)標(biāo)題啟動時如何播放"PLjd一ref"中寫入 的PL。 PL的播放屬性可以分為以下幾類"自動播放"、"預(yù)發(fā)送" 等等。
      "自動播放"是這樣一種屬性它指示當(dāng)對應(yīng)的標(biāo)題發(fā)生轉(zhuǎn)移時, 播放具有"自動播放"屬性的播放列表。當(dāng)一個標(biāo)題轉(zhuǎn)移到另一個標(biāo) 題時,管理應(yīng)用程序的管理體(應(yīng)用程序管理器)開始播放這樣一種 播放列表可以在轉(zhuǎn)移目的地標(biāo)題中播放該播放列表并且該播放列表
      的播放屬性已經(jīng)設(shè)置為自動播放。這意味著當(dāng)標(biāo)題發(fā)生轉(zhuǎn)移時其播放 屬性被設(shè)置為自動播放的播放列表會自動地被激活。
      與運行屬性"預(yù)發(fā)送"的情況一樣,"預(yù)發(fā)送"也是一種連續(xù)屬
      性,并且指示轉(zhuǎn)移源標(biāo)題中PL的狀態(tài)被保持。"預(yù)發(fā)送"還是一種
      指示可以播放一個對應(yīng)的播放列表的屬性。例如,假設(shè)將要連續(xù)播放 兩個標(biāo)題,并且轉(zhuǎn)移源標(biāo)題的播放列表管理表中一個播放列表的播放 屬性設(shè)置為自動播放,并且在轉(zhuǎn)移目的地標(biāo)題的播放列表管理表中,該播放列表的播放屬性被設(shè)置為預(yù)發(fā)送。這里,假設(shè)可以播放該播放 列表兩個小時,并且該播放列表播放一小時之后發(fā)生轉(zhuǎn)移。在這種情 況下,其中播放列表的播放屬性在轉(zhuǎn)移目的地標(biāo)題中被設(shè)置為預(yù)發(fā) 送,轉(zhuǎn)移目的地標(biāo)題對該播放列表的播放是從緊接著已經(jīng)播放一小時 部分之后的位置開始的。由此我們可以理解,即使在標(biāo)題之間發(fā)生轉(zhuǎn) 移,通過將轉(zhuǎn)移目的地標(biāo)題中一個播放列表的播放屬性設(shè)置為預(yù)發(fā) 送,就可以在轉(zhuǎn)移目的地標(biāo)題中繼續(xù)播放該播放列表。這使得多個轉(zhuǎn) 移標(biāo)題可以連續(xù)地播放一個公用的播放列表,從而使得可以容易地實 現(xiàn)"在多個標(biāo)題中播放的公用播放列表"。當(dāng)存在多個轉(zhuǎn)移目的地標(biāo) 題時,通過將這些轉(zhuǎn)移目的地標(biāo)題中播放列表的播放屬性設(shè)置為預(yù)發(fā) 送,就可以在這些轉(zhuǎn)移目的地標(biāo)題中繼續(xù)播放一個公用的播放列表。
      這里應(yīng)該注意到,因為不需要確保在標(biāo)題的邊界處實現(xiàn)無縫播 放,所以對于上述在多個標(biāo)題中播放一個公用播放列表這種情況,允 許在轉(zhuǎn)移附近打斷播放列表的播放。
      另外,當(dāng)另一個應(yīng)用程序發(fā)出請求時,其播放屬性設(shè)置為"預(yù)發(fā) 送"的一個播放列表可以被馬上播放。當(dāng)播放請求是從另一個正在運 行的應(yīng)用程序發(fā)出時,管理體(應(yīng)用程序管理器)判斷目標(biāo)播放列表
      的PLjd一ref是否已經(jīng)寫入到播放列表管理表并且是否該播放列表的 播放屬性被設(shè)置為"自動播放"或"預(yù)發(fā)送"。如果被設(shè)置為"自動 播放"或"預(yù)發(fā)送",那么管理體將播放該播放列表。如果播放列表 的PL_id—ref未寫入到播放列表管理表,那么管理體就不播放該播放 列表。當(dāng)另一個應(yīng)用程序發(fā)出請求時,只有那些其播放屬性設(shè)置為"自 動播放"或"預(yù)發(fā)送"的播放列表才可以播放。"預(yù)發(fā)送"是一種缺 省播放屬性,當(dāng)沒有明確指明播放屬性時就給播放列表賦予這種屬 性。因此,當(dāng)應(yīng)用程序的播放屬性為指明沒有說明的"一"時,這就 意味著該播放列表的播放屬性為"預(yù)發(fā)送"。
      圖28顯示了轉(zhuǎn)移目的地標(biāo)題的三種可能存在的狀態(tài)((i)不具 有播放列表管理表(ii)具有播放列表管理表和自動播放;以及(iii) 具有播放列表管理列表和預(yù)發(fā)送)和前一個標(biāo)題中PL的兩種可能存 在的狀態(tài)(未播放以及正在播放)之間的六種組合形式。在圖28所示的這六種組合形式中,在"前一種狀態(tài)二未播放" 和"轉(zhuǎn)移目的地標(biāo)題具有播放列表管理表,并且播放屬性為自動播放" 的這種組合中,播放列表的播放在轉(zhuǎn)移目的地標(biāo)題中自動地啟動。
      另外,在"前一種狀態(tài)二正在播放"和"轉(zhuǎn)移目的地標(biāo)題不具有 播放列表管理表"這種組合中,播放列表的播放在轉(zhuǎn)移目的地標(biāo)題中 停止。在除上述兩種之外的其它組合形式中,轉(zhuǎn)移源標(biāo)題中的狀態(tài)可 以被保持?;诓シ帕斜砉芾肀?,僅當(dāng)在轉(zhuǎn)移源標(biāo)題中未播放該播放 列表并且播放列表的播放屬性在轉(zhuǎn)移目的地標(biāo)題中設(shè)置為自動播放 時,才會啟動播放列表的播放。因此,并不需要每次在標(biāo)題之間發(fā)生 轉(zhuǎn)移時都啟動播放列表的播放。因此,即使在標(biāo)題之間發(fā)生多次轉(zhuǎn)移, 也可以使得啟動播放列表播放的次數(shù)最小化。
      接下來將參考圖29A中所示具體的例子,描述如何寫播放列表 和應(yīng)用程序管理表。在該具體例子中,使用了兩個連續(xù)標(biāo)題(標(biāo)題#1 和標(biāo)題#2)。在標(biāo)題#1的表中,將應(yīng)用程序#1和應(yīng)用程序#2寫為自 動運行程序。在標(biāo)題#2的表中,將應(yīng)用程序#2和應(yīng)用程序#3寫為自 動運行程序。假設(shè)在標(biāo)題#1的播放列表管理表中,將播放列表#1寫 為自動播放的播放列表,并且在標(biāo)題#2的播放列表管理表中,將播 放列表#2寫為自動播放的播放列表。圖29B顯示了如何根據(jù)圖29A 中所示的播放列表和應(yīng)用程序管理表播放這些播放列表以及執(zhí)行應(yīng) 用程序。
      根據(jù)按照上述方式設(shè)置的播放列表和應(yīng)用程序管理表,當(dāng)標(biāo)題弁1 啟動時,應(yīng)用程序#1禾脂2自動地啟動,并且自動地啟動播放列表#1 的播放。
      根據(jù)按照上述方式設(shè)置的播放列表和應(yīng)用程序管理表,就應(yīng)用程 序#1而言,在表中對標(biāo)題#1進(jìn)行了描述,但是在表中沒有對標(biāo)題#2 進(jìn)行描述。因此,應(yīng)用程序#1的執(zhí)行就會停止。類似地,就播放列 表#1而言,在表中對標(biāo)題#1進(jìn)行了描述,但是在表中沒有對標(biāo)題#2 進(jìn)行描述。因此,播放列表#1的播放就會停止。
      就播放列表#2和應(yīng)用程序#3而言,在表中沒有對標(biāo)題#1進(jìn)行描 述,但是在表中對標(biāo)題#2進(jìn)行了描述。因此,播放列表#2的播放和應(yīng)用程序#3的執(zhí)行會自動地啟動??梢詫⒁粋€轉(zhuǎn)移用于使將要播放 的一個播放列表變?yōu)榱硪粋€播放列表。按照這種方式,通過使用播放 列表和應(yīng)用程序管理表使得提前在編寫程序階段就可以在轉(zhuǎn)移定義 改變將要播放的播放列表的處理。
      另外在圖29A所示的例子中,應(yīng)用程序#1、應(yīng)用程序#2以及應(yīng) 用程序約的運行優(yōu)先級分別為200、 128和200。這樣一種運行優(yōu)先 級的分配使得可以裁決要被執(zhí)行的不同應(yīng)用程序之間的沖突,其中這 些應(yīng)用程序由于發(fā)出控制播放列表#1或播放列表#2的請求從而彼此 發(fā)生沖突。這里假設(shè)應(yīng)用程序#1是對播放列表#1進(jìn)行快進(jìn),而應(yīng)用 程序#2發(fā)出使播放列表#1暫停的請求。那么,通過對應(yīng)用程序管理 表中分配給這些應(yīng)用程序的運行優(yōu)先級進(jìn)行比較從而進(jìn)行裁決。因 此,應(yīng)用程序#1對播放列表#1的控制得以繼續(xù),而拒絕了應(yīng)用程序 #2提出的請求??梢栽诰帉懗绦螂A段定義這樣一個處理。在播放列 表管理表中使用運行優(yōu)先級使得播放裝置可以在出現(xiàn)播放列表所引 發(fā)的沖突時進(jìn)行裁決。
      接下來描述了播放列表管理表的描述的一個具體例子。圖30A 顯示了播放列表管理表的描述的一個例子。按照如下所述為兩個連續(xù) 標(biāo)題(標(biāo)題#1、標(biāo)題#2)寫出了表。在標(biāo)題#1的播放列表管理表中, 將播放列表#1寫為自動運行播放列表,并且將播放列表#2寫為可播 放的播放列表。在標(biāo)題#1的應(yīng)用程序管理表中,將應(yīng)用程序#1寫為 自動運行應(yīng)用程序,并且將應(yīng)用程序#2寫為可執(zhí)行的應(yīng)用程序。在 標(biāo)題#2的播放列表管理表中,將播放列表#2和播放列表#3寫為可播 放的播放列表。在標(biāo)題#2的應(yīng)用程序管理表中,將應(yīng)用程序#3寫為 自動播放應(yīng)用程序。圖30B顯示了如何基于圖30A中所示的播放列 表和應(yīng)用程序管理表而播放這些播放列表以及執(zhí)行這些應(yīng)用程序。根 據(jù)如上述方式設(shè)置的播放列表和應(yīng)用程序管理表,當(dāng)標(biāo)題#1啟動時, 寫為自動運行應(yīng)用程序的應(yīng)用程序#1自動地啟動。另外,因為在標(biāo) 題#1的應(yīng)用程序管理表中將應(yīng)用程序#2寫為可執(zhí)行應(yīng)用程序,所以 通過從應(yīng)用程序#1發(fā)出的調(diào)用ydl來啟動應(yīng)用程序弁2。
      在標(biāo)題#2的應(yīng)用程序管理表中,并沒有描述應(yīng)用程序#1和#2,但是將應(yīng)用程序#3寫為了自動運行應(yīng)用程序。因此,在標(biāo)題#1和標(biāo) 題#2之間的邊界處,應(yīng)用程序#1和#2的執(zhí)行會停止,并且應(yīng)用程序 #3會自動地啟動。在標(biāo)題#1的播放列表管理表中,將播放列表#1和 #2寫為可播放的播放列表。在這些可播放的播放列表中,給播放列 表#1賦予了自動播放屬性。因此,播放列表#1在標(biāo)題#1啟動時會自 動地播放。
      在標(biāo)題#1的播放列表管理表中,將播放列表#1和#2寫為可播放 的播放列表。因此,應(yīng)用程序#1可以通過請求播放列表#2的播放從 而停止播放列表#1的播放并且啟動播放列表#2的播放,從而實現(xiàn)了 播放列表改變。在標(biāo)題#2的播放列表管理表中,將播放列表#2和#3 寫為可播放的播放列表,并且不存在附帶有自動播放屬性的播放列 表。因此,在標(biāo)題#1啟動時自動地啟動的播放列表#1的播放在標(biāo)題 #1期間會持續(xù),但是在標(biāo)題#2開始時會自動地停止。
      但是,如果播放列表#2的播放在標(biāo)題#1期間一直持續(xù),那么它 在標(biāo)題#2中也會持續(xù)。在標(biāo)題#2的播放列表管理表中,將播放列表 #2和#3寫為可播放的播放列表。因此,在標(biāo)題#2中運行的應(yīng)用程序 #3可以通過請求播放列表#3的播放從而停止播放列表#2的播放并且 啟動播放列表#3的播放,從而實現(xiàn)了播放列表改變。
      接下來,將參考圖31A到31C描述如何通過播放列表管理表定 義標(biāo)題播放周期。
      圖31A顯示了一個標(biāo)題的標(biāo)題播放周期,其中該標(biāo)題的播放屬 性設(shè)置為自動播放。如果播放屬性設(shè)置為自動播放,那么當(dāng)標(biāo)題的播 放啟動時自動播放PL的播放也會啟動。這里,即使應(yīng)用程序正常運 行并且正常終止,也會根據(jù)PL時間軸確定標(biāo)題播放周期。
      圖31B顯示了這樣一種情況在播放列表管理表中播放屬性設(shè) 置為自動播放,并且應(yīng)用程序異常終止。在該異常終止后,并不運行 任何應(yīng)用程序,但是會繼續(xù)自動播放P1的播放。在這種情況下也是 根據(jù)PL時間軸確定標(biāo)題播放周期。
      圖31C顯示了這樣一種情況,在播放列表管理表中播放屬性設(shè) 置為自動播放,并且主應(yīng)用程序未能啟動。在這種情況下也是基于PL時間軸確定標(biāo)題播放周期,這是因為自動播放P1會被播放而無論
      應(yīng)用程序是否出現(xiàn)啟動故障。
      通過上述這種在播放列表管理表中將播放屬性設(shè)置為自動播放
      的安排,可以使得即使啟動一個Java(TM)應(yīng)用程序需要5到10秒, 但是在啟動期間屏幕上會有顯示。也就是說,即使啟動一個應(yīng)用程序 需要時間,但是在啟動期間屏幕上會有顯示。這就緩解了由應(yīng)用程序 啟動的耗費時間的處理所導(dǎo)致的啟動延遲。
      通過定義應(yīng)用程序和播放列表管理表使得可以進(jìn)行同步控制以 在標(biāo)題播放期間運行Java (TM)應(yīng)用程序。這使得可以實現(xiàn)和提供 多種用于播放圖像和執(zhí)行程序的應(yīng)用程序。到目前為止,已經(jīng)對記錄 介質(zhì)進(jìn)行了描述。接下來將描述本發(fā)明的播放裝置。
      圖32顯示了本發(fā)明的播放裝置的內(nèi)部結(jié)構(gòu)。本發(fā)明的播放裝置 是基于圖32中所示內(nèi)部結(jié)構(gòu)進(jìn)行工業(yè)制造的。本發(fā)明的播放裝置主 要包含兩個部分系統(tǒng)LSI和驅(qū)動裝置。工業(yè)制造是通過將這兩部分 裝入裝置的機(jī)柜和板中實現(xiàn)的。系統(tǒng)LSI是一種集成電路,它包含用 于執(zhí)行播放裝置的函數(shù)的多種處理單元。按照這樣一種方式制造出的 播放裝置包含BD-ROM驅(qū)動器1 、讀取緩沖器2、解復(fù)用器3、視頻 解碼器4、視頻平面5、 P圖像解碼器6、呈現(xiàn)圖像平面7、合并單元 8、字體生成器9、 I圖像解碼器IO、開關(guān)ll、互動圖像平面12、合 并單元13、 CLUT單元14、 CLUT單元15、音頻解碼器16、網(wǎng)絡(luò)設(shè) 備17、本地存儲器18、讀取緩沖區(qū)19、解復(fù)用器20、指令ROM21、 用戶事件處理單元22、 PSR裝置23、 CPU 24、腳本存儲器25、本地 存儲器26以及幵關(guān)27。
      首先,將描述用于播放記錄于BD-ROM上的AV剪輯的器件 (BD-ROM驅(qū)動器1至音頻解碼器16)。
      BD-ROM驅(qū)動器1執(zhí)行BD-ROM的加載/彈出以及對BD-ROM 進(jìn)行訪問。
      讀取緩沖器2是一種FIFO存儲器,其中從BD-ROM讀取的TS 包按照先進(jìn)先出的方式存儲。
      解復(fù)用器(De-mux) 3從讀取存儲器2中提取TS包,并且將TS包轉(zhuǎn)換為PES包。對于通過這種轉(zhuǎn)換從而獲得的PES包。解復(fù)用器 3將其中那些由CPU 24對PID進(jìn)行了設(shè)置的PES包從通過轉(zhuǎn)換獲得 的PES包中輸出到視頻解碼器4、 P圖像解碼器6、 I圖像解碼器10 以及音頻解碼器16中的任意一個。
      視頻解碼器4對從解復(fù)用器3輸出的多個PES包進(jìn)行解碼,將 其解碼成一種非壓縮格式的圖像,并且將這些圖像寫到視頻平面5 上。
      視頻平面5是一種用于存儲非壓縮格式圖像的平面。該平面是播 放裝置中一種用于存儲屏幕畫面的象素數(shù)據(jù)的存儲區(qū)域。視頻平面5 的分辨率是1920 x 1080。存儲于視頻平面5中的圖像數(shù)據(jù)包含由音 頻解碼器16比特YUV值表示的象素數(shù)據(jù)。在視頻平面5中,可以 對視頻流中每幀播放圖像進(jìn)行縮放。這里,"縮放"是指將每幀播放 圖像的尺寸變?yōu)橐曨l平面5的1/4 (四分之一)和1/1 (全屏)??梢?在BD-J模式中根據(jù)CPU 24的指令執(zhí)行這樣一種縮放。這使得可以 通過在一個角落或以全屏方式等等顯示視頻流的播放圖像從而實現(xiàn) 對屏幕的不同安排。
      P圖像解碼器6將從BD-ROM讀出的呈現(xiàn)圖像流解碼為非壓縮 圖像,并且將這些非壓縮圖像寫入到呈現(xiàn)圖像平面7上。對圖像流的 解碼產(chǎn)生出現(xiàn)在屏幕上的字幕。
      呈現(xiàn)圖像平面7是一種具有一個屏幕大小的存儲器區(qū)域,并且可 以存儲一個屏幕的非壓縮圖像。視頻平面5的分辨率是1920 x 1080。 存儲于呈現(xiàn)圖像平面7中的非壓縮圖像的每個象素都是由一個8比特 索引顏色(indecolor)表示。在使用CLUT (顏色查詢表)對索引顏 色進(jìn)行轉(zhuǎn)換之后就可以顯示存儲于呈現(xiàn)圖像平面7中的非壓縮圖像。
      合并單元8將存儲于視頻平面5中的非壓縮圖像數(shù)據(jù)(i)與存 儲于呈現(xiàn)圖像平面7中的數(shù)據(jù)合并到一起。
      字體生成器9使用字符字體將包含在文本ST流中的文本代碼擴(kuò) 展為位圖,并且將這些位圖寫到呈現(xiàn)圖像平面7上。
      I圖像解碼器10將在HDMV模式中從BD-ROM或本地存儲器 18讀出的IG流解碼為非壓縮圖像,并且將這些非壓縮圖像寫到互動圖像平面12上。
      開關(guān)11有選擇地將字體生成器9生成的字體序列或通過P圖像 解碼器6進(jìn)行解碼從而得到的圖像寫到呈現(xiàn)圖像平面7上。
      互動圖像平面12存儲那些由I圖像解碼器10進(jìn)行解碼從而得到 的非壓縮圖像?;訄D像平面12還存儲那些應(yīng)用程序在BD-J模式中 繪制的字符和圖像。
      合并單元13將存儲于互動圖像平面12中的數(shù)據(jù)與從合并單元8 中輸出的合成圖像(非壓縮圖像數(shù)據(jù)和存儲于呈現(xiàn)圖像平面7中數(shù)據(jù) 的結(jié)合)合并在一起。這種合并使得由應(yīng)用程序?qū)懙絀圖像解碼器10 上的字符和/或圖像可以疊加到非壓縮圖像數(shù)據(jù)上。
      CLUT單元14將存儲于視頻平面5中的非壓縮圖像的索引顏色 轉(zhuǎn)換為Y、 Cr和Cb值。
      CLUT單元15將存儲于互動圖像平面12中的非壓縮圖像的索引 顏色轉(zhuǎn)換為Y、 Cr和Cb值。
      音頻解碼器16對從解復(fù)用器3輸出的PES包進(jìn)行解碼,并且按 照非壓縮格式輸出音頻數(shù)據(jù)。
      到目前為止,已經(jīng)對用于播放AV剪輯的器件進(jìn)行了描述。接下 來將描述與BD-J模式中操作相關(guān)的器件(網(wǎng)絡(luò)設(shè)備17至解復(fù)用器 20)。
      網(wǎng)絡(luò)設(shè)備17用于實現(xiàn)播放裝置中的通信功能。當(dāng)BD-J模式中的 Java (TM)應(yīng)用程序指定一個URL時,網(wǎng)絡(luò)設(shè)備17就會與具有該 URL的網(wǎng)站建立TCP連接、FTP連接等等。建立這樣一種連接使得 該Java (TM)應(yīng)用程序可以從該網(wǎng)站下載數(shù)據(jù)。
      本地存儲器18是一種用于存儲元數(shù)據(jù)以及由除BD-ROM之外的 其它記錄介質(zhì)或通信介質(zhì)提供的內(nèi)容的硬盤,這些內(nèi)容例如通過網(wǎng)絡(luò) 設(shè)備17建立的連接從網(wǎng)站上下載的內(nèi)容。該元數(shù)據(jù)用于通過將下載 內(nèi)容限制在本地存儲器18中從而對這些下載內(nèi)容進(jìn)行管理。BD-J模 式中的一個應(yīng)用程序可以通過訪問本地存儲器18從而使用下載內(nèi)容 的一段執(zhí)行多種過程。
      讀取緩沖器19是一種FIFO存儲器。如果存儲于本地存儲器18中的下載內(nèi)容包含一個子剪輯,那么讀取緩沖器19就將按照先進(jìn)先 出的方式存儲該子剪輯所包含的TS包。
      解復(fù)用器(De-mux) 20從讀取緩沖器19中提取TS包,并且將 這些TS包轉(zhuǎn)換為PES包。對于通過這種轉(zhuǎn)換從而獲得的PES包,解 復(fù)用器3將其中那些具有期望的PID的PES包從通過轉(zhuǎn)換獲得的PES 包中輸出到字體生成器9、 I圖像解碼器10以及音頻解碼器16中。
      通過網(wǎng)絡(luò)設(shè)備17到解復(fù)用器20的上述操作,可以按照與記錄于 BD-ROM上內(nèi)容相同的方式對Java (TM)應(yīng)用程序從網(wǎng)絡(luò)下載的內(nèi) 容進(jìn)行播放。接下來將描述用于實現(xiàn)播放裝置中集成控制的器件(指 令ROM 21至開關(guān)27)。
      指令ROM21存儲有定義了播放裝置的控制的軟件。
      用戶事件處理單元22將用戶事件輸出到CPU 24,所述用戶事件 是通過遙控器上或播放裝置的前面板上的鍵盤操作指示的。
      PSR集合23是一種嵌入到播放裝置中的寄存器,并且包含64個 播放器狀態(tài)寄存器(PSR)和4096個通用寄存器(GPR)。在播放器 狀態(tài)寄存器中所設(shè)置的值中(所設(shè)置的值稱作PSR), PSR 4和PSR 8 用于表示當(dāng)前播放位置。
      PSR4被設(shè)置為從1到100的值,以指示當(dāng)前播放位置所屬的標(biāo) 題,而設(shè)置為0時,用于指示當(dāng)前播放位置屬于頂級菜單。
      當(dāng)PSR5被設(shè)置為從1到999的值,以指示當(dāng)前播放位置所屬章 節(jié)的章節(jié)號,而設(shè)置為OxFFFF時,用于指示播放裝置中的章節(jié)號是 無效的。
      PSR6被設(shè)置為從1到999的值,以指示當(dāng)前播放位置所屬的PL (當(dāng)前PL)的PL號。
      PSR7被設(shè)置為從1到255,以指示當(dāng)前播放位置所屬的播放項 (當(dāng)前播放項)的播放項號。
      PSR 8被設(shè)置為從1到OxFFFFFFFF,以使用45KHZ的時間精度 指示當(dāng)前播放位置(當(dāng)前PTM (呈現(xiàn)時間))。使用上述的PSR 4至 PSR 8,可以在圖21A中所示的整個BD-ROM的時間軸上標(biāo)識當(dāng)前 播放位置。CPU 24運行存儲于指令ROM 21中的軟件并且控制整個播放裝 置?;谟脩羰录幚韱卧?2輸出的用戶事件和PSR集合23中不 同PSR中設(shè)置的值,控制的內(nèi)容動態(tài)地進(jìn)行改變。
      腳本存儲器25存儲當(dāng)前PL信息和當(dāng)前剪輯信息。當(dāng)前PL信息 是記錄在BD-ROM上的多條PL信息中作為當(dāng)前處理目標(biāo)的那條PL 信息。當(dāng)前剪輯信息是記錄在BD-ROM上的多條剪輯信息中作為當(dāng) 前處理目標(biāo)的那條剪輯信息。
      本地存儲器26是一種高速緩沖存儲器,用于暫時存儲記錄在 BD-ROM上的數(shù)據(jù)從而彌補從BD-ROM讀取數(shù)據(jù)時的緩慢性。由于 有本地存儲器26的存在,可以在BD-J模式中高效地執(zhí)行應(yīng)用程序。
      開關(guān)27用于有選擇地將從BD-ROM或本地存儲器中讀取的數(shù)據(jù) 輸入到讀取緩沖器2、讀取緩沖器19、腳本存儲器25和本地存儲器 26中的任意一個。
      到目前為止,已經(jīng)描述了本實施例的播放裝置的硬件結(jié)構(gòu)。接下 來將描述本實施例的播放裝置的軟件結(jié)構(gòu)。
      圖33按照層結(jié)構(gòu)的形式顯示了硬件和存儲于CPU 24中的軟件。 如圖33中所示,播放裝置的層結(jié)構(gòu)包含
      a) 作為BD播放器設(shè)備的第一層;
      b) 作為BD播放器模型的第二層;以及
      c) 作為應(yīng)用程序運行時間環(huán)境的第三層。
      圖32中所示播放裝置的硬件結(jié)構(gòu)屬于第一層。作為BD播放器 設(shè)備的第一層包含 一個"解碼器",它包含視頻解碼器4、 P圖像解 碼器6、 I圖像解碼器10以及音頻解碼器16; —個"平面",它包含 視頻平面5、呈現(xiàn)圖像平面7以及互動圖像平面12; BD-ROM, BD-ROM的文件系統(tǒng);本地存儲器18以及本地存儲器18的文件系 統(tǒng)。
      作為BD播放器模型的第二層包含 b2)包含播放控制引擎32的層;以及
      bl)包含虛擬文件系統(tǒng)30和呈現(xiàn)引擎31的層,并且該層向高于 其自身的層提供功能的API。作為應(yīng)用程序運行時間環(huán)境的第三層包含 Cl)其中具有模塊管理器34的層;
      c2)其中具有HDMV模塊33和BD-J模塊35的層。
      在圖33中所示的層模型中,模塊管理器34位于最上層。模塊管 理器34具有一個直接通向播放控制引擎32的旁路url,該旁路越過 了 HDMV模塊33和BD-J模塊35。在如圖33中所示的層模型中, 由于該旁路的存在,模塊管理器34的形狀為一個倒寫的字符"L", 并且使用戶事件管理器37嵌入到其中。
      BD-J模塊35是一種Java (TM)平臺,具有以Java (TM)虛擬 機(jī)38為中心的構(gòu)造。多種系統(tǒng)程序和應(yīng)用程序都在該Java (TM)虛 擬機(jī)38所包含的工作存儲器中工作。位于Java (TM)虛擬機(jī)38之 上的應(yīng)用程序管理器36和時間聽者管理器39 (缺省操作管理器40) 都是這種系統(tǒng)程序。應(yīng)用程序管理器36包含一個PLMT處理器41。 另外,在BD-J模塊35和播放控制引擎32之間有一個許可控制器42。
      首先將描述屬于第二層的虛擬文件系統(tǒng)30至模塊管理器34。圖 34顯示了虛擬文件系統(tǒng)30到模塊管理器34所執(zhí)行的處理。
      虛擬文件系統(tǒng)30是一種用于對存儲于本地存儲器18中的下載內(nèi) 容按照BD-ROM的盤內(nèi)容的處理方式進(jìn)行處理的一種虛擬文件系 統(tǒng)。存儲于本地存儲器18中的下載內(nèi)容包含子剪輯、剪輯信息以及 播放列表信息。下載內(nèi)容中的播放列表信息與記錄在BD-ROM上的 播放列表信息的區(qū)別在于,它可以指定剪輯信息而無論這些剪輯信息 是存儲于BD-ROM上還是存儲于本地存儲器18上。并且對于這種指 定,虛擬文件系統(tǒng)30上的播放列表信息不需要通過全路徑指定 BD-ROM或本地存儲器18上的一個文件。這是因為BD-ROM或本 地存儲器18上的文件系統(tǒng)被視作一種虛擬文件系統(tǒng)(虛擬文件系統(tǒng) 30)。因此,通過這里所指定的作為存儲剪輯信息的文件的文件體的 五位數(shù)值,可以將播放項信息中的Clip_Information_file_name和子播 放項信息中的Clip—Information—file—name用于指定虛擬文件系統(tǒng)30 或BD-ROM上的一個AV剪輯。對于通過虛擬文件系統(tǒng)30從本地存 儲器18中讀取的數(shù)據(jù),當(dāng)將這些數(shù)據(jù)動態(tài)地與存儲于BD-ROM中的數(shù)據(jù)合并到一起時,可以生成多種形式的播放。在本實施例中,因為
      將本地存儲器18和BD-ROM合并的盤內(nèi)容與BD-ROM的盤內(nèi)容同 等對待,所以可以認(rèn)為"BD-ROM"也指一種虛擬記錄介質(zhì),并且這 種虛擬記錄介質(zhì)是本地存儲器18和BD-ROM的合并。
      呈現(xiàn)引擎31執(zhí)行AV播放功能。播放裝置中的AV播放功能是一 組從CD和DVD播放器繼承而來的傳統(tǒng)功能。這些AV播放功能包 含播放、停止、暫停開始、暫停結(jié)束、靜止結(jié)束、向前播放(具有 速度說明)、向后播放(具有速度說明)、視頻變換、字幕變換以及角 度變換。為了實現(xiàn)這些AV播放功能,呈現(xiàn)引擎31控制視頻解碼器4、 P圖像解碼器6、1圖像解碼器10以及音頻解碼器16從而對對應(yīng)于一 段期望時間的一部分AV剪輯進(jìn)行解碼,并且這部分AV剪輯已經(jīng)被 讀取到讀取緩沖器2中。這里,期望時間可以是由PSR8 (當(dāng)前PTM) 指定的時間。通過這種構(gòu)造,可以播放對應(yīng)于任意一段時間的一部分 AV剪輯。
      播放控制引擎(PCE) 32所執(zhí)行的功能包含(i)播放列表播放 控制功能;以及(ii)通過PSR集合23從而獲得和設(shè)置狀態(tài)的狀態(tài) 獲得/設(shè)置功能。在呈現(xiàn)引擎31所執(zhí)行的AV播放功能中,播放列表 播放控制功能是根據(jù)當(dāng)前PL信息和剪輯信息而執(zhí)行的播放啟動和播 放停止等等。該功能(i)和(ii)響應(yīng)于由HDMV模塊33、模塊管 理器34和BD-J模塊35發(fā)出的功能調(diào)用而執(zhí)行。
      也就是說,如果播放控制引擎32接收到命令它播放一個PL的 功能調(diào)用,那么它就通過虛擬文件系統(tǒng)30,從BD-ROM或本地存儲 器18中讀取對應(yīng)于該功能調(diào)用中所指定的PL的播放列表信息。然 后,播放控制引擎32參考該段播放列表信息中包含的播放項信息, 通過虛擬文件系統(tǒng)30從BD-ROM或本地存儲器18中讀取該播放項 信息的Clipjnformation一file一name中敘述的剪輯信息。圖34中的符 號 1、 2、 3以及 4分別指示了以下內(nèi)容通過虛擬文件系統(tǒng) 30讀取播放列表信息( 1);對播放列表信息所包含的播放項信息 進(jìn)行解碼( 2);通過虛擬文件系統(tǒng)30讀取剪輯信息( 3);對剪 輯信息進(jìn)行解碼( 4)。在按照上述方式對剪輯信息和播放列表信息進(jìn)行解碼之后,通過虛擬文件系統(tǒng)30將AV剪輯所包含的TS包轉(zhuǎn)移 到呈現(xiàn)引擎31。在將TS包轉(zhuǎn)移到呈現(xiàn)引擎31之后,呈現(xiàn)引擎31 將AV剪輯所包含的TS包輸出到解碼器從而可以在平面上顯示它們。 圖34中的符號眾1、眾2、眾3、眾4以及眾5分別指示以下內(nèi)容讀 取AV剪輯所包含的TS包(眾1、眾2);從虛擬文件系統(tǒng)30將這些 TS包轉(zhuǎn)移到呈現(xiàn)引擎31 (眾3);將這些TS包輸出到解碼器(眾4); 以及將通過解碼器得到的解碼結(jié)果輸出到平面(A5)。
      HDMV模塊33是用于執(zhí)行HDMV模式的主體。如果HDMV模 塊33從模塊管理器34接收到一個激活請求(activate (mobjjd),其 中mobj—id指定了一個轉(zhuǎn)移目的地MovieObject (電影對象)),那么 它就將該MovieObject (mobj一id)存儲到本地存儲器26中,對該 MovieObject中寫入的導(dǎo)航命令進(jìn)行解碼,并且根據(jù)解碼結(jié)果向播放 控制引擎32發(fā)出一個功能調(diào)用。在圖34中,帶有符號V2、 V3以 及V4的箭頭分別指示以下內(nèi)容從模塊管理器34接收"activate
      (mobj—id)" (V2);對MovieObject中寫入的導(dǎo)航命令進(jìn)行解碼(▽ 3);以及向播放控制引擎32發(fā)出一個功能調(diào)用(V4)。
      模塊管理器34持有從BD-ROM讀取的Index.bdmv并且執(zhí)行轉(zhuǎn) 移控制。該轉(zhuǎn)移控制包括向當(dāng)前標(biāo)題所包含的動態(tài)腳本發(fā)出一個終止 事件,以及向轉(zhuǎn)移目的地標(biāo)題所包含的動態(tài)腳本發(fā)出一個激活事件。 如果一個MovieObject執(zhí)行一個指定titlejd的JumpTitle (跳轉(zhuǎn)標(biāo)題) 命令(JumpTitle (title一id)),那么模塊管理器34向當(dāng)前標(biāo)題所包含 的MovieObject發(fā)出一個終止事件,并且發(fā)出一個activate (mobj—id) 事件從而激活對應(yīng)于title—id的標(biāo)題所包含的MovieObject。在圖34 中,帶有符號VO、 VI以及V2的箭頭分別指示以下內(nèi)容執(zhí)行一個 JumpTitle命令(V0);模塊管理器34參考Index.bdmv ( ▽ 1);以及 發(fā)送一個通知從而激活轉(zhuǎn)移目的地標(biāo)題所包含的MovieObject (V2)。 這些工作步驟也適用于其中BD-J對象調(diào)用JumpTMeAPI (JumpTitle
      (title—id))的情況。在這種情況下,向當(dāng)前標(biāo)題所包含的BD-J對象 發(fā)出一個終止事件,并且向BD-J模塊35發(fā)出一個activate (mobj—id) 從而激活對應(yīng)于titlejd的標(biāo)題所包含的BD-J對象。到目前為止,已經(jīng)描述了呈現(xiàn)引擎31至模塊管理器34。接下來 將參考圖35描述應(yīng)用程序管理器36。圖35顯示了應(yīng)用程序管理器 36。
      每當(dāng)標(biāo)題之間發(fā)生轉(zhuǎn)移時,應(yīng)用程序管理器36就會命令Java (TM)虛擬機(jī)38啟動這樣一個應(yīng)用程序它未在轉(zhuǎn)移源標(biāo)題中運行, 但是對于轉(zhuǎn)移目的地標(biāo)題卻具有運行屬性"自動運行"。同時,應(yīng)用 程序管理器36終止這樣一個應(yīng)用程序它在轉(zhuǎn)移源標(biāo)題中運行,但 是在轉(zhuǎn)移目的地標(biāo)題中卻沒有生存周期。通過參考當(dāng)前BD-J對象的 應(yīng)用程序管理表從而進(jìn)行這樣的啟動控制和終止控制。這里如果在標(biāo) 題之間發(fā)生一個轉(zhuǎn)移,那么模塊管理器34會發(fā)出activate (bobjjd) 的通知。當(dāng)接收到該通知時,應(yīng)用程序管理器36將當(dāng)前BD-J對象設(shè) 置為對應(yīng)于該bobj—id的BD-J對象,并且參考當(dāng)前BD-J對象的應(yīng)用 程序管理器表。這使得應(yīng)用程序管理器36可以識別那些自動啟動和 自動終止的應(yīng)用程序。在圖35中,符號眾0、眾1、眾2以及眾3分別 指示以下內(nèi)容發(fā)生一次TitleJump (標(biāo)題跳轉(zhuǎn))(眾0);通知activate (bobj—id)(眾1);參考應(yīng)用程序管理表(眾2);以及命令Java(TM) 虛擬機(jī)38啟動一個應(yīng)用程序(眾3)。通過該啟動一個應(yīng)用程序的命 令,Java (TM)虛擬機(jī)38把xlet程序從本地存儲器26讀取到工作 存儲器(眾4、眾5)。
      到目前為止,己經(jīng)描述了應(yīng)用程序管理器36。接下來將參考圖 36描述用戶事件管理器37至缺省操作管理器40。
      用戶事件管理器37將用戶事件處理單元22接收到的用戶事件分 為(i)播放控制的用戶事件以及(ii)鍵盤事件。播放控制的用戶 事件是用于發(fā)出以下命令的用戶事件播放、停止、暫停開始、暫停 結(jié)束、靜止結(jié)束、向前播放(具有速度說明)、向后播放(具有速度 說明)、視頻變換、字幕變換以及角度變換。鍵盤事件是指示按下了
      以下這些鍵的用戶事件向上移動、向下移動、向右移動、向左移動
      以及數(shù)字鍵。用戶事件管理器37發(fā)出一個功能調(diào)用,從而使播放控 制引擎32根據(jù)播放控制的用戶事件執(zhí)行播放控制功能。該功能調(diào)用 稱作UO (用戶操作),并且通過位于模塊管理器34的旁路上的UO控制器37a發(fā)送到播放控制引擎32,而不通過HDMV模塊33和BD-J 模塊35。這使得可以無延遲地執(zhí)行用于播放、停止、暫停開始、暫 停結(jié)束等等的播放控制。在圖36中,符號眾l、眾2以及眾3分別指 示以下內(nèi)容用戶事件管理器37將用戶事件分為(i)播放控制的用 戶事件以及(ii)鍵盤事件(☆!、眾2);以及根據(jù)播放控制的用戶事 件被發(fā)送到播放控制引擎32的功能調(diào)用(眾3)。
      Java (TM)虛擬機(jī)38將應(yīng)用程序所包含的xlet程序加載到工作 存儲器,對該xlet程序進(jìn)行解碼,并且根據(jù)解碼結(jié)果控制較低的層。 更具體地說,在對較低層的控制中,Java (TM)虛擬機(jī)38向BD中 間件(middleware)(未示出)發(fā)出一種JMF方法,從而對應(yīng)于BD 播放裝置的功能調(diào)用可以替換現(xiàn)有的功能調(diào)用,并且在該替換之后將 該功能調(diào)用發(fā)送到播放控制引擎32。
      事件聽者管理器39對鍵盤事件進(jìn)行分析并且分發(fā)這些事件。圖 36中的實線箭頭Ol和02指示了由事件聽者管理器39所進(jìn)行的事件 分發(fā)。如果要被分發(fā)的事件是已經(jīng)在xlet程序的事件聽者中登記了的 鍵盤事件,那么事件聽者管理器39就將該事件分發(fā)到由BD-J對象間 接指向的一個xlet程序。xlet程序中的事件聽者具有對應(yīng)于已經(jīng)在其 中登記了的JMF的鍵盤事件。因此,可以通過這樣一種登記的鍵盤 事件啟動該xlet程序。如果要被分發(fā)的事件是未在事件聽者中登記的 鍵盤事件,那么事件聽者管理器39就將該事件分發(fā)到缺省操作管理 器40。因為在BD-ROM播放裝置中可能會出現(xiàn)包含未在事件聽者中 登記的鍵盤事件的各種鍵盤事件,所以上述安排是用于對每種鍵盤事 件都可以進(jìn)行適當(dāng)?shù)靥幚矶粫霈F(xiàn)故障。
      當(dāng)事件聽者管理器39將未在xlet程序的事件聽者中登記的鍵盤 事件分發(fā)到缺省操作管理器40時,缺省操作管理器40向播放控制引 擎32發(fā)出對應(yīng)于該未在事件聽者中登記的事件的一個功能調(diào)用。圖 36中的箭頭03指示了由缺省操作管理器40發(fā)出的該功能調(diào)用。
      PLMT處理器41是應(yīng)用程序管理器36的一個組成部分,并且如 果從模塊管理器34接收到activate(bobj—id),那么它就參考由bobj—id 標(biāo)識的BD-J對象的播放列表管理表。并且如果將具有播放屬性"自動播放"的PL寫入到BD-J對象的播放列表管理表中,那么PLMT 處理器41就輸出到播放控制引擎32以播放該自動播放PL。但是, 如果播放控制引擎32發(fā)出一種指示PL播放的結(jié)束的通知事件,那 么PLMT處理器41就會將發(fā)出該通知事件的時刻認(rèn)做標(biāo)題結(jié)束點。 圖36中的箭頭A1和A2分別指示了以下內(nèi)容向播放控制引擎32 發(fā)出一個功能調(diào)用PLayPL ( △ 1);從播放控制引擎32輸出一個通知 事件(A2)。
      以上就是對BD-J模塊35中層結(jié)構(gòu)的全部描述。這里應(yīng)該注意到, 在本實施例中省去了對許可控制器42的描述,我們會在實施例3中 對其進(jìn)行詳細(xì)描述。 <Java (TM)虛擬機(jī)38的內(nèi)部結(jié)構(gòu)>
      接下來將描述Java (TM)虛擬機(jī)38的內(nèi)部結(jié)構(gòu)。圖37顯示了 Java (TM)虛擬機(jī)38的內(nèi)部結(jié)構(gòu)。如圖37中所示,Java (TM)虛 擬機(jī)38包含了如圖32所示的CPU24、用戶類加載器52、方法區(qū)域 53、工作存儲器54、線程55a、 55b,…55n以及Java (TM)堆棧56a、 56b,…56n。
      用戶類加載器52從本地存儲器26等等中讀取屬于BDJA目錄的 Java (TM)存檔文件中的類文件,并且將這些讀取的類文件存儲到 方法區(qū)域53中。這種由用戶類加載器52對類文件的讀取是通過應(yīng)用 程序管理器36指定一個文件路徑并且命令用戶類加載器52按照該路 徑讀取類文件而實現(xiàn)的。如果該文件路徑指示本地存儲器26,那么 用戶類加載器52從本地存儲器26將一個應(yīng)用程序所包含的Java (TM)存檔文件中的一個類文件讀取到工作存儲器上。如果該文件 路徑指示虛擬文件系統(tǒng)30中的一個目錄,那么用戶類加載器52從 BD-ROM或本地存儲器18上將一個應(yīng)用程序所包含的Java (TM) 存檔文件中的一個類文件讀取到工作存儲器上。圖35中所示的應(yīng)用 程序激活控制(眾3、眾4以及眾5)是通過用戶類加載器52對類文 件的讀取而實現(xiàn)的。如果所指定讀取的類文件并未存儲于本地存儲器 26,那么用戶類加載器52就通知應(yīng)用程序管理器36出現(xiàn)一個讀取故 障。方法區(qū)域53存儲由用戶類加載器52從本地存儲器26讀取的類 文件。
      工作存儲器54被稱作堆區(qū)域,用于存儲各種類文件的實例。圖 33中所示的應(yīng)用程序管理器36和事件聽者管理器39是位于工作存 儲器54中的常駐應(yīng)用程序。工作存儲器54還存儲對應(yīng)于存儲于方法 區(qū)域53中的類文件的實例以及常駐類型實例。這些實例是應(yīng)用程序 所包含的xlet程序。當(dāng)這樣的xlet程序存儲于工作存儲器54中之后, 應(yīng)用程序就做好了運行的準(zhǔn)備。在圖33、 35和36中所示的層模型中, 工作存儲器54位于高于Java (TM)虛擬機(jī)38的一個層。但是,按 照這種方式描述工作存儲器54中的應(yīng)用程序管理器36和事件聽者管 理器39是為了易于理解。實際上,線程55a、 55b,…55n將應(yīng)用程 序管理器36和事件聽者管理器39作為實例執(zhí)行。
      線程55a、 55b,…55n是用于執(zhí)行存儲于工作存儲器54中的方 法的邏輯執(zhí)行體。線程55a、 55b,…55n將存儲于本地變量或操作數(shù) 堆棧中的變量作為操作數(shù)從而執(zhí)行計算,并且將計算結(jié)果存儲到這些 本地變量或操作數(shù)堆棧中。箭頭kyl、 ky2以及kyn象征性地指示了 從工作存儲器54向線程55a、 55b,…55n提供的方法。盡管物理執(zhí) 行體僅是一個CPU,但是Java (TM)虛擬機(jī)中最多可以提供64個 線程作為邏輯執(zhí)行體。只要邏輯執(zhí)行體的數(shù)量不超過64,那么就可 以生成新線程或刪除現(xiàn)有線程。在Java (TM)虛擬機(jī)38的工作期間 可以增加或降低工作線程的數(shù)量。因為在必要時可以增加線程的數(shù) 量,所以可以允許多個線程并行執(zhí)行一個實例,由此提高了該實例的 執(zhí)行速度。在圖37中,CPU24和線程之間具有"一對多"的關(guān)系。 但是,如果有多個CPU,那么這種關(guān)系可以為"多對多"。線程55a、 55b,…55n對這些方法的執(zhí)行是通過下述方式實現(xiàn)的將該方法所 包含的字節(jié)碼轉(zhuǎn)換為CPU 24的原生碼,并且將這些原生碼發(fā)送到 CPU 24。這里省略了對這種轉(zhuǎn)換為原生碼的描述,這是因為這樣就 偏離了本發(fā)明的主題。
      基于一對一的關(guān)系,與線程55a、 55b,…55n—致地提供了 Java (TM)堆棧56a、 56b,…56n,并且每個堆桟都具有一個程序計數(shù)器(圖37中的PC)和一個或多個幀。該"程序計數(shù)器"指示了當(dāng)前 執(zhí)行的實例的一個部分。該"幀"是一對一分配給對方法的調(diào)用的堆
      棧系統(tǒng)區(qū)域。每幀包含用于存儲在有過一次的調(diào)用中使用的參數(shù)的 "操作數(shù)堆桟";以及該被調(diào)用的方法使用的"局部變量堆棧(圖37 中的本地變量)"。因為每次執(zhí)行調(diào)用時就會使一幀進(jìn)入Java (TM) 堆棧56a、 56b,…56n,所以當(dāng)一個方法遞歸調(diào)用其自身時也會使一 幀進(jìn)入堆棧。當(dāng)調(diào)用一個JMF播放器實例播放方法時,或當(dāng)調(diào)用一 個JumpTitleAPI調(diào)用時,對應(yīng)于該調(diào)用的一幀會進(jìn)入Java (TM)堆 棧56a、 56b,…56n。作為參數(shù)存儲于這些幀的操作數(shù)堆棧中的信息 包含(i)播放方法將要播放的MPLS文件的文件名;(ii)指示 JumpTitle API調(diào)用的跳轉(zhuǎn)目的地的title—id等等。
      接下來將詳細(xì)描述應(yīng)用程序管理器36和它的組成部分PLMT處 理器41如何在上述的Java (TM)虛擬機(jī)38的內(nèi)部結(jié)構(gòu)中進(jìn)行工作。
      在模塊管理器34輸出一個請求激活一個由bobj—id標(biāo)識的BD-J 對象的事件(activatred[bobj—id])之后,應(yīng)用程序管理器36就將具有 該bobj一id的BD-J對象設(shè)置為當(dāng)前BD-J對象,其中該應(yīng)用程序管理 器36是工作存儲器54中的一個實例。然后,應(yīng)用程序管理器36對 轉(zhuǎn)移源標(biāo)題中的執(zhí)行狀態(tài)和當(dāng)前BD-J對象中應(yīng)用程序的運行屬性進(jìn) 行檢查,并且確定(i)要自動啟動的應(yīng)用程序以及(ii)要自動終止 的應(yīng)用程序。
      確定(i)要自動啟動的應(yīng)用程序是通過以下方式實現(xiàn)的在當(dāng) 前BD-J對象的應(yīng)用程序管理表中搜索在轉(zhuǎn)移源標(biāo)題中未運行但是在 當(dāng)前BD-J對象中具有自動運行屬性的應(yīng)用程序的apli—id—ref。如果 找到這樣的apli—id—ref,應(yīng)用程序管理器36就命令用戶類加載器52 讀取屬于由該aplijctref標(biāo)識的應(yīng)用程序的Java (TM)存檔文件的 類文件,這使得可以在工作存儲器54中生成對應(yīng)于該類文件的實例。 這使得其生存周期位于當(dāng)前標(biāo)題中的應(yīng)用程序做好了啟動的準(zhǔn)備。然 后,當(dāng)線程55a、 55b,…55n被引發(fā)執(zhí)行該應(yīng)用程序的方法時,該應(yīng) 用程序就會啟動。
      確定(ii)要自動終止的應(yīng)用程序是通過以下方式實現(xiàn)的在當(dāng)前BD-J對象的應(yīng)用程序管理表中搜索在轉(zhuǎn)移源標(biāo)題中運行但是在當(dāng) 前BD-J對象中并不具有生存周期的應(yīng)用程序的apli—id—ref。如果找 到這樣的apli—id_ref,應(yīng)用程序管理器36就終止具有apli—id—ref的應(yīng) 用程序所包含的xlet程序。這使得可以重新獲得以下這些資源(i) 工作存儲器54中原來被該應(yīng)用程序占據(jù)的一個區(qū)域,或者(iO Java (TM)堆棧56a、 56b, ■ , 56n中那些原來被用于執(zhí)行該應(yīng)用程序 的方法的幀。
      應(yīng)用程序管理器36的一個組成部分PLMT處理器41對轉(zhuǎn)移源 標(biāo)題中的播放狀態(tài)和當(dāng)前標(biāo)題中播放列表的播放屬性進(jìn)行檢查,并且 確定(i)要被自動播放的播放列表以及(ii)要被自動終止的播放列 表。
      確定(i)要自動播放的播放列表是通過以下方式實現(xiàn)的在播 放列表管理表中搜索在轉(zhuǎn)移源標(biāo)題中未播放但是在當(dāng)前標(biāo)題中具有 自動播放屬性的播放列表。如果找到這樣的播放列表,PLMT處理器 41就將要被播放的播放列表的PI—id—ref作為參數(shù)從而執(zhí)行用于播放 列表播放的功能調(diào)用。通過執(zhí)行該調(diào)用,可以在Java(TM)堆棧56a、 56b,…56n中生成具有存儲在操作數(shù)堆棧中的PI—id—ref的幀。并且 線程55a、 55b,…55n執(zhí)行用于播放列表的播放的功能調(diào)用。通過執(zhí) 行該功能調(diào)用,呈現(xiàn)引擎31開始對該播放列表進(jìn)行播放。
      確定(ii)要自動終止的播放列表是通過以下方式實現(xiàn)的在播 放列表管理表中搜索在轉(zhuǎn)移源標(biāo)題中播放但是并未寫入到當(dāng)前標(biāo)題 的播放列表管理表中的播放列表。如果找到這樣的播放列表,PLMT 處理器41就執(zhí)行一種用于停止播放該播放列表的功能調(diào)用,并且從 Java (TM)堆棧56a、 56b,…56n中刪除對應(yīng)于用于播放該播放列 表的功能調(diào)用的幀。
      應(yīng)用程序可以按照四種模式在工作存儲器54中終止。圖38顯示 了應(yīng)用程序終止的這四種模式。在第一種模式中,當(dāng)發(fā)生資源短缺并 且應(yīng)用程序管理器36發(fā)出一個終止事件時應(yīng)用程序終止(眾1)。在 第二種模式中,當(dāng)應(yīng)用程序通過應(yīng)用程序管理器36從另一個應(yīng)用程 序接收到一個終止事件時該應(yīng)用程序終止(眾2)。在第三種模式中,當(dāng)應(yīng)用程序管理表中寫入的生存周期結(jié)束并且應(yīng)用程序管理器36發(fā) 出一個終止事件時應(yīng)用程序終止(眾3)。在第四種模式中,當(dāng)應(yīng)用程 序自身激活終止處理時該應(yīng)用程序終止(眾4)。在這四種模式中的三 種中,由應(yīng)用程序管理器36終止該應(yīng)用程序。由此我們可以理解, 應(yīng)用程序管理器36在控制應(yīng)用程序的工作方面發(fā)揮了中心作用。如 果發(fā)出一個終止事件不會使應(yīng)用程序終止,那么應(yīng)用程序管理器36 可以強(qiáng)制性地終止該應(yīng)用程序從而重新獲得資源。這種可以強(qiáng)制性重 新獲得資源的權(quán)力是應(yīng)用程序管理器36的一個特性。 到目前為止,我們已經(jīng)對BD-J模塊35的組成部分進(jìn)行了描述。(流 程圖的描述)
      上述內(nèi)容只是對應(yīng)用程序管理器36進(jìn)行了概況性描述。圖39和 40中詳細(xì)顯示了應(yīng)用程序管理器36的處理。接下來將參考流程圖更 加詳細(xì)地描述應(yīng)用程序管理器36的處理步驟。
      圖39是顯示應(yīng)用程序管理器36的步驟的流程圖。圖39所示的 步驟包含一個主環(huán)路,而該主環(huán)路包含步驟S1、 S2、 S3和S4。在步 驟S1中,對是否發(fā)生了一個標(biāo)題跳轉(zhuǎn)進(jìn)行判斷。如果判斷出發(fā)生了 一個標(biāo)題跳轉(zhuǎn),那么應(yīng)用程序管理器36改變標(biāo)題(步驟S7),參考 轉(zhuǎn)移目的地標(biāo)題的應(yīng)用程序管理表,并且終止在轉(zhuǎn)移源標(biāo)題中運行但 并不存在于轉(zhuǎn)移目的地標(biāo)題中的應(yīng)用程序(步驟S8)。然后,應(yīng)用程 序管理器36參考轉(zhuǎn)移目的地標(biāo)題的播放列表管理表,并且終止正在 轉(zhuǎn)移源標(biāo)題中播放而并不存活于轉(zhuǎn)移目的地標(biāo)題中的播放列表(步驟 S9)。
      然后,應(yīng)用程序管理器36命令PLMT處理器41判斷是否有一 個在轉(zhuǎn)移源標(biāo)題中未播放而在轉(zhuǎn)移目的地標(biāo)題中具有自動播放屬性 的PL (步驟SIO)。如果判斷出有這樣一個PL,那么PLMT處理器 41就命令播放控制引擎32播放該自動播放PL (步驟Sll)。如果沒 有這樣的PL,那么就不播放自動播放PL。
      隨后的步驟包含步驟S12至S18,用于激活在轉(zhuǎn)移目的地標(biāo)題中 具有生存周期的應(yīng)用程序。在該工作步驟中,應(yīng)用程序管理器36命 令啟動一個自動運行應(yīng)用程序(步驟S14),并且如果該自動運行應(yīng)用程序成功地啟動(步驟S15中為"YES"),那么就將自動播放PL 的播放圖像轉(zhuǎn)換為四分之一 (1/4)(步驟S18)。
      如果步驟S15中判斷為"NO",那么就執(zhí)行包含S14至S17的環(huán) 路。該環(huán)路中的控制變量具有一個重新啟動計數(shù)器。該重新啟動計數(shù) 器定義了一個應(yīng)用程序重新啟動的次數(shù)。在步驟S12中對該重新啟動 計數(shù)器進(jìn)行重新設(shè)置,并且在步驟S16中判斷重新啟動計數(shù)器是否為 0。如果在歩驟S16中判斷出重新啟動計數(shù)器不是0,那么在步驟S17
      中就對該重新啟動計數(shù)器進(jìn)行減法操作。只要重新啟動計數(shù)器不是o,
      該自動運行應(yīng)用程序就在包含步驟S14到S17的環(huán)路處理中反復(fù)啟 動。這樣一種重復(fù)就確保了可以激活應(yīng)用程序。
      在步驟S2,判斷是否終止了一個主應(yīng)用程序。如果判斷出終止 了主應(yīng)用程序,那么控制就轉(zhuǎn)移到步驟S5并且判斷該主應(yīng)用程序是 否正常終止。如果判斷出主應(yīng)用程序異常終止,那么就執(zhí)行步驟S19 和S20。如果判斷出主應(yīng)用程序正常終止,那么控制就返回到包含步 驟S1到S4的主環(huán)路,而不執(zhí)行步驟S19和S20。
      在步驟S19,判斷是否正在播放一個自動播放PL。如果判斷出 正在播放一個自動播放PL,那么應(yīng)用程序管理器36就命令播放控制 引擎32將該自動播放PL的播放圖像轉(zhuǎn)換為全屏(步驟S20)。然后, 控制轉(zhuǎn)移到步驟S16。通過控制轉(zhuǎn)移到步驟S16,即使應(yīng)用程序異常 中斷,也可以執(zhí)行包含步驟S14至S17的環(huán)路處理。這使得應(yīng)用程序 可以反復(fù)啟動直到在步驟S12中設(shè)置的重新啟動計數(shù)器變?yōu)?。
      在步驟S4中,判斷在BD驅(qū)動器1中是否存在BD-ROM。如果 不存在BD-ROM,那么應(yīng)用程序管理器36就命令終止所有應(yīng)用程序 (步驟S6)。
      圖40顯示了播放列表管理表和應(yīng)用程序管理表的具體例子。在 圖40中,第一行顯示了一個標(biāo)題的播放圖像,第二行顯示了該標(biāo)題 的時間軸,第三行顯示了一個PL的播放的過程,并且第四行顯示了 一個應(yīng)用程序的執(zhí)行。第四行指示了當(dāng)標(biāo)題開始時應(yīng)用程序#1啟動, 并隨后在時刻tl進(jìn)入到操作狀態(tài)。另一方面,當(dāng)標(biāo)題開始時播放列 表#1啟動播放。因此,如第一行左手側(cè)所示,在應(yīng)用程序啟動延遲期間,即在標(biāo)題啟動之后和應(yīng)用程序進(jìn)入操作狀態(tài)之前的期間,以全 屏圖像顯示播放列表#1的播放圖像gjl。當(dāng)應(yīng)用程序#1在時刻tl進(jìn) 入操作狀態(tài)時,顯示一個合成圖像gj2,它包含作為子屏的PL的 播放圖像;以及作為母屏的應(yīng)用程序的執(zhí)行圖像。該例子中應(yīng)用程序 的執(zhí)行圖像是用于一種游戲的屏幕,其中安排有啟動按鈕、繼續(xù)按鈕
      以及電源指示器。另外,將該應(yīng)用程序的執(zhí)行圖像顯示為一個Java (Tm)應(yīng)用程序,執(zhí)行在互動圖像平面12上畫出一個圖像的處理。 為了執(zhí)行該畫圖處理,Java (TM)應(yīng)用程序需要畫圖庫和字符庫。 此后,只要同時進(jìn)行該應(yīng)用程序的執(zhí)行和該PL的播放,就顯示該母 一子屏。
      在該例子中,應(yīng)用程序#1隨后異常終止,并且應(yīng)用程序管理器 36在時刻t2探測到該異常終止。箭頭brl象征性地指示了該探測。 當(dāng)它發(fā)生時,應(yīng)用程序管理器36在步驟S20將PL的播放圖像轉(zhuǎn)換 為全屏。在圖40中,在時刻t3轉(zhuǎn)換為全屏。如第一行的右手側(cè)所示, 按照全屏圖像的方式顯示播放圖像gj3。
      如上所述,根據(jù)本實施例,通過將播放列表管理表中的播放屬性 設(shè)置為自動播放的這種安排,即使一個啟動了的Java (TM)應(yīng)用程 序需要花費5到10秒才能進(jìn)入到操作狀態(tài),在啟動期間在屏幕上也 有顯示。"屏幕上有顯示"的這種狀態(tài)緩解了開始執(zhí)行一個標(biāo)題時發(fā) 生的啟動延遲。
      另外,如果發(fā)生應(yīng)用程序啟動故障,或者如果應(yīng)用程序異常終止, 那么還會繼續(xù)播放在播放列表管理表中定義的播放列表,這也提供了 其中"屏幕上有顯示"的狀態(tài)。通過這種安排,可以避免裝置出現(xiàn)黑 屏這種最壞情況。這至少在一定程度上可以使裝置的制造商感到放 心。
      實施例2
      實施例2涉及一項改進(jìn),其中在編寫程序期間就定義了錯誤終止 的恢復(fù)處理。為了定義這樣一種恢復(fù)處理,在本實施例的記錄介質(zhì)中, 在一個BD-J對象中提供了一個錯誤管理表。圖41A顯示了該BD-J對象的內(nèi)部結(jié)構(gòu)。如圖41A中所示,該BD-J對象除了包含應(yīng)用程序 和播放列表管理表之外,還包含一個錯誤管理表(Error Management Table[bobj—id])。圖41B顯示了該錯誤管理表的內(nèi)部結(jié)構(gòu)。如圖41B 中所示,該錯誤管理表包含數(shù)量由Number—of—recovery指示的多條恢 復(fù)信息(recovery ())。圖41B中的虛線"eml"指示了由標(biāo)識符
      "recovery—id"標(biāo)識的一條給定的恢復(fù)信息的內(nèi)部結(jié)構(gòu)的局部放大 圖。由虛線"eml"指示的該條給定恢復(fù)信息包含參照值
      "Apli—id—ref",它唯一地標(biāo)識了對應(yīng)于該條恢復(fù)信息的應(yīng)用程序的 標(biāo)識符;以及五個標(biāo)記 "Restart—Application—flag "、
      "Continuous—Playback—flag " 、 " Select—Title—flag "、
      "Notify_Event—flag"以及"Reboot—flag"。圖42顯示了這五個標(biāo)記 的含義。接下來將描述錯誤管理表中這五個標(biāo)記的含義。
      當(dāng)將"Restart—Application—flag"設(shè)置為0時,它指示了當(dāng)一個應(yīng) 用程序異常終止時,該應(yīng)用程序并不重新啟動,并且當(dāng)將它設(shè)置為除
      "0"之外的整數(shù)"n"時,它指示了重復(fù)n次進(jìn)行重新啟動。該標(biāo)記 的缺省值為"0"。
      當(dāng)將"Continuous—Playback—flag"設(shè)置為"0"時,它指示了當(dāng) 應(yīng)用程序異常終止時并不繼續(xù)播放列表的播放,并且當(dāng)將它設(shè)置為
      "1"時,它指示了當(dāng)應(yīng)用程序異常終止時繼續(xù)播放列表的播放,而 當(dāng)將它設(shè)置為"2"時,它指示了當(dāng)應(yīng)用程序異常終止時繼續(xù)播放列 表的播放并且這種播放是按照全屏圖像和正常速度進(jìn)行的。該標(biāo)記的 缺省值為"0"。
      當(dāng)將"Select—Title—flag"設(shè)置為"0"時,它指示了當(dāng)應(yīng)用程序 異常終止時在標(biāo)題之間不發(fā)生轉(zhuǎn)移,并且當(dāng)將它設(shè)置為除"0"之外 的整數(shù)"n"時,它指示了當(dāng)前標(biāo)題跳轉(zhuǎn)到以"n"作為其標(biāo)題號的標(biāo) 題。該標(biāo)記的缺省值為"0"。
      當(dāng)將"Notify—Event—flag"設(shè)置為"0"時,它指示了當(dāng)應(yīng)用程序 異常終止時不輸出事件,并且當(dāng)將它設(shè)置為除"0"之外的整數(shù)"n" 時,它指示了輸出事件序號為"n"的事件。該標(biāo)記的缺省值為"1"。
      當(dāng)將"Reboot—flag"設(shè)置為"0"時,它指示了當(dāng)應(yīng)用程序異常終止時并不執(zhí)行播放裝置的引導(dǎo)程序,并且當(dāng)將它設(shè)置為"1"時, 它指示了執(zhí)行播放裝置的弓I導(dǎo)程序。
      可以在編寫程序期間通過上述標(biāo)記提前定義當(dāng)應(yīng)用程序異常終 止時需要執(zhí)行的恢復(fù)處理?,F(xiàn)在,給出了錯誤管理表的說明的一個具
      體例子。圖43A顯示了兩個標(biāo)題(標(biāo)題#1、標(biāo)題#2),并且其中寫入 了錯誤管理表。在標(biāo)題#1的應(yīng)用程序管理表中,將應(yīng)用程序#1寫為 一種AutoRun (自動運行)應(yīng)用程序。并且在標(biāo)題#1的錯誤管理表 中,寫入了當(dāng)應(yīng)用程序#1異常終止時需要用到的一條恢復(fù)信息。在 標(biāo)題#1的播放列表管理表中,將播放列表#1寫為一種AutoPky (自 動播放)播放列表。
      在標(biāo)題#2的應(yīng)用程序管理表中,將應(yīng)用程序#2寫為一種AutoRun 應(yīng)用程序。并且在標(biāo)題#2的錯誤管理表中,寫入了應(yīng)用程序#2的一 條恢復(fù)信息。
      圖43B顯示了根據(jù)圖43A中所示應(yīng)用程序和錯誤管理表從而執(zhí) 行的 一個應(yīng)用程序的執(zhí)行進(jìn)度和 一個播放列表的播放進(jìn)度。因為應(yīng)用 程序#1的恢復(fù)信息指示了 Continuous—Playback—flag二2,所以當(dāng)應(yīng)用 程序#1異常終止時播放列表繼續(xù)播放,并且該播放是按照全屏圖像 和正常速度進(jìn)行的。
      另一方面,應(yīng)用程序#2的恢復(fù)信息指示Notify—Event—flag=2, 所以當(dāng)應(yīng)用程序#2異常終止時輸出序號為"2"的事件。
      使用這樣的恢復(fù)信息描述,可以為每個標(biāo)題和每個應(yīng)用程序定義 應(yīng)用程序異常終止時需要執(zhí)行的處理。
      通過向BD-J對象中加入錯誤管理表,本實施例的應(yīng)用程序管理 器36根據(jù)圖44和45中所示的流程圖執(zhí)行處理。圖44是顯示了實施 例2中應(yīng)用程序管理器36的工作步驟的流程圖。與圖39中的情況相 同,該流程圖包含了一個主環(huán)路,而該主環(huán)路包含步驟Sl、 S2、 S3 以及S4。當(dāng)在主環(huán)路中選擇了一個標(biāo)題時,就執(zhí)行步驟S21至S27 的過程。
      在步驟S21,應(yīng)用程序管理器36使PLMT處理器41判斷在轉(zhuǎn)移 目的地標(biāo)題中是否有播放列表管理表。如果在轉(zhuǎn)移目的地標(biāo)題中存在播放列表管理表,那么應(yīng)用程序管理器36就使播放控制引擎32啟動 在轉(zhuǎn)移源標(biāo)題中并未播放但是在轉(zhuǎn)移目的地中具有AutoPlay屬性的 一個PL的播放(步驟S22),并且然后判斷該播放是否成功(步驟 S23)。如果在步驟S23中判斷出該播放是成功的,那么執(zhí)行步驟S25 到S28的過程。如果在步驟S23中判斷出該播放并不成功,那么控制 就轉(zhuǎn)移到圖45中所示的流程圖。
      如果在轉(zhuǎn)移目的地標(biāo)題中沒有播放列表管理表,那么應(yīng)用程序管 理器36就使播放控制引擎32停止在轉(zhuǎn)移源標(biāo)題中正在播放的一個 PL的播放(步驟S24),并且執(zhí)行步驟S25到S28的處理。
      在步驟S25,判斷在轉(zhuǎn)移目的地標(biāo)題中是否有應(yīng)用程序管理表。 如果在轉(zhuǎn)移目的地標(biāo)題中有應(yīng)用程序管理表,那么應(yīng)用程序管理器 36就啟動轉(zhuǎn)移目的地標(biāo)題中的AutoRun應(yīng)用程序(步驟S26),并且 在步驟S27,判斷該應(yīng)用程序是否成功地啟動,如果在步驟S27中判 斷出應(yīng)用程序成功地啟動,那么控制就返回到包含步驟Sl到S4的環(huán) 路。如果判斷在步驟S27中應(yīng)用程序未成功啟動,那么控制就轉(zhuǎn)移到 圖45中所示的流程圖。
      圖45的流程圖顯示了當(dāng)一個應(yīng)用程序異常終止時執(zhí)行的工作步 驟。在歩驟S30中,判斷發(fā)生異常終止的該應(yīng)用程序所屬的標(biāo)題中是 否有錯誤管理表。如果在步驟S30中判斷出該標(biāo)題中沒有錯誤管理 表,那么控制就返回到包含步驟S1到S4的環(huán)路。
      如果在步驟S30中判斷出該標(biāo)題中有錯誤管理表,那么控制就轉(zhuǎn) 移到步驟S44然后返回到包含步驟Sl到S4的環(huán)路。在步驟S31,判 斷錯誤管理表中的Restart一Application—flag是否為"0"。如果判斷出 錯誤管理表中的RestarLApplication一flag不為"0",那么執(zhí)行包含步 驟S40到S44的環(huán)路處理。在該環(huán)路處理中,將重新啟動計數(shù)器設(shè)置 為寫入到Restart—Application—flag的值"n"(步驟S40),并且然后執(zhí) 行包含步驟S41到S44的環(huán)路。該環(huán)路處理中的控制變量是該重新啟 動計數(shù)器。當(dāng)應(yīng)用程序成功啟動(步驟S44中為"Yes")并且重新啟 動計數(shù)器變?yōu)?0"時(步驟S41中為"Yes"),該環(huán)路處理結(jié)束。在 該環(huán)路處理中,只要在步驟S41或S44中判斷出為"No",那么就重復(fù)對該重新啟動計數(shù)器進(jìn)行減法操作(步驟S42)并且重復(fù)啟動該 AutoRim應(yīng)用程序。通過這種重復(fù),可以重新啟動異常終止的應(yīng)用程 序。如果判斷出Restart—Application—flag是"0",那么就執(zhí)行步驟S32。
      在步驟S32,判斷Continuous—Playback—flag是"0"、" 1 "還是"2"。 如果判斷出Continuous—Playback—flag是"2",那么就按照全屏方式 顯示AutoPlay PL的播放圖像(步驟S33),并且控制返回到包含步驟 SI到S4的主環(huán)路。
      如果判斷出Continuous—Playback—flag是"1",那么就按照四分 之一屏幕的方式繼續(xù)AutoPlay PL的播放圖像(步驟S34),并且控制 返回到包含步驟SI到S4的主環(huán)路。
      如果判斷出Continuous—Playback—flag是"0",那么控制就轉(zhuǎn)移 到步驟S35。
      在歩驟S35,判斷錯誤管理表中select—title—flag是否不為"0"。 如果判斷出sdectjitle—flag為"0",那么控制轉(zhuǎn)移到步驟S37。如果 判斷出select—title—flag不為"0",那么就將轉(zhuǎn)移目的地標(biāo)題設(shè)置為寫 在select—title—flag中的值"n"(步驟S36),并且控制轉(zhuǎn)移到如圖44 中所示的步驟S37,
      在步驟S37,判斷錯誤管理表中Notify_Event_flag是否不為"O"。 如果判斷出Notify一Event—flag為"0",那么控制轉(zhuǎn)移到步驟S39。如 果判斷出Notify—Event—flag不為"O",那么就生成由Notify_Event_flag 的值"n"標(biāo)識的事件"n"(步驟S38),并且控制轉(zhuǎn)移到包含步驟SI 到S4的主環(huán)路,如圖44中所示。在步驟S39,判斷判斷錯誤管理表 中Boot—flag是否不為"0"。如果判斷出Boo^flag為"0",那么控制 轉(zhuǎn)移到包含步驟SI到S4的主環(huán)路。如果判斷出Boot—flag不為"0", 那么控制就轉(zhuǎn)移到圖44的開始處,并且執(zhí)行播放裝置的引導(dǎo)程序。
      如上所述,根據(jù)本實施例,可以由程序編寫者而不是裝置制造者 定義當(dāng)應(yīng)用程序異常終止時播放裝置應(yīng)該如何執(zhí)行操作。
      這里應(yīng)該注意到,可以將這樣一個程序嵌入到播放裝置中在播 放一個不具有錯誤管理表的標(biāo)題期間,當(dāng)一個應(yīng)用程序異常終止時, 該程序就執(zhí)行一種恢復(fù)處理。另外,在標(biāo)題跳轉(zhuǎn)API中可以提供指定Restart_Application—Flag 至Reboot_Flag中任何一個的參數(shù),從而應(yīng)用程序管理器36可以執(zhí) 行對應(yīng)于在標(biāo)題跳轉(zhuǎn)API中提供的參數(shù)的恢復(fù)處理。
      實施例3
      在實施例1中我們描述過了,可以將BD-J對象中的播放列表管 理表用于定義Java (TM)虛擬機(jī)中PL的播放。本實施例則將重點 放在通過應(yīng)用程序的JMF方法的PL的播放。這樣做所帶來的一個問 題是播放列表管理表。也就是說,因為在播放列表管理表中已經(jīng)描述 了是否可以播放一個PL,所以在某些標(biāo)題中可以播放該PL,而在另 外一些標(biāo)題中則不能播放該PL。另外,還有這樣一種情況,其中從 版權(quán)保護(hù)的角度出發(fā),我們希望禁止某種特定的應(yīng)用程序?qū)σ粋€PL 進(jìn)行播放,盡管我們已經(jīng)將該PL定義為可以播放。為了實現(xiàn)這種對 PL的播放的限制,在實施例3中,許可控制器42和應(yīng)用程序管理器 36執(zhí)行以下處理。
      如果一個應(yīng)用程序請求播放一個PL,那么許可控制器42就執(zhí)行 與該應(yīng)用程序的互相認(rèn)證,并且判斷請求播放該PL的應(yīng)用程序是否 被授權(quán)播放該PL。如果該應(yīng)用程序被授權(quán)播放該PL,那么許可控制 器42就請求控制機(jī)32播放該PL。如果未授權(quán)該應(yīng)用程序播放該PL, 那么許可控制器42就向請求PL播放的應(yīng)用程序輸出一個響應(yīng)事件, 該事件指示了請求未被許可。通過這種由許可控制器42判斷是否許 可應(yīng)用程序發(fā)出的播放PL的請求,如果發(fā)行人所發(fā)行的PL被請求 用另一個發(fā)行人所發(fā)行的應(yīng)用程序播放,那么該請求就可能會被拒 絕。這使得不能使用非授權(quán)的應(yīng)用程序播放一個PL。許可控制器42 所做出的判斷是基于允許播放的PL和應(yīng)用程序的組合以及不允許播 放的PL和應(yīng)用程序的組合,并且在記錄于BD-ROM中的許可文件 中定義了這些組合。這里省略了對這樣一種文件的詳細(xì)描述,因為它 偏離了本申請的主題。
      在實施例3中,應(yīng)用程序管理器36響應(yīng)于一個應(yīng)用程序發(fā)出的 請求,通知可以在當(dāng)前播放時間點播放的一個PL。圖46是一個流程圖,它顯示了應(yīng)用程序管理器36所做出的這種通知的步驟。在該流 程圖中,在一個應(yīng)用程序啟動期間,對該應(yīng)用程序是否發(fā)出了通知一 個可播放PL的請求(GetPL)進(jìn)行監(jiān)視(步驟S45)。如果判斷出該 應(yīng)用程序發(fā)出了這樣一種請求,那么繼續(xù)判斷在當(dāng)前播放點所屬的標(biāo) 題所包含的BD-J對象中是否存在播放列表管理表(步驟S46)。如果 在該播放列表管理表中寫入了一個PL,那么就將寫入到播放列表管 理表中的該PL作為可播放PL通知給請求播放的該應(yīng)用程序(步驟 S47)。
      如果在播放列表管理表中未寫入一個PL,那么就向請求播放的 該應(yīng)用程序發(fā)送一條PL的播放不可用的通知(步驟S48)。到目前為 止,已經(jīng)描述了實施例3中應(yīng)用程序管理器36所執(zhí)行的步驟。
      接下來將描述當(dāng)請求一個PL的播放時應(yīng)用程序管理器36所執(zhí) 行的步驟。在實施例3中,應(yīng)用程序管理器36根據(jù)圖47所示流程圖 執(zhí)行處理。
      在圖47中,應(yīng)用程序管理器36判斷是否有一個應(yīng)用程序請求對 一個PL的播放(步驟S51 )。如果有請求一個PL的播放的應(yīng)用程序, 那么應(yīng)用程序管理器36就使得許可控制器42執(zhí)行一種認(rèn)證,從而判 斷請求該播放的應(yīng)用程序是否被授權(quán)播放該PL (步驟S52)。如果該 應(yīng)用程序被授權(quán)播放該PL,那么應(yīng)用程序管理器36就命令播放控制 引擎32啟動該播放(步驟S53),并且等待由播放控制引擎32發(fā)出 的指示成功的響應(yīng)(步驟S54)。
      當(dāng)接收到這樣一種播放請求時,播放控制引擎32檢查播放列表 信息的真實性。該檢査包含檢查其中存儲有播放列表信息、剪輯信 息以及AV剪輯的BD-ROM和本地存儲器18是否構(gòu)成一個適當(dāng)?shù)牟?放列表;以及由播放列表信息中dip_Information—file—name指定的該 剪輯信息和AV剪輯是否存儲于BD-ROM和本地存儲器18上。在其 中clip_Information—file一name并未指向一個適當(dāng)文件的情況下,或者 在其中包含BD-ROM和本地存儲器18的虛擬包中存在矛盾并且無法 構(gòu)建一個適當(dāng)?shù)牟シ帕斜淼那闆r下,播放控制引擎32會返回一個指 示"錯誤"的響應(yīng)。如果在上述工作步驟之后返回一個"成功"響應(yīng),那么就向請求
      播放的應(yīng)用程序發(fā)出一個指示播放PL成功的事件(步驟S55)。如果 并未返回一個"成功"響應(yīng),那么就向請求播放的應(yīng)用程序發(fā)出一個 指示播放PL失敗的事件(步驟S56)。另一方面,如果在步驟S52判 斷出請求播放的應(yīng)用程序未被授權(quán)播放該PL,那么就向請求播放的 應(yīng)用程序發(fā)出一個指示無法播放PL的事件(步驟S57)。
      如上所述,本實施例使得如果對每個標(biāo)題都定義了是否可以播放 一個播放列表,并且如果某些應(yīng)用程序被授權(quán)可以播放一個播放列 表,而其它應(yīng)用程序不具有這種授權(quán),那么就可以響應(yīng)于一個應(yīng)用程 序發(fā)出的請求從而適當(dāng)?shù)貓?zhí)行一個播放列表的播放。這使得可以通過 組合應(yīng)用程序的執(zhí)行和播放列表的播放來提供多種內(nèi)容表示。
      實施例4
      在實施例1中我們描述過,通過使我們期望播放的播放列表附加 有播放屬性"AutoPlay",可以命令播放裝置在啟動標(biāo)題時播放該 AutoPlayPL。但是,本實施例涉及一種改進(jìn),其中在BD-ROM中記 錄了一種無邊界應(yīng)用程序,并且當(dāng)標(biāo)題啟動時,使得該無邊界應(yīng)用程 序選擇要自動啟動的標(biāo)題。
      無邊界應(yīng)用程序是這樣一種應(yīng)用程序它與播放裝置中的常駐應(yīng) 用程序(例如播放控制引擎32)相同,并且響應(yīng)于該播放控制引擎 32發(fā)出的請求從而執(zhí)行一個處理,該處理是從寫在播放列表管理表 中的多條播放列表信息中選擇一條與播放裝置側(cè)的PSR設(shè)置值相匹 配的播放列表信息,并且通知該條被選中的播放列表信息。
      為了使無邊界應(yīng)用程序選擇一個PL,將播放列表管理表中的關(guān) 于請求這樣一個選擇的標(biāo)題的所有播放屬性都設(shè)置為"未指定"。這 是因為將"所有屬性未指定"用作一種觸發(fā)事件,使得播放控制引擎 32請求該無邊界應(yīng)用程序選擇一個PL。
      無邊界應(yīng)用程序所進(jìn)行的選擇是基于在編寫程序期間所定義的 選擇算法。圖48A到48C通過表的形式顯示了嵌入到無邊界應(yīng)用程 序中的選擇算法的內(nèi)容。該表指示了對應(yīng)于PL的PSR值的范圍,當(dāng)PSR具有該值時,該PL將被播放。在這些圖中,圖48A顯示了基于 母級別的選擇算法的內(nèi)容。在該播放裝置中母級別被設(shè)置為PSR (13)。更具體地說,將指示用戶年齡的一個整數(shù)設(shè)置在PSR (13) 中,并且播放裝置將該整數(shù)視為母級別。在圖48A中,PSR (13)的
      值可以分為三個范圍小于14;大于等于14并且小于18;以及大于
      等于18。另外,為這些范圍中的每種都指示了一個要被播放的播放 列表。因此,基于這樣一種選擇算法,如果PSR設(shè)置值小于14,那 么無邊界應(yīng)用程序就選擇播放列表#1;如果PSR設(shè)置值大于等于14 并且小于18,那么無邊界應(yīng)用程序就選擇播放列表#2;并且如果PSR 設(shè)置值大于等于18,那么無邊界應(yīng)用程序就選擇播放列表#3。
      圖48B顯示了基于音頻語言的選擇算法的內(nèi)容。在播放裝置中 將音頻語言設(shè)置到PSR (16)。更具體地說,將一個整數(shù)設(shè)置在PSR (16)中,并且播放裝置認(rèn)為該整數(shù)指定了用于音頻播放的語言。在 圖48B中,PSR(16)的值可以分為三種范圍英語;日語;以及其 它。另外,為這些范圍中的每種都指示了一個要被播放的播放列表。 因此,基于這樣一種選擇算法,如果PSR (16)設(shè)置值指示英語,那 么無邊界應(yīng)用程序就選擇播放列表#1;如果PSR (16)設(shè)置值指示日 語,那么無邊界應(yīng)用程序就選擇播放列表#2;并且如果PSR(16)設(shè) 置值指示除英語和日語之外的其它語言,那么無邊界應(yīng)用程序就選擇 播放列表#3。
      圖48C顯示了基于用于視頻的播放器配置的選擇算法的內(nèi)容。 在播放裝置中將用于視頻的播放器配置設(shè)置到PSR (14)。更具體地 說,將一個整數(shù)設(shè)置在PSR (14)中,并且播放裝置認(rèn)為該整數(shù)指定 了用于視頻播放的環(huán)境。在圖48C中,PSR(14)的值可以分為三種 范圍分辨率525x600的電視系統(tǒng)信箱;分辨率525x600的電視系 統(tǒng);以及分辨率1920 x 1080的電視系統(tǒng)。另外,為這些范圍中的每 種都指示了一個要被播放的播放列表。因此,基于這樣一種選擇算法, 如果PSR(14)設(shè)置值指示分辨率525 x 600的電視系統(tǒng)信箱,那么 無邊界應(yīng)用程序就選擇播放列表#1;如果PSR(14)設(shè)置值指示分辨 率525 x 600的電視系統(tǒng),那么無邊界應(yīng)用程序就選擇播放列表#2;并且如果PSR (14)設(shè)置值指示分辨率1920 x 1080的電視系統(tǒng),那 么無邊界應(yīng)用程序就選擇播放列表#3。通過使用一種計算機(jī)描述語言 描述如圖48A到48C所示的條件轉(zhuǎn)移就可以生成如圖48A到48C所 示的選擇算法。
      到目前為止,已經(jīng)描述了本實施例中記錄介質(zhì)的一種改進(jìn)。接下 來將描述本實施例中播放裝置的一種改進(jìn)。該改進(jìn)主要包含對應(yīng)用程 序管理器36和播放控制引擎32的改進(jìn)。
      當(dāng)標(biāo)題之間發(fā)生轉(zhuǎn)移時,應(yīng)用程序管理器36參考播放列表管理 表并且判斷在該播放列表管理表中是否存在AutoRim PL。如果沒有 AutoRim PL,那么應(yīng)用程序管理器36就將該播放列表管理表轉(zhuǎn)移到 播放控制引擎32中,并且請求播放控制引擎32自動播放寫在該播放 列表管理表中的一個PL。
      當(dāng)播放控制引擎32接收到播放列表管理表時,它會請求無邊界 應(yīng)用程序選擇PL。當(dāng)播放控制引擎32從無邊界應(yīng)用程序接收到該無 邊界應(yīng)用程序響應(yīng)于該請求從而發(fā)送的可播放PL的列表時,它判斷 在該表中所列出的PL中是否有一個寫在從播放項轉(zhuǎn)移而來的播放列 表管理表中的PL。并且如果在這些由無邊界應(yīng)用程序選擇的PL中有 一個寫在播放列表管理表中的PL,那么播放控制引擎32就自動播放 該PL。
      圖49顯示了標(biāo)題無邊界應(yīng)用程序選擇PL的過程。在圖49的左 手側(cè),顯示了播放裝置中軟件的層結(jié)構(gòu)。在圖49的右手側(cè),顯示了 BD-ROM的內(nèi)容。在圖49中,符號 1、 2、 3、 4分別代表以 下內(nèi)容應(yīng)用程序管理器36發(fā)出的在播放列表管理表中沒有自動播 放的通知( 1);播放控制引擎32發(fā)出的指示可播放PL的請求(◎ 2);標(biāo)題無邊界應(yīng)用程序?qū)SR設(shè)置值的獲取( 3);以及標(biāo)題無 邊界應(yīng)用程序向播放控制引擎32發(fā)出的關(guān)于可播放PL的通知(◎ 4)。
      這里在圖49中應(yīng)該注意到,出于方便的考慮將標(biāo)題無邊界應(yīng)用 程序?qū)懙紹D-ROM上。因為標(biāo)題無邊界應(yīng)用程序是一種Java (TM) 應(yīng)用程序,所以更接近于實際情況的描述是標(biāo)題無邊界應(yīng)用程序是一種由Java (TM)虛擬機(jī)38的工作存儲器54中線程55執(zhí)行的一種 實例。
      根據(jù)上述的本實施例,使得位于標(biāo)題邊界處的一個應(yīng)用程序做出 上述判斷。這使得播放裝置中的播放控制引擎32在啟動一個標(biāo)題后 的較早階段就可以從記錄于BD-ROM上的眾多PL中識別這樣一個 PL:它滿足播放裝置中設(shè)置的條件。這使得即使不預(yù)先確定具有 "AutoPlay"播放屬性的應(yīng)用程序,也可以在該標(biāo)題的起始處確定一 個要被播放的PL。即使在BD-J模式中也可以實現(xiàn)例如語言信用和母 鎖定的播放控制。
      這里應(yīng)該注意到,盡管在本實施例中選擇算法將PSR值和播放 列表聯(lián)系在一起,但是還可以預(yù)先定義當(dāng)播放裝置中的PSR設(shè)置值 超出假定范圍時要被播放的播放列表。
      實施例5
      在實施例4中,標(biāo)題無邊界應(yīng)用程序具有一種用于根據(jù)PSR設(shè) 置值選擇要被播放的PL的選擇算法。本實施例涉及一種改進(jìn),其中 當(dāng)一個PL具有多角度周期時,使得標(biāo)題無邊界應(yīng)用程序可以從該多 角度周期包含的多個角度中選擇一個角度。本實施例中的標(biāo)題無邊界 應(yīng)用程序?qū)⒍鄠€PSR值范圍與要被播放的角度聯(lián)系到了一起。在本 實施例中,如果當(dāng)前播放時間點位于一個多角度周期中,那么播放控 制引擎32就請求標(biāo)題無邊界應(yīng)用程序選擇一個要被播放的角度。當(dāng) 標(biāo)題無邊界應(yīng)用程序接收到這樣一個請求時,它就獲得當(dāng)前所設(shè)置的 PSR值,執(zhí)行一種選擇算法,并且選擇對應(yīng)于所獲得的設(shè)置值的一個 角度。標(biāo)題無邊界應(yīng)用程序向播放控制引擎32通知選擇的結(jié)果,從 而播放控制引擎32播放該選擇的角度。
      如上所述,根據(jù)本實施例,負(fù)責(zé)編寫程序的人可以定義一種用于 根據(jù)PSR值選擇角度的算法。這使得負(fù)責(zé)編寫程序的人可以使用多 種角度寫出多種應(yīng)用程序。
      實施例6實施例6涉及實現(xiàn)BD-J模式中PL的播放的同步的一種改進(jìn)。 當(dāng)調(diào)用PlayPLAPI函數(shù)時,播放控制引擎32根據(jù)PL信息執(zhí)行工作 步驟。如果PL具有兩個小時的播放周期,那么上述的工作步驟在這 兩個小時內(nèi)就會一直持續(xù)。這樣所引發(fā)的一個問題是,在Java(TM) 虛擬機(jī)38返回一個響應(yīng)"成功"的時刻和播放控制引擎32實際上結(jié) 束該過程的時刻之間存在一段間隙。在一個調(diào)用之后,主要用于執(zhí)行 事件驅(qū)動過程的Java (TM)虛擬機(jī)38立即就返回一個指示成功或失 敗的響應(yīng)。但是,因為播放控制引擎32實際上在兩個小時之后才結(jié) 束處理,所以并不能通過一個調(diào)用之后立即就被返回的響應(yīng)"成功" 確認(rèn)該處理的結(jié)束。如果在PL播放期間執(zhí)行了快進(jìn)、后退或跳讀, 那么該周期就會從兩個小時變?yōu)樾∮诨蚨嘤趦蓚€小時。當(dāng)出現(xiàn)上述情 況時,就更加難以識別處理的結(jié)束。
      播放控制引擎32獨立于應(yīng)用程序進(jìn)行工作。因此,應(yīng)用程序管 理器36不能準(zhǔn)確地確定PL播放結(jié)束的時亥U。所以,在本實施例中, 無論應(yīng)用程序是否終止,只要在工作存儲器中有一個JMF播放器實 例,也就是說只要BD-J模塊35被授權(quán)對呈現(xiàn)引擎31進(jìn)行控制,那 么就會一直等待由播放控制引擎32發(fā)出的通知事件。如果從播放控 制引擎32接收到了一個通知事件,那么就可以確定標(biāo)題已經(jīng)終止, 并且命令模塊管理器34轉(zhuǎn)移跳轉(zhuǎn)到下一個標(biāo)題。通過這樣一種安排, 可以將播放控制引擎32結(jié)束一個PL播放的時刻視為標(biāo)題終止的時 刻。
      接下來將參考圖50到54中所示流程圖,具體描述播放控制引擎 32所執(zhí)行的控制工作歩驟。
      圖50是一個流程圖,顯示了播放控制引擎32所執(zhí)行的PL播放 的步驟。該播放步驟主要包含對呈現(xiàn)引擎31的控制(步驟S106)和 對BD-ROM驅(qū)動器1或本地存儲器18的控制(步驟S108)。在該流 程圖中,將處理目標(biāo)播放項指示為播放項弁x。在該流程圖中,首先讀 取當(dāng)前PL信息(.mpls)(步驟SlOl),并且執(zhí)行步驟S102到S110 的過程。步驟S102到S110組成了一種環(huán)路處理,其中對于當(dāng)前PL 信息所包含的每條PI信息都重復(fù)執(zhí)行步驟S103到SllO,直到在步驟S109中判斷為"YES"。在該環(huán)路處理中,將處理目標(biāo)播放項指示 為播放項弁x(P說x)。如果當(dāng)前PL的起始處的播放項設(shè)置為播放項存x, 那么就對該播放項fe進(jìn)行初始化(步驟S102)。對于上述環(huán)路處理來 說,結(jié)束的條件是判斷出播放項^是當(dāng)前PL中的最后播放項(步驟 S109)。如果播放項&不是當(dāng)前PL中的最后播放項,那么就將當(dāng)前 PL中的下一個播放項設(shè)置為播放項弁x (步驟SllO)。
      步驟S103到S110按照如下方式在環(huán)路處理中重復(fù)執(zhí)行。將播放 項弁x的Clip—information—file—name指定的剪輯信息讀入到腳本存儲 器25中(步驟S103)。使用當(dāng)前剪輯信息的EPmap將播放項^x的 In_time轉(zhuǎn)換為一個I圖像地址"u"(步驟S104)。使用當(dāng)前剪輯信息 的EPmap將播放項弁x的Out—time轉(zhuǎn)換為一個I圖像地址"v"(步驟
      5105) 。將I圖像地址"v"的下一個I圖像地址減1,并將得到的結(jié) 果地址設(shè)置為地址"W"(步驟S107)。命令BD-ROM驅(qū)動器1或本 地存儲器從I圖像地址"u"到地址"W"的位置處讀取TS包(步驟 S108)。
      另一方面,命令呈現(xiàn)引擎31輸出數(shù)據(jù),并且這些數(shù)據(jù)的范圍是 從當(dāng)前PLMark的mark—time_stamp到播放項弁x的Out—time (步驟
      5106) 。通過執(zhí)行步驟S105到S108,可以播放由播放項弁x指定的一 部分AV剪輯。
      在此之后,判斷該播放項弁x是否為當(dāng)前PL中的最后播放項(步 驟S109)。
      如果判斷出播放項弁x不是當(dāng)前PL中的最后播放項,那么就將當(dāng) 前PL中的下一個播放項設(shè)置為播放項弁x (步驟S110),并且控制返 回到步驟S103。重復(fù)上述步驟S103到S110從而按順序播放該PL包 含的播放項。
      圖51是一個流程圖,顯示了角度改變步驟和用于向回跳讀/向下 跳讀的步驟。該流程圖與圖50中所示的步驟并行執(zhí)行,并且重復(fù)執(zhí) 行包含步驟Slll到S112的環(huán)路處理。在該環(huán)路的步驟Slll中,判 斷從Java (TM)虛擬機(jī)38中是否發(fā)出了一個請求角度改變的API。 并且如果判斷出發(fā)出了請求角度改變的API,那么就將當(dāng)前剪輯信息變?yōu)榱硗庖粋€。
      在圖51的步驟S115中,判斷播放項弁x的is一multi一angles是否為 "ON"。該is一multi一angles是一種指示播放項^x是否對多角度做好了 準(zhǔn)備的標(biāo)記。如果在步驟S115中判斷為"N0",那么控制就轉(zhuǎn)移到 步驟S113。如果在步驟S115中判斷為"YES",那么就執(zhí)行步驟S116 到S119。步驟S116到S119是按照以下方式執(zhí)行的。用變量"y"代 替角度改變之后的角度號(步驟S116)。將播放項^中第"y"個 Clip_information—file_name指定的 一 條剪輯信息讀取到腳本存儲器 21 (步驟S117)。使用當(dāng)前剪輯信息的EP—map將當(dāng)前PTM轉(zhuǎn)換為 —個I圖像地址"u"(步驟S118)。使用當(dāng)前剪輯信息的EP_map將 播放項^的Out—time轉(zhuǎn)換為I圖像地址"v"(步驟S119)。在如上面 所述改變I圖像地址"u"和"v"之后,就停止與本處理同時執(zhí)行的 圖50中所示處理,然后控制轉(zhuǎn)移到步驟S106。通過轉(zhuǎn)移到步驟S106, 從另一個AV剪輯讀取TS包,.并且改變了視頻內(nèi)容。
      另一方面,在圖51的環(huán)路中的步驟S112中,判斷從Java(TM) 虛擬機(jī)38中是否調(diào)用了一個向回跳讀/向下跳讀API。并且如果判斷 出調(diào)用了向回跳讀/向下跳讀API,那么就執(zhí)行圖52的流程圖中所示 的步驟。圖52是一個流程圖,顯示了當(dāng)判斷出發(fā)出了向回跳讀/向下 跳讀API時執(zhí)行的步驟。可以按照多種方式實現(xiàn)用于執(zhí)行向回跳讀或 向下跳讀的步驟。因此,應(yīng)該注意到這里僅描述了一個這樣的例子。
      在歩驟S121 ,通過對PSR指示的當(dāng)前PI號和當(dāng)前PTM進(jìn)行轉(zhuǎn) 換從而獲得當(dāng)前標(biāo)記信息。在步驟S122,判斷按下的鍵是否為向下 跳讀或是向回跳讀。如果按下的是向下跳讀,那么在步驟S123中將 方向標(biāo)記設(shè)置為"+ l"。如果按下的是向回跳讀,那么在步驟S124 中將方向標(biāo)記設(shè)置為"一1"。
      在步驟S125中,將當(dāng)前PLMark編號設(shè)置為通過將當(dāng)前PLMark
      號與方向標(biāo)記的值相加而得到的數(shù)量。這里,如果按下的是向下跳讀 鍵,那么就將方向標(biāo)記設(shè)置為"+ l",并且因此當(dāng)前PLMark增加。 如果按下的是向回跳讀鍵,那么就將方向標(biāo)記設(shè)置為"一1",并且因 此當(dāng)前PLMark減小。在步驟S126中,將當(dāng)前PLMark的ref_to—Playltem一Id中描述的 PI設(shè)置到播放項#x 。在步驟S127 ,讀取播放項#x的 Clip—information—file—name指定的剪輯信息。在步驟S128,使用當(dāng)前 剪輯信息的EP—map將當(dāng)前PLMark的markjime—stamp轉(zhuǎn)換為一個 I圖像地址"u"。另一反面,使用當(dāng)前剪輯信息的EP—map將播放項 #x的Out_time轉(zhuǎn)換為一個I圖像地址"v"。在步驟S130,命令呈現(xiàn) 引擎31輸出數(shù)據(jù),并且這些數(shù)據(jù)的范圍是從當(dāng)前PLMark的 mark_time—stamp到播放項弁x的Out—time。停止與本處理并行執(zhí)行的 圖50中所示的處理,并且然后控制轉(zhuǎn)移到圖50的步驟S107。通過 這種方式,在改變I圖像地址"u"和"v"并且命令播放另一部分之 后,控制轉(zhuǎn)移到步驟S107。通過轉(zhuǎn)移到步驟S107,從另一個AV剪 輯讀取TS包,并且改變了視頻的內(nèi)容。
      圖53是一個流程圖,詳細(xì)顯示了呈現(xiàn)引擎31的工作步驟。在該 流程圖中,將I圖像的PTS設(shè)置到當(dāng)前PTM之后(步驟S131),執(zhí) 行包含歩驟S132到步驟S137的環(huán)路處理。
      接下來將描述包含步驟S132到S137的環(huán)路處理。在該環(huán)路處理 中,反復(fù)輸出對應(yīng)于當(dāng)前PTM的圖像和音頻并且反復(fù)更新當(dāng)前PTM。 在該環(huán)路處理中,步驟S136定義了該環(huán)路處理結(jié)束所必需的條件。 也就是說,步驟S136定義了必須要由該環(huán)路處理結(jié)束當(dāng)前PTM就是 PI弁x的Out—time 。
      在歩驟S133,判斷Java (TM)虛擬機(jī)38是否調(diào)用了快退API 或快進(jìn)API。如果判斷出調(diào)用了快退API或快進(jìn)API,那么就在步驟 S138中判斷所調(diào)用的API是快進(jìn)還是快退。如果是快進(jìn),那么將下 一個I圖像的PTS設(shè)置到當(dāng)前PTM (步驟S139)。通過將當(dāng)前PTM 設(shè)置到下一個I圖像的PTS,可以實現(xiàn)每秒以向前跳讀的方式播放AV 剪輯。通過這種安排,可以按照兩倍速度或其它速度向前播放AV剪 輯。如果是快退,那么就判斷當(dāng)前PTM是否已經(jīng)到達(dá)了播放項&的 Out_time (步驟S140)。如果判斷出當(dāng)前PTM未到達(dá)播放項弁x的 Out—time,那么就將前一個I圖像的PTS設(shè)置到當(dāng)前PTM (步驟 S141)。以這種方式,通過將讀取目的地地址A設(shè)置到前一個I圖像,可以實現(xiàn)每秒以向后跳讀的方式播放AV剪輯。通過這種安排,可以 按照兩倍速度或其它速度向后播放AV剪輯??梢酝ㄟ^多種方式實現(xiàn) 快進(jìn)或快退的步驟。因此,應(yīng)該注意到這里僅描述了一個這樣的例子。 在步驟S134,判斷是否調(diào)用了菜單調(diào)用API。如果判斷出調(diào)用 了菜單調(diào)用API,那么就暫停當(dāng)前播放過程(步驟S142),并且執(zhí)行 用于菜單過程的菜單程序(步驟S143)。通過該過程,如果執(zhí)行了菜 單調(diào)用,那么就可以暫停播放過程,并且執(zhí)行用于菜單過程的菜單程 序。
      在步驟S135,判斷是否有一個在sync—Playltem—id中已經(jīng)為其指 定了了播放項弁x (Playltem#x)的子播放項弁y (SubPlayltem #y)。如 果判斷出存在這樣一個子播放項弁y,那么控制就轉(zhuǎn)移到圖54中所示 的流程圖。圖54是一個流程圖,它顯示了子播放項的工作步驟。在 該流程圖中,首先在步驟S146中判斷當(dāng)前PTM是否是子PI#y的 Sync—start—PTS_of—Playltem。如果判斷出當(dāng)前PTM是子PI#y的 Sync—start_PTS_of_PlayItem,那么控制就轉(zhuǎn)移到步驟S153,并且在 該步驟中命令播放控制引擎32執(zhí)行子播放項弁y的播放過程。
      如果在步驟S136中判斷為"YES",那么就執(zhí)行步驟S144和 S145。在步驟S144中,判斷是否滿足下述兩個條件(i)虛擬機(jī)文 件系統(tǒng)30輸出了文件事件的通知結(jié)束;以及(ii)解碼器輸出了解碼 事件的通知結(jié)束。如果上述兩個條件都得到滿足,那么就將流事件的 通知結(jié)束輸出到播放控制引擎32。
      圖54中包含步驟S147到S152的流程圖顯示了基于子播放項弁y 的工作步驟。
      在步驟S147中,讀取由子播放項弁y的Clipjnformation—file—name 指定的剪輯信息。在步驟S148,使用當(dāng)前剪輯信息的EP—map將子 播放項弁y的In—time轉(zhuǎn)換為地址a 。在步驟S149,使用當(dāng)前剪輯信 息的EP—map將子播放項^y的Out_time轉(zhuǎn)換為地址P 。在步驟S150 中,命令解碼器輸出子播放項的In—time到Out—time。將I圖像地址 P的下一個I圖像地址減1,并且將得到的結(jié)果設(shè)置到地址Y (步驟 S151)。命令BD-ROM驅(qū)動器1或本地存儲器18從子剪輯弁z中地址a到地址Y的位置讀取TS包(步驟S152)。
      現(xiàn)在,回到圖50,我們將繼續(xù)描述播放控制引擎32的過程。在 步驟S19中,判斷呈現(xiàn)引擎31是否已經(jīng)完成了播放控制。步驟S131 中將一直判斷為"NO",直到圖53的流程圖中所示過程執(zhí)行到最后 一個播放項弁x。當(dāng)完成了圖53的流程圖中所示過程時,在步驟S131 中判斷為"YES",并且控制轉(zhuǎn)移到步驟S114。在步驟S114,通知事 件將被輸出到Java (TM)虛擬機(jī)38中。通過該輸出,Java (TM) 虛擬機(jī)38可以識別出播放已經(jīng)進(jìn)行了兩個小時。
      根據(jù)上述的本實施例,應(yīng)用程序管理器36可以識別出播放已經(jīng) 連續(xù)進(jìn)行了兩個小時的時刻。這使得應(yīng)用程序管理器3 6可以命令Java (TM)虛擬機(jī)38執(zhí)行一個與播放列表的播放的結(jié)束同步的處理。
      注意事項
      上述內(nèi)容并未對本發(fā)明的所有實施例都進(jìn)行了描述。還可以通過 例如實施例(A)、 (B)、 (C)、 (D)等等實現(xiàn)本發(fā)明。在本申請的權(quán) 利要求中定義的本發(fā)明是上述實施例的擴(kuò)展或總結(jié),或者是對上述實 施例的修改。這些擴(kuò)展或總結(jié)的程度是基于提交本申請時本發(fā)明的技 術(shù)領(lǐng)域中的技術(shù)水平。
      在上述所有實施例中,用BD-ROM代表了用于實現(xiàn)本發(fā)明的光 盤。但是,用于實現(xiàn)本發(fā)明的光盤的特征在于記錄在光盤上的動態(tài)腳 本和索引表,并且這些特性并不依賴于BD-ROM的物理特性。因此, 任何可以用于記錄動態(tài)腳本和索弓I表的記錄介質(zhì)都可應(yīng)用于本發(fā)明。 例如,可以使用例如DVD-ROM、 DVD-RAM、 DVD-RW、 DVD-R、 DVD+RW、 DVD+R、 CD-R以及CD-RW的光盤,或者例如PD或 MO的磁光盤。另外,本發(fā)明還可以使用半導(dǎo)體存儲卡,例如閃存 (TM)卡(compact flash card)、智能介質(zhì)(smart media)、記憶棒 (memory stick)、多々某體卡(multimedia card)或者PCM-CIA卡。而 且,本發(fā)明還可以使用(i)磁記錄盤,例如軟磁盤(flexibledisk)、 超磁盤(SuperDisk)、 Zip或Clik!,或者(ii)可移動硬盤驅(qū)動器, 例如ORB、 Jaz、 SparQ、 SyJet、 EZFley或者微驅(qū)動器。進(jìn)一步,本 發(fā)明可以使用嵌入到裝置中的硬盤。在所有上述實施例中,播放裝置在將記錄于BD-ROM上的AV 剪輯輸出到TV之前先要對這些AV剪輯進(jìn)行解碼。但是,播放裝置 可能僅包含一個BD-ROM驅(qū)動器,而除BD-ROM之外的器件則位于 TV中。在這種情況下,可以將播放裝置和TV包含到一個家庭網(wǎng)絡(luò) 中,并且通過正EE 1394將該播放裝置和TV連接到該家庭網(wǎng)絡(luò)中。 另外,在上述實施例中,該播放裝置是一種由于使用的原因從而要求 將其連接到一個TV的類型的播放裝置。但是,該播放裝置還可以是 這樣一種類型其中該播放裝置中內(nèi)置一個顯示器。進(jìn)一步,可以將 每個實施例中實現(xiàn)了一種實質(zhì)性過程的播放裝置的一部分視作本發(fā) 明的播放裝置。每個這樣的播放裝置都是本申請中描述的一種發(fā)明。 并且因此,基于每個實施例中所示播放裝置的內(nèi)部結(jié)構(gòu)對播放裝置所 進(jìn)行的制造,都應(yīng)該被視作是對本申請中所描述發(fā)明的實施。另外, 無論是出于營利目的還是免費對每個實施例中所示播放裝置進(jìn)行轉(zhuǎn) 移、出租或是引入,都應(yīng)該被視作是對本發(fā)明的實施。進(jìn)一步,通過 直接的顯示、產(chǎn)品目錄或發(fā)行手冊等等方式將該播放裝置提供、轉(zhuǎn)移 或出租給普通用戶,也都應(yīng)該被視作是對本發(fā)明的實施。
      對于其工作步驟在每個流程圖中得到了顯示的程序來說,應(yīng)該將 該程序視作一個獨立的發(fā)明,這是因為如每個流程圖中所示,該程序 為了對信息進(jìn)行處理使用了具體的硬件資源。在每個實施例中,為了 實現(xiàn)本發(fā)明的程序,已經(jīng)將該程序嵌入到播放裝置中。但是,該程序 與播放裝置之間是可以分離的,并且可以將該程序用作分立實體從而 實現(xiàn)每個實施例中所示的獨立程序??梢詫⑦@種將每個實施例中所示 程序分立實體從而實施本發(fā)明的方法分為以下幾類,例如(l)制造 該程序(2)出于營利目的或免費對該程序進(jìn)行轉(zhuǎn)移;(3)出租該程 序;(4)引入該程序;(5)通過雙向電子通信線路向公眾提供該程序; 以及(6)通過直接的顯示、產(chǎn)品目錄或發(fā)行手冊等等方式將該程序 提供、轉(zhuǎn)移或出租給普通用戶。
      我們認(rèn)為在每個流程圖的步驟中按照時間順序執(zhí)行的相關(guān)于時 間的元素在識別本發(fā)明方面起到了實質(zhì)性的作用。因此,我們還認(rèn)為 流程圖中所示工作步驟起到了公幵播放方法的使用形式的作用。因此,我們認(rèn)為按照時間順序?qū)嵤┝鞒虉D的步驟從而實現(xiàn)本發(fā)明的目 的,實施本發(fā)明以及獲得本發(fā)明的效果,也都是對本發(fā)明的實施。
      當(dāng)AV剪輯記錄于BD-ROM上時,我們希望給該AV剪輯所包含 的每個TS包都附上一個擴(kuò)展報頭。該擴(kuò)展報頭稱作TP—extra—header, 它包含"Arribval_Time—Stamp"禾口 "copy_permission—indicator", 并 且具有四字節(jié)的數(shù)據(jù)長度。將具有TP—extra—header的TS包(此后稱 作具有EX的TS包)按照32個一組進(jìn)行分組,并且將其寫入到三個 段中。這32個具有EX的TS包的一組有6144個字節(jié)(=32x 192)。 每組的這種尺寸大小正好與這三個段中每個段的尺寸大小相同,其中 每個段的尺寸大小也是6144個字節(jié)(二2048 x 3)。存儲于這三個段 中這32個具有EX的TS包的一組稱作"對準(zhǔn)單元"。
      當(dāng)將播放裝置200用于一個家庭網(wǎng)絡(luò)時(其中該裝置通過正EE 1394連接到該網(wǎng)絡(luò)),該播放裝置按照下述傳輸過程傳輸該對準(zhǔn)單元。 也就是說,發(fā)射機(jī)側(cè)的一臺設(shè)備將TP一extraJieader從對準(zhǔn)單元中所 含每個具有EX的播放控制引擎32 TS包中除去,根據(jù)DTCP標(biāo)準(zhǔn)對 TS包的每個部分都進(jìn)行編碼,并且輸出編碼后的TS包。當(dāng)輸出編碼 后的TS包時,該設(shè)備將同步包插入到編碼后的TS包?;?TP—extra—header的Arribval_Time—Stamp所指示的時間確定將同步包 插入到編碼后的TS包中的位置。當(dāng)輸出這些TS包時,播放裝置200 輸出DTCP—Descriptor該DTCP—Descriptor指示了 TP—extra—header 中的復(fù)制許可/禁止設(shè)置。這里,通過描述DTCP一Descriptor從而指示 "復(fù)制禁止"使得在將播放裝置通過正EE 1394連接到一個家庭網(wǎng)絡(luò) 從而對其進(jìn)行使用時,其它設(shè)備不能記錄這些TS包。
      在所有上述實施例中,記錄于記錄介質(zhì)上的數(shù)字流是AV剪輯。 但是,該數(shù)字流可以是符合DVD視頻標(biāo)準(zhǔn)或DVD視頻記錄標(biāo)準(zhǔn)的 VOB (視頻對象)。該VOB是通過將視頻流以及音頻流復(fù)用到一起 從而獲得的程序流,并且該程序流符合ISO/IEC13818-l標(biāo)準(zhǔn)。另外, AV剪輯中的視頻流可以符合MPEG4或WMV系統(tǒng)。進(jìn)一步,音頻 流可以符合線性PCM系統(tǒng)、杜比AC3系統(tǒng)、MP3系統(tǒng)、MPEG-AAC 系統(tǒng)、Dts或WMA (視窗(TM)媒體音頻)。在所有上述實施例中,可以通過對模擬廣播所發(fā)出的模擬視頻信 號進(jìn)行編碼從而獲得視頻作品。另外,視頻作品還可以是包含通過數(shù) 字廣播方式發(fā)出的傳輸流的流數(shù)據(jù)。
      另外,還可以通過對存儲在視頻帶上的模擬/數(shù)字視頻信號進(jìn)行 編碼從而獲得內(nèi)容。進(jìn)一步,還可以通過對直接從攝像機(jī)獲得的模擬 /數(shù)字視頻信號進(jìn)行編碼從而獲得內(nèi)容。進(jìn)一步,可以通過發(fā)行服務(wù) 器所進(jìn)行的發(fā)行從而獲得數(shù)字作品。
      BD-J模塊35可以是一種嵌入到用于接收衛(wèi)星廣播的設(shè)備中的 Java (TM)平臺。當(dāng)BD-J模塊35是Java (TM)平臺時,本發(fā)明的 播放裝置也執(zhí)行用于MHP的STB所執(zhí)行的過程。
      此外,BD-J模塊35可以是一種嵌入到用于執(zhí)行移動電話的過程 控制的設(shè)備中的Java (TM)平臺。當(dāng)BD-J模塊35是Java (TM) 平臺時,本發(fā)明的播放裝置也執(zhí)行移動電話所執(zhí)行的過程。
      在層模型中,HDMV模式可以位于BD-J模式上。這尤其是因為 對HDMV模式中動態(tài)腳本進(jìn)行分析和基于該動態(tài)腳本執(zhí)行控制工作 步驟僅使播放裝置承擔(dān)了輕的負(fù)載,并且在BD-J模式上執(zhí)行HDMV 模式并不存在任何問題。另外,在播放裝置或電影作品的開發(fā)過程中, 僅通過一種模式就可以保證操作。
      此外,可以僅在BD-J模式上執(zhí)行播放過程。這是因為如實施例 5中所示,可以同步于BD-J模式中PL的播放執(zhí)行播放控制,并且因 此不一定要提供HDMV模式。
      通過在一種互動圖像流中提供導(dǎo)航命令可以實現(xiàn)PL之間的轉(zhuǎn) 移,并且其中該互動圖像流會被復(fù)用到一個AV剪輯中。
      在實施例1中,將標(biāo)題無邊界應(yīng)用程序定義為這樣一種標(biāo)題它 的生存周期延伸到屬于一個BD-ROM的所有標(biāo)題。但是,也可以將 標(biāo)題無邊界應(yīng)用程序定義為這樣一種標(biāo)題它的生存周期延伸到屬于 多個BD-ROM的所有標(biāo)題。
      在實施例l中,在生成應(yīng)用程序管理表時,我們希望將可以同時 執(zhí)行的應(yīng)用程序數(shù)量限制到,例如4或更少。
      應(yīng)該將可以同時執(zhí)行的應(yīng)用程序數(shù)量限制到例如4或更少的原因如下。有多個配有數(shù)字廣播調(diào)頻器功能的BD-ROM播放裝置,并 且用于實現(xiàn)這種調(diào)頻器功能的應(yīng)用程序通常位于存儲器中。為了給常 駐應(yīng)用程序提供操作的空間,所以就應(yīng)該將可以同時執(zhí)行的應(yīng)用程序 數(shù)量限制到,例如4或更少。我們希望在這四個應(yīng)用程序中,第一個 是標(biāo)題無邊界應(yīng)用程序,第二個是標(biāo)題無邊界程序,并且第三個是章 節(jié)邊界應(yīng)用程序。
      在實施例2中,這樣定義錯誤管理表,從而當(dāng)一個應(yīng)用程序異 常終止時,會執(zhí)行一個恢復(fù)過程。但是,當(dāng)一個應(yīng)用程序異常終止時, 可能會執(zhí)行多個恢復(fù)過程。也就是說,當(dāng)一個應(yīng)用程序異常終止時, 播放裝置可以連續(xù)執(zhí)行播放列表的播放、應(yīng)用程序的重新啟動以及事 件的輸出。
      另外,可以這樣構(gòu)建錯誤管理表從而為每個標(biāo)題而并不為每個應(yīng) 用程序都定義一個恢復(fù)過程。
      AV剪輯可以具有一種復(fù)用到其中的互動圖像流,用于顯示菜單 和通過該菜單接收互動操作。因此,僅通過描述一個導(dǎo)航命令就可以 生成頂級菜單標(biāo)題,其中該導(dǎo)航命令為了實現(xiàn)顯示該頂級菜單和接收 互動操作僅需要命令播放電影對象中的一個AV剪輯。
      在上述每個實施例中,只是舉例說明了目錄/文件結(jié)構(gòu)和文件中 的數(shù)據(jù)結(jié)構(gòu)。作為本發(fā)明的特征之一的管理信息并不依賴于目錄/文 件結(jié)構(gòu)和文件中的數(shù)據(jù)結(jié)構(gòu)。因此,例如,對于作為BD-J模式中一 種操作腳本的BD-J對象來說,可以將其作為一個具有標(biāo)識符 "bobj—id"和"BD-J"的文件(zzzzz.BD-J)包含到BDJA目錄中, 并且可以僅將標(biāo)識符"bobjjd"存儲到BD-J Object.bdmv的BD-J Object [n]()。
      工業(yè)應(yīng)用性
      個人可以將本發(fā)明的記錄介質(zhì)和播放裝置可以用于家庭影院系 統(tǒng)中。但是,還可以將本發(fā)明的記錄介質(zhì)和播放裝置應(yīng)用于工業(yè)領(lǐng)域, 這是因為它具有在上述實施例中公開的內(nèi)部結(jié)構(gòu),并且很明顯的是, 可以對本發(fā)明的記錄介質(zhì)和播放裝置進(jìn)行批量生產(chǎn)。因此,本發(fā)明的 記錄介質(zhì)和播放裝置具有工業(yè)應(yīng)用性。
      權(quán)利要求
      1. 一種用于播放裝置的集成電路,該播放裝置設(shè)置有存儲單元,存儲用作虛擬機(jī)和應(yīng)用程序管理器的模塊,該虛擬機(jī)執(zhí)行記錄在記錄介質(zhì)上的應(yīng)用程序,其中在該記錄介質(zhì)上記錄有數(shù)字流、與該應(yīng)用程序和數(shù)字流關(guān)聯(lián)的標(biāo)題和管理信息,而該應(yīng)用程序管理器控制由該虛擬機(jī)執(zhí)行的該應(yīng)用程序的啟動和停止,其中所述集成電路包含CPU,通過執(zhí)行所述模塊用作所述虛擬機(jī)和所述應(yīng)用管理器;與所述CPU不同的視頻解碼器,用于解碼記錄在所述記錄介質(zhì)上的數(shù)字流中包含的視頻流;與所述CPU不同的音頻解碼器,用于解碼記錄在所述記錄介質(zhì)上的數(shù)字流中包含的音頻流;與所述CPU不同的合成單元,用于組合從所述視頻解碼器輸出的視頻數(shù)據(jù)與所述虛擬機(jī)執(zhí)行所述應(yīng)用程序而產(chǎn)生的圖形數(shù)據(jù),其中當(dāng)所述虛擬機(jī)可執(zhí)行與記錄在所述記錄介質(zhì)上的標(biāo)題相關(guān)的所述應(yīng)用程序的生存周期在所述標(biāo)題的播放周期內(nèi)達(dá)到時,在所述CPU執(zhí)行所述模塊時所述集成電路配置為(1)所述視頻解碼器按照記錄在所述記錄介質(zhì)上的管理信息解碼包含在與所述標(biāo)題相關(guān)的數(shù)字流內(nèi)的視頻流,以及所述音頻解碼器按照記錄在所述記錄介質(zhì)上的管理信息解碼包含在與所述標(biāo)題相關(guān)的數(shù)字流內(nèi)的音頻流;(2)所述應(yīng)用程序管理器工作使得所述虛擬機(jī)執(zhí)行所述應(yīng)用程序;以及(3)所述合成單元合成從所述視頻解碼器輸出的視頻數(shù)據(jù)與所述虛擬機(jī)執(zhí)行所述應(yīng)用程序而產(chǎn)生的圖形數(shù)據(jù)。
      2、 如權(quán)利要求1所述的集成電路,其中所述播放裝置包括視頻 平面和圖形平面,其中所述視頻平面存儲了包含在所述視頻流內(nèi)的所 述視頻數(shù)據(jù),所述視頻流包括在所述記錄介質(zhì)上記錄的數(shù)字流內(nèi),而 所述圖形平面存儲了按照執(zhí)行所述記錄介質(zhì)上記錄的所述應(yīng)用程序而產(chǎn)生的所述圖形數(shù)據(jù);以及所述集成電路配置成從所述視頻解碼器輸出的所述視頻數(shù)據(jù)存 儲在所述視頻平面內(nèi);所述集成電路配置成將由所述虛擬機(jī)執(zhí)行所述應(yīng)用程序產(chǎn)生的 所述圖形數(shù)據(jù)存儲在所述圖形平面內(nèi);以及所述集成電路配置成所述合成單元合成存儲在所述視頻平面內(nèi) 的所述視頻數(shù)據(jù)與存儲在所述圖形平面內(nèi)的所述圖形數(shù)據(jù)。
      3、 如權(quán)利要求2所述的集成電路,其中所述集成電路配置成在 所述CPU執(zhí)行所述模塊時可調(diào)整按照存儲在所述視頻平面內(nèi)的所述 視頻數(shù)據(jù)播放的播放圖像。
      4、 如權(quán)利要求2所述的集成電路,進(jìn)一步包括與所述CPU不同的第一轉(zhuǎn)換單元,用于將構(gòu)成存儲在所述視頻 平面內(nèi)的視頻數(shù)據(jù)的像素數(shù)據(jù)轉(zhuǎn)換成亮度和色差;以及與所述CPU不同的第二轉(zhuǎn)換單元,用于將構(gòu)成存儲在所述圖形 平面內(nèi)的圖形數(shù)據(jù)的像素數(shù)據(jù)轉(zhuǎn)換成亮度和色差,其中所述集成電路 配置成所述合成單元合成從所述第一轉(zhuǎn)換單元輸出的所述亮度和色 差與從所述第二轉(zhuǎn)換單元輸出的所述亮度和色差。
      全文摘要
      BD-ROM包含記錄于其中的播放列表、應(yīng)用程序和BD-J對象,所述播放列表包含AV剪輯和播放列表信息。該應(yīng)用程序是一種以用于虛擬機(jī)的編程語言寫成的程序,并且指定了生存周期,在該生存周期期間可以由所述虛擬機(jī)執(zhí)行該應(yīng)用程序。該BD-J對象包含播放列表管理表。該播放列表管理表指示了在該生存周期期間與該應(yīng)用程序的執(zhí)行同時進(jìn)行的播放列表的播放控制。
      文檔編號G11B27/10GK101447210SQ20091000140
      公開日2009年6月3日 申請日期2004年11月9日 優(yōu)先權(quán)日2003年11月10日
      發(fā)明者岡田智之, 大久保雅文, 巖本啟明, 池田航 申請人:松下電器產(chǎn)業(yè)株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1