專利名稱:再現(xiàn)裝置、程序、再現(xiàn)方法
技術領域:
本發(fā)明是屬于同時執(zhí)行數(shù)字化后的視頻作品的再現(xiàn)和應用程序的執(zhí)行的再現(xiàn)控制技術的技術領域的發(fā)明,更深地涉及將本再現(xiàn)控制技術應用于民用的再現(xiàn)裝置、程序中的情況下的應用技術。
背景技術:
DVD再現(xiàn)裝置作為包媒體的再現(xiàn)裝置而構筑了穩(wěn)固的地位。DVD再現(xiàn)裝置具有解釋型的執(zhí)行主體,通過向其發(fā)布命令,DVD再現(xiàn)裝置執(zhí)行再現(xiàn)控制。DVD再現(xiàn)裝置中,基于命令的描述是必需,但是在今后出現(xiàn)的BD再現(xiàn)裝置中,希望要用Java編程來進行再現(xiàn)裝置的再現(xiàn)控制的描述。這是因為對擅長Java編程的各種軟件號召BD內容的控制事業(yè)的研究。
這里,DVD再現(xiàn)裝置中解釋型的執(zhí)行主體在命令2小時長的數(shù)字流的再現(xiàn)時,在2小時期間什么響應都不返回,經過2小時后開始返回響應。但是,作為Java程序的執(zhí)行主體的Java虛擬機是事件驅動(event-driven)的執(zhí)行主體,Java虛擬機在發(fā)出再現(xiàn)命令的譯碼和向下層的指示之后就返回了響應。由此,在2小時的再現(xiàn)時間經過后,進行某些處理這樣的控制變?yōu)椴豢赡堋?br>
發(fā)明內容
本發(fā)明的目的是提供即使將事件驅動型的執(zhí)行主體作為對象,在2小時的再現(xiàn)時間經過后,也可執(zhí)行某些處理的再現(xiàn)裝置。
上述目的通過再現(xiàn)裝置實現(xiàn),所述再現(xiàn)裝置的特征在于,包括模塊,執(zhí)行應用程序;再現(xiàn)引擎部,再現(xiàn)屬于標題的數(shù)字流;以及模塊管理器,控制標題之間的分支,模塊具有虛擬機部和應用程序管理器,所述虛擬機部對應用程序進行譯碼,并進行實例的生成和所生成的實例的執(zhí)行,所述應用程序管理器在實例存在于虛擬機部內的工作存儲器的情況下,即使應用程序終止,也解釋為標題再現(xiàn)繼續(xù),若從再現(xiàn)控制引擎部產生再現(xiàn)終止事件,則認為標題再現(xiàn)終止,使應用程序管理器選擇下一標題。
根據(jù)上述再現(xiàn)裝置,即使在虛擬機部對應用程序返回了響應的事件的情況下,即使應用程序例如終止,只要實例存在于虛擬機部的工作存儲器上,也解釋為標題再現(xiàn)正在發(fā)生聯(lián)系中,所以在數(shù)字流有2小時的再現(xiàn)時間的情況下,可以同步于該2小時的再現(xiàn)時間,來使應用程序動作。由此,例如即使是應用程序的執(zhí)行主體是虛擬機,也可實現(xiàn)與DVD再現(xiàn)裝置不用任何改變的同步控制,容易進行基于Java編程的再現(xiàn)控制的描述。由于基于Java編程的開發(fā)在身邊存在,所以對基于擅長Java編程的軟件的BD內容控制事業(yè)研究增加彈性。
圖1是表示本發(fā)明的再現(xiàn)裝置的使用行為方式的圖;圖2是表示BD-ROM中的文件·目錄結構的圖;圖3是表示AVClip時間軸和PL時間軸的關系的圖;圖4是表示通過4個Clip_Information_file_name進行的統(tǒng)一指定的圖;圖5是表示基于PLmark的章定義的圖;圖6是表示SubPlayItem時間軸上的再現(xiàn)區(qū)間定義和同步指定的圖;圖7(a)是表示Movie對象的內部結構的圖;圖7(b)是表示BD-J對象的內部結構的圖;圖7(c)是表示Java應用程序的內部結構的圖;圖8(a)是表示在Jave歸檔文件中容納的程序、數(shù)據(jù)的圖;
圖8(b)是表示xlet程序的一例的圖;圖9(a)是表示頂端菜單、title#1、title#2的一系列標題的圖;圖9(b)是表示PlayList#1、PlayList#2的時間軸一致的時間軸的圖;圖10是表示包含主標題、在線購物標題、游戲標題三個標題的盤內容的圖;圖11是表示圖10所示的三個標題的再現(xiàn)圖像的一例的圖;圖12(a)是根據(jù)圖10的虛線所示的隸屬關系來將各應用程序的生存區(qū)間圖表化的圖;圖12(b)是為規(guī)定圖12(a)的生存區(qū)間而描述的應用程序管理表的一例的圖;圖13(a)是表示啟動屬性設定的一例的圖;圖13(b)是表示有來自其他應用程序的應用程序調用而開始啟動的應用程序(application#2)的圖;圖14(a)、(b)是表示掛起(Suspend)為有意義的應用程序管理表、生存區(qū)間的一例的圖;圖15是表示啟動屬性可取的三種形態(tài)(Persistent、AutoRun、Suspend)和之前標題中的應用程序狀態(tài)的三種形態(tài)(非啟動、啟動中、掛起(Suspend))可取的組合的圖;圖16是表示本發(fā)明的再現(xiàn)裝置的內部結構的圖;圖17(a)是表示在本地存儲器29上怎樣識別BD-ROM上存在的Java應用程序的圖;圖17(b)是表示圖17(a)的應用的圖;圖18是將由ROM24中存儲的軟件和硬件構成的部件置換為層結構來描述的圖;圖19是將基于展示引擎31~模塊管理器34的處理的情況模式化的圖;圖20是將基于應用程序管理器36的處理的情況模式化的圖;
圖21是表示工作存儲器37~缺省操作管理器40的圖;圖22是表示基于應用程序管理器36的分支時的控制過程的圖;圖23是表示應用程序終止處理的處理過程的流程圖;圖24是模式表示了應用程序終止的過程的圖;圖25(a)是表示在PL時間軸上定義生存區(qū)間的應用程序管理表的圖;圖25(b)是根據(jù)圖25(a)的應用程序管理表,來表示應用程序的生存區(qū)間的圖;圖26(a)表示基于PL時間軸設定的標題時間軸;圖26(b)是表示基于主應用程序的生存區(qū)間決定的標題時間軸;圖26(c)是表示基于多個應用程序的生存區(qū)間設定的標題時間軸的圖;圖27是表示標題再現(xiàn)時的應用程序管理器36的處理過程的流程圖;圖28(a)是表示通過BD-ROM實現(xiàn)的菜單等級的圖;圖28(b)是表示用于實現(xiàn)菜單等級的MOVIE對象的圖;圖29是將索引表和從索引表向各Movie對象的分支的情況模式化的圖;圖30(a)表示如圖29(b)那樣描述了索引表的情況下的分支;圖30(b)是表示非AV系標題強制終止時的分支的圖;圖31是表示模塊管理器34的處理過程的流程圖;圖32是表示基于應用程序管理器36的應用程序強制終止的動作例的圖;圖33是表示基于重放控制引擎32的PL再現(xiàn)過程的流程圖;圖34是表示角度切換、Skip Back、Skip Next的接收過程的流程圖;圖35是表示調用了Skip Back、Skip NextAPI時的處理過程的流程圖;圖36是表示基于展示引擎31的處理過程的細節(jié)的流程圖;圖37是表示SubPlayItem的再現(xiàn)過程的流程圖;圖38是表示第五實施方式的應用程序管理器36的處理過程的流程圖;
圖39是表示數(shù)據(jù)管理表的一例的圖;圖40是表示BD-J對象假定的執(zhí)行模塊的圖;圖41(a)是表示本地存儲器29中的Java歸檔文件生存的生存區(qū)間的圖;圖41(b)是表示為了規(guī)定圖41(a)的Java歸檔文件生存區(qū)間而描述的數(shù)據(jù)管理表的圖;圖42是表示基于循環(huán)方式(carousel method)的Java歸檔文件嵌入的圖;圖43(a)是表示基于交叉(interleave)方式的AVClip嵌入的圖;圖43(b)是表示讀入屬性的三種類型的圖;圖44(a)是表示數(shù)據(jù)管理表的一例的圖;圖44(b)是表示基于圖44(a)的數(shù)據(jù)管理表的分配的本地存儲器29的存儲內容的變遷的圖;圖45(a)是對比表示新舊再現(xiàn)裝置中的本地存儲器29的存儲器規(guī)模的圖;圖45(b)是表示設置了讀入優(yōu)先級的數(shù)據(jù)管理表的一例的圖;圖46是表示基于應用程序管理器36的預裝載控制的處理過程的圖;圖47(a)是表示規(guī)定了applicationID相同,但是讀入優(yōu)先級彼此不同的應用程序的數(shù)據(jù)管理表的一例的圖;圖47(b)是基于圖47(a)的數(shù)據(jù)管理表的分配的本地存儲器29的存儲內容的改變的圖;圖48(a)是表示描述為在應預裝載的應用程序、應裝載的應用程序上添加同一applicationID的數(shù)據(jù)管理表的一例的圖;圖48(b)是表示在存儲器規(guī)模小的再現(xiàn)裝置中的本地存儲器29的存儲內容的改變的圖;圖48(c)是表示在存儲器規(guī)模大的再現(xiàn)裝置中的本地存儲器29的存儲內容的改變的圖;圖49是表示基于根據(jù)數(shù)據(jù)管理表的應用程序管理器36的裝載處理的處理過程的圖;圖50是表示基于當前的再現(xiàn)時刻到達應用程序q的生存區(qū)間的情況下的應用程序管理器36的處理過程的圖;圖51是將怎樣進行基于Java虛擬機38的應用程序的讀入的情況模式化的圖;圖52(a)是表示第七實施方式的BD-J對象的內部結構的圖;圖52(b)是表示播放列表管理表的一例的圖;圖52(c)是表示在分支目標標題的播放列表管理表中,存在再現(xiàn)屬性設定為AutoPlay的PL的情況下,再現(xiàn)裝置進行怎樣的處理的圖;圖53(a)是表示設定為再現(xiàn)屬性表示非自動再現(xiàn)的情況下的非AV系標題中的標題時間軸的圖;圖53(b)是表示再現(xiàn)屬性設定為AutoPlay的非AV系標題的標題時間軸的圖;圖53(c)是表示在播放列表管理表中設定為再現(xiàn)屬性表示“AutoPlay”,應用程序強制終止的情況的圖;圖53(d)是表示在播放列表管理表中設定為再現(xiàn)屬性表示“AutoPlay”,主應用程序的啟動失敗的情況的圖;圖54是表示第七實施方式的應用程序管理器36的處理過程的圖;圖55是表示將通過播放列表管理表中設定為“再現(xiàn)屬性=AutoPlay”而進行怎樣的再現(xiàn)的情況模式化的圖;圖56(a)、(b)是表示應用程序的處理和啟動屬性的關系的圖;圖57是將怎樣進行基于第八實施方式的Java虛擬機38的應用程序的讀入的情況模式化的圖;圖58(a)、(b)是表示第九實施方式的讀入優(yōu)先級的一例的圖;
圖59(a)是表示添加了組屬性的數(shù)據(jù)管理表的圖;圖59(b)是表示對于基于應用程序管理表的本地存儲器29的訪問的圖;圖60是表示應用程序管理表的分配單位的變化的圖。
具體實施例方式
(第一實施方式)下面,說明本發(fā)明的再現(xiàn)裝置的實施方式。首先,開始說明本發(fā)明的再現(xiàn)裝置的實施方式中,使用行為方式。圖1是表示本發(fā)明的再現(xiàn)裝置的使用行為方式。圖1中,本發(fā)明的再現(xiàn)裝置是再現(xiàn)裝置200,與電視機300、遙控器400共同形成家庭影院系統(tǒng)。
該BD-ROM100用于向由再現(xiàn)裝置200、遙控器300、電視機400形成的家庭影院系統(tǒng)供給視頻作品。
以上是本發(fā)明的再現(xiàn)裝置的使用方式的說明。
接著,說明作為本發(fā)明的再現(xiàn)裝置的再現(xiàn)對象的記錄媒體BD-ROM。通過BD-ROM,向家庭影院系統(tǒng)供給的盤內容由彼此可分支的多個標題構成。各標題由一個以上的播放列表和使用該播放列表的動態(tài)控制過程構成。
所謂播放列表是指由一個以上的數(shù)字流和該數(shù)字流中的再現(xiàn)路徑構成,是具有“時間軸”的概念的BD-ROM上的訪問單位。由于包含以上的播放列表和動態(tài)控制過程,所以標題兼有數(shù)字流特有的時間軸的概念和計算機程序的性質。
圖2是表示BD-ROM中的文件·目錄結構的圖。該圖中,BD-ROM在根目錄下有BDMV目錄。
BDMV目錄中有添加了擴展符bdmv的文件(index.bdmv,MovieObject.bdmv)、和添加了擴展符BD-J的文件(00001.BD-J,00002.BD-J,00003.BD-J)。并且,在該BDMV目錄下進一步存在稱作PLAYLIST目錄、CLIPINF目錄、STREAM目錄、BDAR目錄的4個子目錄。
PLAYLIST目錄中有添加了擴展符mpls的文件(00001.mpls,00002.mpls,00003.mpls)。
CLIPINF目錄中有添加了擴展符clpi的文件(00001.clpi,00002.clpi,00003.clpi)。
STREAM目錄中有添加了擴展符m2ts的文件(00001.m2ts,00002.m2ts,00003.m2ts)。
BDAR目錄中有添加了擴展符jar的文件(00001.jar,00002.jar,00003.jar)??梢钥闯鐾ㄟ^以上的目錄結構,在BD-ROM上配置了彼此不同類別的多個文件。
該圖中添加了擴展符m2ts的文件(00001.m2ts,00002.m2ts,00003.m2ts…)存儲有AVClip。AVClip有MainClip、SubClip的類別。MainClip是通過對視頻流、音頻流、展示圖形流、交互圖形流這樣的多個元素流進行多路復用來得到的數(shù)字流。
SubClip是音頻流、圖形流、文本字幕流等相當于僅一個元素流時的數(shù)字流。
添加了擴展符“clpi”的文件(00001.clpi,00002.clpi,00003.clpi…)是分別一一對應于AVClip的管理信息。由于是管理信息,所以Clip信息具有AVClip中的流的編碼形式、幀頻、比特率、分辨率等信息和表示提示(cue)位置位置的EP_map。
添加了擴展符“mpls”的文件(00001.mpls,00002.mpls,00003.mpls…)是存儲播放列表信息的文件。播放列表信息是參考AVClip來定義播放列表的信息。播放列表由MainPath信息、PLMark信息、SubPath信息構成。
MainPath信息由多個PlayItem信息構成。所謂PlayItem是指在一個以上的AVClip時間軸上,通過指定In_Time,Out_Time來定義的再現(xiàn)區(qū)間。通過配置多個PlayItem信息,來定義由多個再現(xiàn)區(qū)間構成的播放列表(PL)。圖3是表示AVClip和PL的關系的圖。第一級表示AVClip具有的時間軸,第二級表示PL具有的時間軸。PL信息包含PlayItem#1、#2、#3三個PlayItem信息,通過這些PlayItem#1、#2、#3的In_Time,Out_Time來定義三個再現(xiàn)區(qū)間。若排列這些再現(xiàn)區(qū)間,則定義了與AVClip時間軸不同的時間軸。其是第二級表示的PL時間軸。這樣,通過PlayItem信息的定義,可以進行與AVClip不同的時間軸的定義。
對于AVClip的指定原則上是一個,但是也可對多個AVClip統(tǒng)一指定。該統(tǒng)一指定通過PlayItem信息中的多個Clip_Information_file_name來進行。圖4是表示通過4個Clip_Information_file_name來進行的統(tǒng)一指定的圖。該圖中,第一級~第四級表示4個AVClip時間軸(AVClip#1、#2、#3、#4的時間軸),第五級表示PL時間軸。通過PlayItem信息具有的4個Clip_Information_file_name來指定這四個時間軸。由此,通過PlayItem具有的In_Time、Out_Time,來定義可擇一再現(xiàn)的4個再現(xiàn)區(qū)間。由此,在PL時間軸上定義了由可切換的多個角度視頻構成的區(qū)間(所謂的多角度區(qū)間)。
PLmark信息是PL時間軸上將任意的區(qū)間指定為章節(jié)的信息。圖5是表示基于PLmark的章節(jié)定義的圖。該圖中,第一級表示AVClip時間軸,第二級表示PL時間軸。圖中的箭頭pk1、2表示PLmark中的PlayItem指定(ref_to_PlayItem_Id)和一個時刻的指定(mark_time_stamp)。通過這些指定在PL時間軸上定義了三個章節(jié)(Chapter#1、#2、#3)。
SubPath信息由多個SubPlayItem信息構成。SubPlayItem信息通過在SubClip的時間軸上指定In_Time、Out_Time來定義再現(xiàn)區(qū)間。另外,SubPlayItem信息可以進行使SubClip時間軸上的再現(xiàn)區(qū)間與PL時間軸同步的同步指定,通過該同步指定,來使PL時間軸和SubPlayItem信息時間軸同步行進。圖6是表示SubPlayItem時間軸上的再現(xiàn)區(qū)間定義和同步指定的圖。該圖中,第一級表示PL時間軸,第二級表示SubPlayItem時間軸。分別是圖中的SubPlayItem.IN_time表示再現(xiàn)區(qū)間的始點,SubPlayItem.Out_ime表示再現(xiàn)區(qū)間的終點。由此,可以看出在SubCLip時間軸上也定義了再現(xiàn)區(qū)間。箭頭Sn1中Sync_PlayItem_Id表示對于PlayItem的同步指定,箭頭Sn2中sync_start_PTS_of_PlayItem表示PL時間軸中的PlayItem上的一時刻的指定。
可對可切換多個AVClip的多角度區(qū)間、和使AVClip-SubClip同步的同步區(qū)間進行定義,這是BD-ROM中的播放列表信息的特征。將以上的Clip信息和播放信息分類為“靜態(tài)腳本(scenario)”。這是因為通過以上的Clip信息和播放列表信息,定義了作為靜態(tài)再現(xiàn)單位的PL。以上,結束對靜態(tài)腳本的說明。
接著,說明“動態(tài)腳本”。所謂動態(tài)腳本是指動態(tài)規(guī)定AVClip的再現(xiàn)控制的腳本數(shù)據(jù)。所謂“動態(tài)”是指通過再現(xiàn)裝置的狀態(tài)變化和來自用戶的鍵事件再現(xiàn)控制的內容變化。BD-ROM中,作為該再現(xiàn)控制的動作環(huán)境假定了兩個模式。第一個是與DVD再現(xiàn)裝置的動作環(huán)境極其類似的動作環(huán)境,是指令庫的執(zhí)行環(huán)境。第二個是Java虛擬機的動作環(huán)境。這兩個動作環(huán)境中的第一個稱作HDMV模式,第二個稱作BD-J模式。由于有這兩個動作環(huán)境,所以假定其中一個動作環(huán)境來描述動態(tài)腳本。將假定了HDMV模式的動態(tài)腳本稱作Movie對象,通過管理信息來進行定義。另一方面,將假定了BD-J模式的動態(tài)腳本稱作BD-J對象。
首先,開始說明Movie對象。
<Movie對象>
Movie對象是“標題”的構成要素,存儲在文件MovieObject.bdmv中。圖7(a)是表示Movie對象的內部結構的圖。Movie對象由包括屬性信息、多個導航指令的指令串構成。
屬性信息包括在PL時間軸中,進行了MenuCall(調用菜單)時,表示是否想要MenuCall后的再現(xiàn)重新開始的信息(resume_intention_flag);在PL時間軸上表示是否屏蔽了MenuCall的信息(menu_call_mask);和表示是否屏蔽了標題搜索的信息(title_search_flag)。Movie對象可以兼有“時間軸”+“程序控制”兩個性質,從而通過該Movie對象來描述執(zhí)行主再現(xiàn)的標題等多種標題。
導航指令串由實現(xiàn)條件分支、再現(xiàn)裝置中的狀態(tài)寄存器的設定、狀態(tài)寄存器的設定值取得等的指令串構成。下面表示可在Movie對象中描述的指令。
PlayPL指令格式PlayPL(第一自變量,第二自變量)第一自變量是播放列表的號,可指定應再現(xiàn)的PL。第二自變量可以使用該PL中包含的PlayItem和該PL中的任意的時刻、Chapter、Mark來指定再現(xiàn)開始位置。
將用PlayItem指定PL時間軸上的再現(xiàn)開始位置的PlayPL函數(shù)稱作PlayPLatPlayItem();將用Chapter指定PL時間軸上的再現(xiàn)開始位置的PlayPL函數(shù)稱作PlayPLatChapter();將用時間信息指定PL時間軸上的再現(xiàn)開始位置的PlayPL函數(shù)稱作PlayPLatSpecified Time()。
JMP指令格式JMP自變量JMP指令是在中途丟棄(discard)現(xiàn)在的動態(tài)腳本,執(zhí)行作為自變量的分支目標動態(tài)腳本的分支。JMP指令的形式有直接指定分支目標動態(tài)腳本的直接參考形式和間接指定分支目標動態(tài)腳本的間接參考形式。
由于Movie對象中的導航指令的描述與DVD中的導航指令的描述方式極其相似,所以可以高效進行將DVD上的盤內容移植到BD-ROM上的操作。對于Movie對象,存在有在下面的國際公開公報中記載的在先的技術。對于細節(jié),要參考該國際公開公報。
國際公開公報WO2004/074976終止以上對Movie對象的說明。接著說明BD-J對象。
<BD-J對象>
添加了擴展符BD-J的文件(00001.BD-J、00002.BD-J、00003.BD-J)構成BD-J對象。BD-J對象是在Java編程環(huán)境下描述的BD-J模式的動態(tài)腳本。圖7(b)是表示BD-J對象的內部結構的圖。如該圖所示,BD-J對象由與Movie對象同樣的屬性信息、應用程序管理表構成。在具有屬性信息方面,BD-J對象與Movie對象大致相同。與Movie對象不同的是BD-J對象沒有直接描述指令。即,在Movie對象中,控制過程由導航指令來直接描述。與此相對,BD-J對象中,通過在應用程序管理表上定義以該標題為生存區(qū)間的Java應用程序,來間接規(guī)定控制過程。通過這種間接的規(guī)定,可以高效進行在多個標題中使控制過程公共的控制過程的公共化。
圖7(c)是表示Java應用程序的內部結構的圖。該圖中,應用程序由在虛擬機的堆(heap)區(qū)域(還稱作工作存儲器)上裝載的一個以上的xlet程序構成。在該工作存儲器中,一個以上的線程動作,由在工作存儲器上裝載的xlet程序和線程構成應用程序。以上是應用程序的構成。
相當于該應用程序的實體的是在BDMV目錄下的BDAR目錄上存儲的Java歸檔(archive)文件(00001.jar、00002.jar)。下面,說明Java歸檔文件。
Java歸檔文件(00001.jar、00002.jar)是存儲了構成Java應用程序的程序和數(shù)據(jù)的Java歸檔文件。圖8(a)是表示由歸檔文件容納的程序、數(shù)據(jù)的圖。該圖中的數(shù)據(jù)通過java歸檔來整理配置了框內所示的目錄結構的多個文件??騼人镜哪夸浗Y構由root目錄、java目錄、image目錄構成。在root目錄上配置common.pkg,在java目錄上配置aaa.class、bbb.class,在image目錄上配置menu.jpg。java歸檔文件通過java歸檔來整理這些而得到。這些數(shù)據(jù)在每次從BD-ROM向高速緩存器中讀出時解壓,在高速緩存器上,作為在目錄上配置的多個文件進行處理。Java歸檔文件的文件名中的“xxxxx”的5位數(shù)值表示應用程序的ID(applicationID)。在將本Java歸檔文件向高速緩存器讀出時,通過參考該文件名中的數(shù)值,可以取出構成任意的Java應用程序的程序、數(shù)據(jù)。
Java歸檔文件中歸納為一個的文件中有xlet程序。
Xlet程序是可利用JMF(Java Media Frame Work)接口的Java程序。Xlet程序由接收鍵事件的EventListner等多個函數(shù)構成,根據(jù)JMF等的方式,來進行基于所接收的鍵事件的處理。
圖8(b)是表示xlet程序的一例的圖。JMF A“BD//00001.mpls”是向Java虛擬機命令再現(xiàn)PL的播放器實例(player instance)的生成的方法。A.play是向JMF播放器實例命令再現(xiàn)的方法。該JMF播放器實例生成是基于JMF庫(library)進行。Xlet程序的描述并不限于BD-ROM的PL,是可適用于具有時間軸的內容整體的JMF的描述。由于可以進行這種描述,所以可以督促擅長Java編程的軟件進行BD-J對象的生成。
圖8(b)中的JumpTitle()是應用程序API的調用。該應用程序API向再現(xiàn)裝置命令向其他標題的分支(圖中是title#1)。這里所謂應用程序API是指通過BD-ROM再現(xiàn)裝置供給的API(Appliation Interface)。除了JumpTitle指令之外,通過應用程序API的調用,可以將BD-ROM再現(xiàn)裝置特有的處理描述在xlet程序中。
BD-J模式中,PL再現(xiàn)通過JMF接口來規(guī)定。由該JMF播放器實例規(guī)定了PL時間軸,所以標題時間軸由具有JMF播放器實例的標題來規(guī)定。另外,BD-J模式中通過JumpTitleAPI的調用來規(guī)定從標題向標題的分支。由于JumpTitleAPI調用可以說是規(guī)定標題的終止時刻的調用,所以具有這樣的JMF播放器實例、JumpTitleAPI調用的應用程序在BD-J模式中規(guī)定標題的開始和終止。將該應用程序稱作主再現(xiàn)應用程序。
以上是對BD-J模式下的動態(tài)腳本的說明。通過該BD-J模式中的動態(tài)腳本,定義了兼有PL再現(xiàn)和程序控制的標題。另外,在本實施方式中,將構成應用程序的程序、數(shù)據(jù)整理為Java歸檔文件,但是也可以是LZH文件、zip文件。
<標題時間軸>
結束了對構成標題的靜態(tài)腳本、動態(tài)腳本的說明后,說明通過這些來定義怎樣的時間軸。將用標題定義的時間軸稱作“標題時間軸”。所謂標題時間軸是由通過Movie對象或BD-J對象命令再現(xiàn)的PL構成。這里舉出一例的是如圖9(a)這樣的標題。該標題是頂部菜單→title#1→title#2→頂部菜單、頂部菜單→title#3→頂部菜單的一系列的標題。這些標題中,若title#1命令PlayList#1、PlayList#2的再現(xiàn),title#2命令PlayList#3的再現(xiàn),title#3指令PlayList#4的再現(xiàn),則如圖9(b)那樣,title#1具有將PlayList#1、PlayList#2的時間軸相加的時間軸。同樣,title#2具有由PlayList#3時間軸構成的時間軸,PlayList#3具有由PlayList#4時間軸構成的時間軸。在這些標題時間軸的PL時間軸上保證了無縫再現(xiàn),但是在標題時間軸間不需要保證無縫再現(xiàn)。每次Java應用程序動作時,必需將可以在虛擬機的工作存儲器上存在Java應用程序的期間(服務期間)定義在這樣的標題時間軸上。在BD-J模式中,每次Java應用程序動作時,必需在彼此互相分支的時間軸上定義Java應用程序的服務期間。該服務期間的定義是每次進行面向BD-J的編程時的注意點。
最后,說明index.bdmv中所存儲的IndexTabel。IndexTable是使標題號、Movie對象、BD-J對象對應的表,是在從動態(tài)腳本向動態(tài)腳本分支時所參考的間接參考用表。IndexTable由分別對多個標簽的Index構成。各Index描述了對應于該標簽的動態(tài)腳本的識別符。通過參考這種IndexTable,可以實現(xiàn)分支,而不用嚴格區(qū)分Movie對象、BD-J對象的不同。對于IndexTable其細節(jié)記載在下面的國際公開公報中。對于細節(jié)要參考該公報。
國際公開公報WO2004/025651A1公報以上是對BD-ROM上記錄的文件的說明。
<應用程序管理表>
具有JMF播放器實例、JumpTitleAPI調用的應用程序規(guī)定標題時間軸的情況如上那樣,但是在標題時間軸上使不具有JMF播放器實例、JumpTitleAPI調用的其他應用程序動作的情況下,明確規(guī)定從時間軸的何處開始基于應用程序的服務,在時間軸的何處終止基于應用程序的服務的“服務開始點·終止點”很重要。在本實施方式中,將開始基于應用程序的服務后到終止定義為“應用程序的生存”。用于定義應用程序的生存的信息存在于BD-J對象的應用程序管理表中。之后更詳細地說明應用程序管理表。
應用程序管理表(AMT)是在各標題具有的標題時間軸中,表示在虛擬機的工作存儲器上可生存的應用程序的信息。所謂工作存儲器中的生存是指可向工作存儲器讀出構成該應用程序的xlet程序,并進行基于虛擬機的執(zhí)行的狀態(tài)。圖7(b)中的虛線箭頭at1展開(closeup)表示應用程序管理表的內部結構。如該內部結構所示,應用程序管理表由“生存區(qū)間”、表示將該標題作為生存區(qū)間的應用程序的“applicationID”和該應用程序的“啟動屬性”構成。
在不久的將來,將要實施的盤內容選作題材,而摻雜具體例來說明應用程序管理表中的生存區(qū)間描述。這里作為題材的盤內容包含構成主視頻的主標題(title#1)、構成在線購物的在線購物標題(title#2)、構成游戲應用程序的游戲標題(title#3)這三個特性不同的標題。圖10表示包含主標題、在線購物標題、游戲標題三個標題的盤內容的圖。在該圖中的右側描述了IndexTable,左側描述了三個標題。
右側的虛線框表示各應用程序屬于哪個標題的隸屬關系。三個標題中,title#1由application#1、application#2、application#3三個應用程序構成。title#2包含application#3、application#4兩個應用程序,title#3包含application#5。圖11是表示圖10所示的三個標題的再現(xiàn)圖像的一例的圖。在這三個標題的再現(xiàn)圖像中,在圖11(a)、(b)的主標題、在線購物標題上存在以購物車為基礎的影像(車cr1)1,在圖11(c)的游戲標題上不存在車影像。由于車cr1需要在主標題、在線購物標題中公共顯示,所以在title#1、title#2兩者中啟動作為車應用程序的application#3。這種多個標題中啟動的應用程序上除了上述的車應用程序之外,還有根據(jù)模仿視頻作品中出現(xiàn)的MASCOT(自動過程計算機操作測試)的代理應用程序、菜單調用操作來進行菜單顯示的菜單應用程序。
若根據(jù)圖10的虛線所示的隸屬關系來將各應用程序的生存區(qū)間圖表化,則變?yōu)槿鐖D12(a)。該圖中,橫軸表示標題時間軸,縱軸方向上配置了各應用程序的生存區(qū)間。這里由于application#1、application#2僅屬于title#1,所以這些生存區(qū)間留在title#1內。由于application#4僅屬于title#2,所以其生存區(qū)間僅留在title#2內。由于application#5僅屬于title#3,所以其生存區(qū)間僅留在title#3內。由于application#3屬于title#1、title#2,所以其生存區(qū)間經過title#1-title#2。若根據(jù)該生存區(qū)間,來描述應用程序管理表,則title#1,#2,#3的應用程序管理表變?yōu)槿鐖D12(b)所示。若這樣來描述應用程序管理表,則在title#1的再現(xiàn)開始時,將application#1、application#2、application#3裝載在工作存儲器中。并且,在title#2開始時,進行從工作存儲器中刪除application#1、application#2,僅設為application#3的控制。與此相同,在title#2的開始時,進行將application#4裝載在工作存儲器中,在title#3的開始時,進行從工作存儲器中刪除application#3、application#4的控制。
進一步,進行在title#3的再現(xiàn)中,將application#5裝載在工作存儲器中,并在title#3的再現(xiàn)終止時,從工作存儲器中刪除application#5的控制。
由于在有標題間分支的情況下,將在分支源一分支目標中生存的應用程序存儲在工作存儲器上,將僅在分支目標而不在分支源存在的應用程序讀入到工作存儲器中就可以,所以將應用程序讀入到工作存儲器的次數(shù)為必要最低次數(shù)。這樣,通過減小讀入次數(shù),可以實現(xiàn)不會意識到標題的邊界的應用程序,即,無邊際的應用程序。
接著說明應用程序的啟動屬性。啟動屬性有表示自動的啟動的“AutoRun”、表示不是自動啟動的對象,但是也可放在虛擬機的工作存儲器上的“Persistent”、雖然放在虛擬機的工作存儲器上,但是不能進行CPU功率的分配的“Suspend”。
“AutoRun”是與對應的標題的分支一起將該應用程序讀入到工作存儲器中,且表示執(zhí)行的內容的生存區(qū)間。若存在從某個標題向其他標題的分支,則進行應用程序管理的管理主體(應用程序管理器)將在該分支目標標題中生存,且啟動屬性設定為AutoRun的應用程序向虛擬機的工作存儲器的讀入來進行執(zhí)行。由此,該應用程序與標題分支一起來自動啟動。作為將啟動屬性設定為AutoRun的應用程序,可舉出具有JMF播放器實例和JumpTitleAPI調用這樣的應用程序。這是因為這種應用程序是規(guī)定標題時間軸側的應用程序,若不自動啟動這種應用程序,標題時間軸的概念不清。
啟動屬性“Persisten”是繼續(xù)屬性,表示繼續(xù)分支源標題中的應用程序的狀態(tài)。另外,是表示也可裝載在工作存儲器中的屬性。在啟動屬性是“Persistent”的情況下,添加了該啟動屬性的應用程序允許來自其他應用程序的調用。進行應用程序管理的管理主體(應用程序管理器)若從啟動中的應用程序有調用,則將該應用程序的applicationID描述在應用程序管理表中,并判斷啟動屬性是否是“Persistent”。若是“Persistent”,則將該應用程序裝載在工作存儲器中。另一方面,在沒有將該調用目標應用程序的applicationID描述在應用程序管理表上的情況下,不將該應用程序裝載在工作存儲器中?;趹贸绦虻恼{用限于添加了該“Persistent”的應用程序。
由于“Persistent”是沒有明示指定啟動屬性的情況下所添加的缺省的啟動屬性,所以在某個應用程序的啟動屬性是無指定“——”的情況下,是指該應用程序的啟動屬性是該Persistent。
說明這些啟動屬性在圖11的應用程序中怎樣描述。圖13是對于圖12的三個應用程序的啟動屬性的設定例。圖12所示的三個應用程序中application#2如圖13(b)所示,設為有來自其他應用程序的應用程序調用、并開始啟動的應用程序。與其余的application#1、application#3是與title#1的開始同時自動啟動的應用程序。這時,如圖13(a)所示,將應用程序管理表中的各應用程序的啟動屬性application#1、application#3設作“AutoRun”,將application#2設作“Persistent”。這時,application#1、application#3在向title#1的分支時自動裝載在工作存儲器中來執(zhí)行。另一方面,由于application#2的啟動屬性是“Persistent”,所以解釋為“application#3是可裝載在虛擬機的工作存儲器上的應用程序”的消極含義。因此,application#2在有來自application#1的調用時才裝載在虛擬機的工作存儲器上并執(zhí)行。通過以上的生存區(qū)間·啟動屬性,將可在虛擬機上動作的應用程序的數(shù)目限制為4個以下,可以將總線程數(shù)限制為64個以下,所以可以保證應用程序的穩(wěn)定動作。
接著,說明Suspend。
所謂Suspend是指在分配了資源,但是沒有分配CPU功率的狀態(tài)下放置應用程序的情況。該Suspend對例如在游戲標題的執(zhí)行中,經過旁路(sidepass)的處理有意義。圖14(a)(b)是表示Suspend有意義的事例的圖。如圖14(b)所示,有三個標題(title#1、title#2、title#3),其中title#1、title#3執(zhí)行游戲應用程序,但是中間的title#2是旁路,用來實現(xiàn)視頻再現(xiàn)。在旁路中,由于需要實現(xiàn)視頻再現(xiàn),所以使游戲的執(zhí)行中斷。由于在游戲應用程序中計數(shù)了過程中的分數(shù)等,所以要在title#2的前后維持資源的存儲植。這時,描述應用程序管理表,使其在title#2的開始時刻掛起游戲應用程序,在title#3的開始時刻重新開始application#2。由此,由于在title#2中,application#2分配了資源,所以維持了資源的存儲植。但是,由于是沒有分配CPU功率的狀態(tài),所以不會通過虛擬機來執(zhí)行application#2。由此,在游戲標題的執(zhí)行中,實現(xiàn)了執(zhí)行旁路的處理。
圖15是表示啟動屬性可取的三種形態(tài)(Persistent、AutoRun、Suspend)和最近前面的標題中的應用程序狀態(tài)的三種形態(tài)(非啟動、啟動中、Suspend)可取的組合的圖。在最近前面狀態(tài)是“非啟動”的情況下,若啟動屬性是“AutoRun”,則在分支目標標題中,啟動該應用程序。
若最近前面狀態(tài)是“非啟動”,啟動屬性為“Persistent”、“Suspend”,則分支目標標題中,其應用程序什么都不做,繼續(xù)狀態(tài)。
在最近前面狀態(tài)是“啟動中”的情況下,若啟動屬性為“Persistent”、“Suspend”,則分支目標標題中,其應用程序什么都不做,繼續(xù)狀態(tài)。
若啟動屬性為“Suspend”,則應用程序的狀態(tài)為掛起。在最近前面狀態(tài)為“Suspend”的情況下,若分支目標標題的啟動屬性是“Suspend”,則維持掛起。若為“Persistent”、“AutoRun”,則在分支目標標題中,重新開始該應用程序。通過在應用程序管理表中定義生存期間和啟動屬性,沿著標題時間軸的行進,可以進行使Java應用程序動作的同步控制,可以特別送出伴隨視頻再現(xiàn)、應用程序執(zhí)行的各種應用程序。以上是對于記錄媒體的說明。接著說明本發(fā)明的再現(xiàn)裝置。
圖16是表示本發(fā)明的再現(xiàn)裝置的內部結構的圖。本發(fā)明的再現(xiàn)裝置根據(jù)該圖所示的內部結構來進行工業(yè)生產。本發(fā)明的再現(xiàn)裝置主要由系統(tǒng)LSI和驅動裝置的兩個部件構成,通過將這些部件安裝在裝置的殼體和基板上來可進行工業(yè)生產。系統(tǒng)LSI是集成了實現(xiàn)再現(xiàn)裝置的功能的各種處理部的集成電路。這樣生產的再現(xiàn)裝置由BD-ROM驅動器1、讀緩存器2、多路分配器3、視頻譯碼器4、視頻平面5、P-Graphics譯碼器9、展示圖形平面10、合成部11、字體生成器12、I-Graphics譯碼器13、開關14、交互圖形平面15、合成部16、HDD17、讀緩存器18、多路分配器19、音頻譯碼器20、腳本(scenario)存儲器21、CPU22、鍵事件處理部23、指令ROM24、開關25、CLUT部26、PSR組28、本地存儲器29構成。
BD-ROM驅動器1進行BD-ROM的裝載/注入,執(zhí)行對于BD-ROM的訪問。
讀緩存器2是FIFO存儲器,以先入先出方式存儲從BD-ROM中讀出的TS包。
多路分配器(De-MUX)3從讀緩存器2中取出TS包,并將構成該TS包的TS包轉換為PES包。并且,將通過轉換得到的PES包中具有由CPU22設定的PID的包輸出到視頻譯碼器4、音頻譯碼器20、P-Graphics譯碼器9和I-Graphics譯碼器13中之一。
視頻譯碼器4解碼從多路分配器3輸出的多個PES包后得到非壓縮形式的圖像,并寫入到視頻平面5上。
視頻平面5是用于存儲非壓縮形式的圖像的平面。所謂平面是指在再現(xiàn)裝置中存儲一個畫面的象素數(shù)據(jù)用的存儲器區(qū)域。在再現(xiàn)裝置上設置多個平面,按每個象素來相加這些平面的存儲內容,進行視頻輸出時,可以在合成多個視頻內容之后,進行視頻輸出。視頻平面5中的分辨率為1920×1080,在該視頻平面5上存儲的圖像數(shù)據(jù)由以16比特的YUV值表現(xiàn)的象素數(shù)據(jù)構成。
P-Graphics譯碼器9對從BD-ROM、HDD17中讀出的展示圖形流進行譯碼,并將非壓縮圖形寫入到展示圖形平面10中。通過圖形流的譯碼,在畫面上表現(xiàn)字幕。
展示圖形平面10是具有一個畫面的區(qū)域的存儲器,可以存儲一個畫面的非壓縮圖形。本平面的分辨率是1920×1080,展示圖形平面10中的非壓縮圖形的各象素用8比特的索引彩色來表示。通過使用CLUT(Color LookupTable)來轉換該索引彩色,來將在展示圖形平面10中存儲的非壓縮圖形供給顯示。
合成部11將非壓縮狀態(tài)的圖像數(shù)據(jù)(i)與展示圖形平面10的存儲內容合成。
字體生成器12使用文字字體,將textST流中包含的文本碼展開為位圖。
I-Graphics譯碼器13對從BD-ROM或HDD17中讀出的交互圖形流進行譯碼,并將非壓縮圖形寫入到交互圖形平面15上。
開關14是將字體生成器12生成的字體串、通過P-Graphics譯碼器9的譯碼得到的圖形中的某一個有選擇地寫入到展示圖形平面10的開關。
交互圖形平面15寫入基于I-Graphics譯碼器13進行的譯碼得到的非壓縮圖形。
合成部16合成交互圖形平面10的存儲內容和作為合成部8的輸出的合成圖像(合成了非壓縮狀態(tài)的圖像數(shù)據(jù)和展示圖形平面7的存儲內容的內容)。
HDD17是存儲了經網(wǎng)絡等下載的SubClip、Clip信息、播放列表信息的內置媒體。在該HDD17中的播放列表信息即使是存在于BD-ROM和HDD17的其中之一的Clip信息,在可以進行指定的方面不同。每次該指定時,HDD17上的播放列表信息不需要通過全路徑(full path)指定BD-ROM上的文件。這是因為本HDD17與BD-ROM為一體,作為虛擬的一個驅動器(稱作虛擬包),通過再現(xiàn)裝置來識別。因此,PlayItem信息中的Clip_Information_file_name和SubPlayItem信息的Clip_Information_file_name,通過指定相當于存儲了Clip信息的文件的文件主體的5位數(shù)值,可以指定HDD17、BD-ROM上的AVClip。通過讀出該HDD的記錄內容,并與BD-ROM的記錄內容動態(tài)組合,可以產生各種不同的再現(xiàn)。
讀緩沖器18是FIFO存儲器,以先入先出的形式來存儲從HDD17讀出的TS包。
多路分配器(De-MUX)19從讀緩存器18取出TS包,并將TS包轉換為PES包。并且,將通過轉換得到的PES包中具有希望的streamPID的包輸出到字體生成器12中。
音頻譯碼器20對從多路分配器19輸出的PES包進行譯碼,并輸出非壓縮形式的音頻數(shù)據(jù)。
腳本存儲器21是用于存儲當前的PL信息和當前的Clip信息的存儲器。所謂當前PL信息是指BD-ROM中記錄的多個PL信息中作為當前處理對象的信息。所謂當前Clip信息是指在BD-ROM中記錄的多個Clip信息中,作為當前處理對象的信息。
CPU22執(zhí)行在指令ROM24中存儲的軟件,并執(zhí)行再現(xiàn)裝置整體的控制。
鍵事件處理部23根據(jù)對于遙控器和再現(xiàn)裝置的前面板的鍵操作,輸出進行該操作的鍵事件。
指令ROM24存儲規(guī)定再現(xiàn)裝置的控制的軟件。
開關25是將從BD-ROM和HDD17讀出的各種數(shù)據(jù)有選擇地輸入到讀緩存器2、讀緩存器18、腳本存儲器21、本地存儲器29中某一個的開關。
CLUT部26將視頻平面5中存儲的非壓縮圖形中的索引彩色轉換為Y,Cr,Cb值。
CLUT部27將交互圖形平面15中存儲的非壓縮圖形中的索引彩色轉換為Y,Cr,Cb值。
PSR組28是內置在再現(xiàn)裝置中的寄存器,由64個播放器狀態(tài)寄存器(PSR)和4096個通用寄存器(GPR)構成。播放器狀態(tài)寄存器的設定值(PSR)中PSR4~PSR8用于表現(xiàn)當前的再現(xiàn)時刻。
PSR4通過設定為1~100的值,表示當前的再現(xiàn)時刻所屬的標題,通過設定為0,表示當前的再現(xiàn)時刻是頂端菜單。
PSR5通過設定為1~999的值,表示當前的再現(xiàn)時刻所屬的章節(jié)號,通過設定為0xFFFF,表示再現(xiàn)裝置中章節(jié)號無效。
PSR6通過設定為0~999的值,表示當前的再現(xiàn)時刻所屬的PL(當前PL)的號。
PSR7通過設定為0~255的值,表示當前的再現(xiàn)時刻所屬的Play Item(當前Play Item)的號。
PSR8通過設定為0~0xFFFFFFFF的值,而使用45KHz的時間精度來表示當前的再現(xiàn)時刻(當前PTM(Presentation Time))。通過以上的PSR4~PSR8,來確定當前的再現(xiàn)時刻。
本地存儲器29由于從BD-ROM的讀出為低速,所以是用于暫時存儲BD-ROM的記錄內容的高速緩存器。因存在該本地存儲器29,可以使BD-J模式中的應用程序執(zhí)行高效。圖17(a)是表示在本地存儲器29上怎樣識別BD-ROM中存在的Java歸檔文件的圖。圖17(a)的表中,在左欄表示BD-ROM上的文件名,在右欄表示本地存儲器29上的文件名。若比較這些右欄、左欄,可以看出通過省去目錄指定“BDJA”的文件路徑來指定本地存儲器29中的文件。
圖17(b)是表示圖17(a)的應用的圖。本應用例以頭+數(shù)據(jù)的形式存儲文件中所存儲的數(shù)據(jù)。將本地存儲器9中的文件路徑用于頭。如圖17(b)所示,由于在本地存儲器29中將省略了BD-ROM中的文件路徑的一部分的內容用于文件路徑,所以通過將該文件路徑存儲在頭中,可以明確各數(shù)據(jù)在BD-ROM中的位置。
以上是本實施方式的再現(xiàn)裝置的硬件結構。接著,說明本實施方式中的再現(xiàn)裝置的軟件結構。
圖18是將由ROM24中存儲的軟件和硬件構成的部分轉換為層結構來描述的圖。如該圖所示,再現(xiàn)裝置的層結構由下面的a)、b)、c)、d-1)、d-2)、e)、f)構成。即,在a)物理的硬件等級上存在b)控制基于AVClip的再現(xiàn)的展示引擎31、和c)進行基于播放列表信息和Clip信息的再現(xiàn)控制的重放控制引擎32的這兩個等級,在最上層的等級上有e)執(zhí)行標題間的分支的模塊管理器34。
在這些HDMV模塊33、模塊管理器34之間,d-1)作為Movie對象的譯碼·執(zhí)行主體的HDMV模塊33、和d-2)進行BD-J對象的譯碼·執(zhí)行的BD-J模塊35放在同一等級上。
BD-J模塊35是所謂的Java平臺,為包含工作存儲器37的Java虛擬機38為核心的結構,由應用程序管理器36、事件監(jiān)聽管理器(event listnermanager)39、缺省操作管理器40構成。首先,最先說明展示引擎31~模塊管理器34。圖19是將基于展示引擎31~模塊管理器34的處理模式化的圖。
展示引擎31執(zhí)行AV再現(xiàn)功能。所謂再現(xiàn)裝置的AV再現(xiàn)功能是指從DVD播放器、CD播放器繼承的傳統(tǒng)的功能群,是再現(xiàn)開始(Play)、再現(xiàn)停止(Stop)、暫時停止(Pause ON)、暫時停止的解除(Pause Off)、靜止功能的解除(Still off)、帶速度指定的快進(Forward Play(speed))、帶速度指定的倒帶(Backward Play(speed))、聲音切換(Audio Change)、副視頻切換(Subtitle Change)、角度切換(Angle Change)的功能。為實現(xiàn)AV再現(xiàn)功能,展示引擎31控制視頻譯碼器4、P-Graphics譯碼器9、I-Graphics譯碼器13和音頻譯碼器20,以進行讀出到讀緩存器2上的AVClip中相當于希望時刻的部分的譯碼。作為希望的時刻,通過進行PSR8(當前PTM)所示的位置的解釋,在AVClip中,可以再現(xiàn)任意的時刻。圖中的◎1將基于展示引擎31的譯碼開始模式化來進行表示。
再現(xiàn)控制引擎(Playback Control Engine(PCE))32執(zhí)行播放列表的再現(xiàn)功能(i)、再現(xiàn)裝置中的狀態(tài)取得/設定功能(ii)的各功能。所謂PL的再現(xiàn)功能是指根據(jù)當前PL信息和Clip信息來進行展示引擎31進行的AV再現(xiàn)功能中的再現(xiàn)開始和再現(xiàn)停止。根據(jù)來自HDMV模塊33~BD-J模塊35的應用程序調用來執(zhí)行這些功能(i)~(ii)。即,再現(xiàn)控制引擎32根據(jù)基于用戶操作的指示、來自層模塊中的上層位置的指示,來執(zhí)行自身的功能。圖19中,帶◎2◎3的箭頭將重放控制引擎32對Clip信息和播放列表信息的參考模式化來表示。
HDMV模塊33是MOVIE模式的執(zhí)行主體,若從模塊管理器34通知構成分支目標的Movie對象,則將構成分支目標標題的Movie對象讀出到本地存儲器29中,并對在該Movie對象中描述的導航指令進行譯碼,根據(jù)譯碼結果來執(zhí)行對重放控制引擎32的應用程序調用。圖19中帶2、3、4的箭頭,將來自模塊管理器34的分支目標Movie對象的通知(2)、Movie對象中描述的導航指令的譯碼(3)、對于重放控制引擎32的應用程序調用(4)模式化來表示。
模塊管理器34保持從BD-ROM中讀出的索引表,并進行分支控制。該分支控制在HDMV模塊33執(zhí)行JumpTitle指令的情況下,或從BD-J模塊35調用標題跳轉API的情況下,接收作為該跳轉目標的跳轉號,并向HDMV模塊33或BD-J模塊35通知構成該標題的Movie對象或BD-J對象。圖中的帶0、1、2的箭頭將JumpTitle指令的執(zhí)行(0)、模塊管理器34進行的IndexTable參考(1)和分支目標Movie對象(2)的通知模式化來表示。
以上是對展示引擎31~模塊管理器34的說明。接著,參考圖20來說明應用程序管理器36。圖20是表示應用程序管理器36的圖。
應用程序管理器36執(zhí)行參考了應用程序管理表的應用程序的啟動控制、執(zhí)行標題正常終止時的控制。
所謂啟動控制是指在每次從模塊管理器34通知作為分支目標的BD-J模塊時,讀出該BD-J對象,并參考該BD-J對象內的應用程序管理表來進行本地存儲器29訪問。并且,所謂啟動控制是將構成把當前的再現(xiàn)時刻作為生存區(qū)間的應用程序的xlet程序讀出到工作存儲器的控制。圖20中的☆1、☆2、☆3將啟動控制中的分支目標BD-J對象的通知(1)、應用程序管理表參考(2)、對于Java虛擬機38的啟動指示模式化來表示。通過該啟動指示,Java虛擬機38從本地存儲器29讀出xlet程序到工作存儲器37(☆5)。
標題的終止控制有正常終止時的控制和異常終止時的控制。正??刂茣r的控制,有通過構成標題的應用程序來調用跳轉標題API、并向分支控制的主體(模塊管理器34)請求向分支目標標題的切換的控制。該終止控制中的將模塊管理器34通知模式化表示的是箭頭☆6。這里,每次正常終止標題時,也可原樣啟動構成標題的應用程序。這是因為在分支目標標題中判斷是否終止應用程序。在本實施方式中雖然沒有較深地涉及到,但是應用程序管理器36進行從BD-ROM向本地存儲器29讀出Java歸檔文件(8)的處理。將向該本地存儲器29的讀出模式化的是☆8。
以上是對應用程序管理器36的說明。接著,參考圖21來說明工作存儲器37~缺省操作管理器40。
工作存儲器37是配置了構成應用程序的xlet程序的群區(qū)域。工作存儲器37本來存在于Java虛擬機38內,但是在圖21中,為了作圖的方便,在Java虛擬機38上層位置描述工作存儲器37。工作存儲器37上的xlet程序包含EventListner和JMF播放器實例。
Java虛擬機38將構成應用程序的xlet程序裝載在工作存儲器37上,對xlet程序進行譯碼,來執(zhí)行基于譯碼結果的處理。如上所述,由于xlet程序包含命令JMF播放器實例生成的方法和命令該JMF播放器實例的執(zhí)行的方法,所以為了實現(xiàn)通過這些方法命令的處理內容,進行對于下層的控制。若命令JMF播放器實例生成,則Java虛擬機38得到與BD-ROM上的YYYY.MPLS文件相關的JMF播放器實例。另外,若指令JMF播放器實例中的JMF方法的執(zhí)行,則向BD中間件發(fā)出該JMF方法,并置換為BD再現(xiàn)裝置對應的應用程序調用。并且,向重放控制引擎32發(fā)出置換后的應用程序調用。
事件監(jiān)聽管理器39分析通過用戶操作生成的事件(鍵事件),并進行事件的分配。圖中的實線箭頭◇l、◇2將基于該事件監(jiān)聽管理器39的分配進行模式化來表示。若是SRART、STOP、SPEED等在xlet程序內的EventListner上登記的鍵事件,則分配通過BD-J對象間接參考的有關xlet程序的事件。START、STOP、SPEED是對應于JMF的事件,由于在xlet程序的Event Listner上登記了這些鍵事件,所以通過本鍵事件可以進行xlet程序的啟動。在鍵事件是Event Listner未登記的鍵事件的情況下,將本鍵事件分配給缺省操作管理器40。這是因為聲音切換、角度切換等BD-ROM再現(xiàn)裝置中產生的鍵事件上存在沒有在Event Listner上登記的各種事件,即使產生了這些鍵事件,也執(zhí)行沒有遺漏的處理。
缺省操作管理器40若從事件監(jiān)聽管理器39分配沒有在xlet程序內的Event Listner上登記的鍵事件,則對重放控制引擎32執(zhí)行對應于該EventListner未登記事件的應用程序調用。模式化地表示基于該缺省操作管理器40的應用程序調用是圖中的箭頭◇3。另外,雖然圖21中通過事件監(jiān)聽管理器39、缺省操作管理器40來分配Event Listner未登記事件,但是也可以由重放控制引擎32直接接收EventListner未登記事件,來進行再現(xiàn)控制(圖中的◇4)。
(流程圖的說明)以上的對于應用程序管理器36的說明不過是涉及其概要。更詳細地表示應用程序管理器36的處理的是圖22、圖23的流程圖。之后,參考這些流程圖來更詳細說明應用程序管理器36的處理過程。
圖22是表示基于應用程序管理器36的分支時的控制過程的圖。本流程圖是啟動或終止?jié)M足步驟S2~步驟S5構成的條件的應用程序(是指應用程序x)的處理。
步驟S2中判斷是否存在應用程序x,該應用程序x雖然在分支源標題中為非啟動、但在分支目標標題中生存、且分支目標標題中的啟動屬性是AutoRun屬性,并且若存在該應用程序x,則進行對于本地存儲器29的高速緩存?zhèn)鞲?。若高速緩存?zhèn)鞲械慕Y果,在本地存儲器29上有應用程序x(步驟S7中”是”),則從本地存儲器29向工作存儲器37讀入應用程序x(步驟S8)。若本地存儲器29中沒有,則從BD-ROM向本地存儲器29讀入應用程序x后,從本地存儲器29向工作存儲器37讀入應用程序x(步驟S9)。
步驟S3中判斷是否存在分支源標題中為啟動中、且在分支目標標題中非生存的應用程序x。若存在,則從工作存儲器37中刪除應用程序x后終止(步驟S10)。
步驟S4中判斷是否存在分支源Suspend、分支目標AutoRun或Persistent的應用程序。若存在,則重新開始應用程序x(步驟S11)。
步驟S5中判斷是否存在在分支源標題中為啟動中、且分支目標Suspend的應用程序。若存在,則掛起應用程序x(步驟S12)。
每次各應用程序終止時的應用程序管理器36的處理如圖23所示。圖23是表示應用程序終止處理的處理過程的流程圖。該圖示出分別對于應終止的多個應用程序重復進行步驟S16~步驟S20的處理的循環(huán)處理(步驟S15)。在本循環(huán)處理中,應用程序管理器36發(fā)出要終止啟動中應用程序的終止事件(步驟S16),進行定時器設置(步驟S17),并進入到由步驟S18~步驟S20構成的循環(huán)處理。若Event Listner接收到該終止事件,則對應的xlet程序啟動終止處理。若終止處理終止,則從工作存儲器37中釋放該xlet程序,并終止。
在步驟S18~步驟S20的循環(huán)處理的繼續(xù)中,定時器持續(xù)計數(shù)。在本循環(huán)處理中,步驟S18是發(fā)送目標應用程序是否終止的判斷,若已終止,則終止對該應用程序的處理。步驟S19是定時器是否超時的判斷,若超時,則在步驟S20中,從工作存儲器37中刪除發(fā)送目標應用程序來強制終止應用程序。
參考圖24來說明以上的模塊管理器34的處理。
圖24是模式地表示應用程序終止的過程的圖。該圖中的第一級表示應用程序管理器36,第二級表示三個應用程序。圖24的第二級、左側的應用程序表示接收終止事件后,終止處理成功的應用程序。圖24的第二級、中間的應用程序表示接收終止事件后,終止處理失敗的應用程序。第二級、右側的應用程序由于沒有安裝EventListner,故表示不能接收終止事件的應用程序。
第一級一第二級的箭頭ep1、ep2模式地表示基于應用程序管理器的終止事件發(fā)送,箭頭ep3模式地表示終止處理啟動。
第三級是終止處理成功時的狀態(tài)轉移后的狀態(tài),該應用程序通過本身的終止處理來終止。若存在如這些xlet程序那樣,在預定期間內有沒有終止的應用程序,則應用程序管理器36從工作存儲器37中強制去除這些。第四級表示基于應用程序管理器36的強制終止。規(guī)定該第四級的強制終止也是應用程序管理器36的一個任務。
如上所述,根據(jù)本實施方式,由于自動終止在分支源標題中啟動并在分支目標標題中不生存的應用程序,所以即使在通過帶條件的分支再現(xiàn)復雜地進行的情況下,不會進行超過再現(xiàn)裝置的資源的界限的數(shù)目的應用程序啟動。由于可以保證分支前后的應用程序動作,所以可以更多地發(fā)布邊再現(xiàn)數(shù)字流邊執(zhí)行應用程序的盤內容。
(第二實施方式)第一實施方式中應用程序的生存區(qū)間與標題時間軸一致,但是第二實施方式提出了將PL時間軸的一部分作為應用程序的生存區(qū)間的方案。由于PL時間軸的一部分通過章節(jié)來表現(xiàn),所以通過由章節(jié)來描述開始點、終止點,可以規(guī)定應用程序的生存區(qū)間。圖25(a)是表示在PL時間軸上規(guī)定生存區(qū)間的應用程序管理表的圖。圖25(a)中,在應用程序管理表中描述了三個應用程序,其中application#2將title#1的Chapter#2到Chapter#3指定為生存區(qū)間,并在啟動屬性上規(guī)定了AutoRun。因此,application#2如圖25(b)所示,在Chapter#2的起點啟動,并在Chapter#3的終點終止。
另一方面,application#3將title#1的Chapter#4到Chapter#6指定為生存區(qū)間。因此,application#3如圖25(b)所示,在Chapter#4的起點啟動,在Chapter#6的終點終止。
為了根據(jù)這樣描述的應用程序管理表進行處理,本實施方式的應用程序管理器36在每次達到通過Plmark指定的章節(jié)起始點時,判斷是否存在生存區(qū)間從該章節(jié)起始點開始的應用程序,若存在,則將該應用程序裝載到工作存儲器37中。
同樣,在每次到達章節(jié)起始點時,判斷在該章節(jié)最近前面的章節(jié)中是否存在生存區(qū)間終止的應用程序,若存在,則從工作存儲器37中釋放該應用程序。
若以章節(jié)為單位來管理應用程序的生存,則可以以更精細的精度來指定應用程序的生存區(qū)間。但是,必須注意在盤內容上可以有時間軸的反向。所謂反向是指通過倒帶使時間軸反向行進。若在章節(jié)的邊界重復進行該反向和行進,則幾次進行向工作存儲器的裝載、廢棄,產生了多余的讀出負載。因此,在本實施方式中,應用程序的啟動時期為進入標題而開始基于重放控制引擎32的通常再現(xiàn)的瞬間。這里PL的再現(xiàn)有通常再現(xiàn)、技巧(trick)再現(xiàn)。所謂技巧再現(xiàn)有快進、倒帶、跳下一個(SkipNext)、跳上一個(SkipBack)。在進行該快進、倒帶、SkipNext、SkipBack的期間,不開始應用程序啟動,而開始通常再現(xiàn)后,開始啟動應用程序。在通過以通常再現(xiàn)開始的瞬間為基準,有如上所述的生存區(qū)間前后的到來的情況下,不需要重復需要以上的應用程序的啟動。另外,也可在生存區(qū)間為title的情況下,執(zhí)行將通常再現(xiàn)開始的瞬間作為應用程序的啟動基準的處理。
如上所述,根據(jù)本實施方式,由于可以以比PL小的章節(jié)為單位來規(guī)定應用程序的生成區(qū)間,所以可以實現(xiàn)精細的應用程序控制。
(第二實施方式的變形例)圖25中,向各應用程序添加優(yōu)先級。該優(yōu)先級取0~255的值,在應用程序之間資源的使用沖突等沖突了的情況下,每次應用程序管理器36進行將使其中一個應用程序強制終止,或從其中一個應用程序爭奪資源的處理時,上述優(yōu)先級的值成為判斷材料。圖25的一例中,由于application#1的優(yōu)先級為255,application#2、application#3的優(yōu)先級為128,所以在application#1-application#2沖突時,應用程序管理器36進行強制終止優(yōu)先級低的application#2的處理。
(第三實施方式)由BD-ROM供給的盤內容由可彼此分支的多個標題構成。各標題除了由一個以上的PL和使用該PL后的控制過程構成之外,有僅由對再現(xiàn)裝置的控制過程構成的非AV系標題。本實施方式說明該非AV系標題。
在這種非AV系標題中,問題為怎樣來決定標題時間軸。圖26(a)表示從PL時間軸決定的標題時間軸。這時PL時間軸為標題時間軸,在該標題時間軸上決定應用程序的生存區(qū)間。在沒有作為該基準的PL時間軸的情況下,標題時間軸應如圖26(b)、(c)那樣來決定。
圖26(b)表示從主要的應用程序的生存區(qū)間決定的標題時間軸。所謂主應用程序是指在標題中將啟動屬性設定為AutoRun,在標題開始時自動啟動的唯一的應用程序,例如,稱作啟動應用程序的程序相當于此。所謂啟動應用程序是指啟動其他應用程序的應用程序。
該圖26(b)的考慮認為只要主應用程序啟動,標題時間軸就繼續(xù),若主應用程序終止,則使時間軸終止。圖26(c)是表示從多個應用程序的生存區(qū)間決定的標題時間軸的圖。有這樣的情況在標題的開始點啟動的是一個應用程序,但是該應用程序重復進行調用其他應用程序,進一步該應用程序調用其他應用程序的處理。這時,只要其中一個應用程序啟動,就認為標題時間軸持續(xù),若任何一個應用程序都沒有啟動的狀態(tài)到來,則由此認為標題時間軸終止。這樣,若決定非AV系統(tǒng)標題的標題時間軸,無論是AV標題還是非AV系統(tǒng)標題,都可以與標題時間軸的終止同時劃一地進行分支到預定的標題的處理。另外,非AV標題中的標題時間軸在與AV標題對比時,不過是假定的想象的時間軸。因此,再現(xiàn)裝置可以在非AV標題中的標題時間軸上逆行或定位到任意的位置。
以上是對于本實施方式中的記錄媒體的改進。接著,說明對于本實施方式中的再現(xiàn)裝置的改進。
為了以如上所述的過程來進行標題終止,第三實施方式的應用程序管理器36以如圖27所示的處理來進行處理。圖27是表示標題再現(xiàn)時的應用程序管理器36的處理過程的流程圖。本流程圖中為在標題再現(xiàn)中,重復步驟S21~S23的循環(huán)結構。
步驟S21中判斷是否調出了標題跳轉API,若調出,則向模塊管理器34請求向跳轉目標標題的分支(步驟S27)。
步驟S22中判斷是否存在承擔標題內的應用程序調用這樣的主應用程序,若存在,則確認其啟動的有無(步驟S25)。若沒有啟動,則解釋為“標題的終止”,向模塊管理器34通知終止(步驟S26)。
步驟S23是沒有主應用程序的情況下執(zhí)行的步驟(步驟S22中”否”),判斷是否為沒有啟動任何應用程序的狀態(tài)。若是,則同樣解釋為“標題的終止”,而向模塊管理器34通知終止(步驟S26)。
如上所述,根據(jù)本實施方式,即使是不伴隨PL再現(xiàn)的標題,也可進行在應用程序執(zhí)行中不進行分支,在應用程序執(zhí)行終止后進行分支的處理。
(第四實施方式)本實施方式涉及在BD-ROM上實現(xiàn)與DVD相同的菜單控制的情況的改進。圖28(a)是表示通過BD-ROM實現(xiàn)的菜單等級的圖。該圖中的菜單等級在最上層配置TopMenu,可以從該TopMenu選擇下層的TitleMenu、SubTitleMenu、AudioMenu的結構。圖中的箭頭sw1、2、3模式地表示基于按鈕選擇的菜單的切換。所謂TopMenu是指配置了接收進行聲音選擇、字幕選擇、標題選擇中之一的按鈕(圖中的按鈕sn1、sn2、sn3)的菜單。
所謂TitleMenu是指配置了接受選擇視頻作品(title)的電影版、選擇導演的剪輯(director’s cut)版或選擇游戲版等視頻作品的選擇的按鈕的菜單。所謂AudioMenu是指配置了接受用日語或用英語進行聲音再現(xiàn)的按鈕的菜單,所謂SubTitleMenu是指配置了接受用日語或用英語進行字幕顯示的按鈕的菜單。
圖28(b)表示用于使具有這種等級的菜單動作的MOVIE對象。圖28(b)中在MovieObject.bdmv中存儲了FirstPlayOBJ、TopMenu OBJ、AudioMenu OBJ、SubTitleMenu OBJ。
FirstPlay對象(FirstPlay OBJ)是BD-ROM向再現(xiàn)裝置裝載時自動執(zhí)行的動態(tài)腳本。
TopMenu對象(TopMenu OBJ)是控制TopMenu的舉動的動態(tài)腳本。在用戶請求菜單調用時,調用的是該TopMenu對象。TopMenu對象包含根據(jù)來自用戶的操作來改變TopMenu中的按鈕的狀態(tài)的指令、和根據(jù)對于按鈕的確定操作來進行分支的分支指令。該分支指令實現(xiàn)從TopMenu向TitleMenu,從TopMenu向SubTitleMenu,從TopMenu向AudioMenu的菜單切換。
AudioMenu對象(AudioMenu OBJ)是控制AudioMenu的舉動的動態(tài)腳本,包含根據(jù)來自用戶的操作來改變AudioMenu中的按鈕的狀態(tài)的指令、和根據(jù)對于按鈕的確定操作來更新聲音設置的指令。
SubTitleMenu對象(SubTitleMenu OBJ)是控制SubTitleMenu的舉動的動態(tài)腳本,包含根據(jù)來自用戶的操作來改變SubTitleMenu中的按鈕的狀態(tài)的指令、和根據(jù)對于按鈕的確定操作來更新字幕設置用PSR的指令。
TitleMenu對象(TitleMenu OBJ)是控制TitleMenu的舉動的動態(tài)腳本,包含改變TitleMenu中的按鈕的狀態(tài)的指令和根據(jù)對于按鈕的確定操作來進行分支的分支指令。
通過這些菜單用MOVIE對象,可以實現(xiàn)如在DVD中實現(xiàn)的菜單的舉動。以上是與菜單控制有關的MOVIE對象。
圖29是模式化了索引表和從索引表向各Movie對象的分支的圖。該圖中左側表示索引表的內部結構。在本實施方式的索引表中包含F(xiàn)irstPlayINDEX、TopMenuINDEX、Audio MenuINDEX、SubtitleMenuINDEX、titleMenuINDEX、title#1~#mINDEX、title#m+1~Nindex、title#0INDEX。圖中的箭頭bc1、2模式地表示從Index Table向FirstPlayOBJ的分支、從FirstPlayOBJ向TopMenu的分支,箭頭bc3、4、5模式表示從TopMenu向TitleMenu、SubTitleMenu、AudioMenu的分支。箭頭bc6、7、8模式地表示從TitleMenu向各Movie對象的分支。
FirstPLayINDEX、TopMenuINDEX、Audio MenuINDEX、SubtitleMenuINDEX、title MenuINDEX分別是對于FirstPLay OBJ、TopMenuOBJ、Audio MenuOBJ、Subtitle MenuOBJ、title MenuOBJ的Index,描述了這些識別符。
Title#1mINDEX是BD-ROM中從第一個進入到第m個的title的Index,描述了在這些1到m的title號的選擇時作為分支目標的MOVIE對象的識別符(ID)。
Title#m+1~#nINDEX是BD-ROM中對于從第m+1進入到第n的title的Index,描述了在這些m+1到n的title號的選擇時作為分支目標的BD-J對象的識別符(ID)。
Title#0INDEX是規(guī)定在BD-J對象的強制終止時應作為分支目標的Movie對象或BD-J對象的INDEX。本實施方式中,將對于TopMenuOBJ的識別符存儲在該title#0INDEX中。
圖30(a)表示如圖29那樣描述了Index Table的情況下的分支。由于這樣來描述Index Table,所以在將標簽title#1~title#m作為分支目標的分支指令的執(zhí)行時,從title#1~title#m INDEX中取出Movie對象#1~#m的識別符。在將標簽title#m+1~title#n作為分支的分支指令的執(zhí)行時,從title#m+1Index~title#nIndex中取出BD-J對象#m+1~#n的識別符。由于BD-J對象#m+1~#n的識別符是表示標題名的5位數(shù)值,所以取出“00001.BD-J、00002.BD-J、00003.BD-J...”,將該標題名的動態(tài)腳本讀出到存儲器中,來執(zhí)行。其是使用了索引表的分支處理。
圖30(b)是表示BD-J對象執(zhí)行時的強制終止時的分支的圖。在強制終止時的分支中,從title#0Index取出識別符,并通過再現(xiàn)裝置來執(zhí)行該識別符的動態(tài)腳本。若該識別符為頂端菜單標題的識別符,則在應用程序強制終止時,自動選擇頂端菜單OBJ。
以上是對于本實施方式中的記錄媒體的改進。接著,說明對于本實施方式中的再現(xiàn)裝置的改進。由于對應于上述的記錄媒體的改進,所以再現(xiàn)裝置內的模塊管理器34以如圖31所示的處理過程來進行處理。圖31是表示模塊管理器34的處理過程的流程圖。本流程圖構成由步驟S31、步驟S32構成的循環(huán)處理,并在步驟S31或步驟S32中之一為”是”時,執(zhí)行對應的處理。
步驟S31判斷是否有標題跳轉API的調用。若有標題跳轉API的調用,則取得作為分支目標標簽的標題號j(步驟S33),并從索引表中的標題號j的索引中取得IDj(步驟S34),而使HDMV模塊33或BD-J模塊35執(zhí)行IDj的Movie對象或BD-J對象(步驟S35)。
步驟S32判斷是否從應用程序管理器36通知標題終止的,若通知(步驟S32中”是”),則使HDMV模塊33或模塊管理器34執(zhí)行構成頂端菜單標題的頂部菜單OBJ(步驟S36)。
參考圖32來說明基于以上的應用程序管理器36的應用程序強制終止的動作例。這里應再現(xiàn)的標題是包含堆積降落的瓦(tile)片的游戲應用程序的非AV系標題。圖32的下級表示由應用程序的生存區(qū)間構成的標題時間軸,上級表示標題時間軸中顯示的圖像。在非AV系標題是游戲應用程序的情況下,在該游戲應用程序的生存區(qū)間中,如圖32的上段左側那樣,顯示游戲應用程序的一畫面。若應用程序有錯誤,而異常終止,則應用程序管理器36根據(jù)圖23的流程圖來使游戲應用程序強制終止,并向模塊管理器34通知標題的終止。若通知了標題終止,則模塊管理器34分支到頂端菜單標題。這樣,顯示如圖32的上段右側所示的圖像,等待用戶的操作。
如上所述,根據(jù)本實施方式,在包含程序,但是不包含數(shù)字流的非AV系標題終止時,可以進行分支到頂端菜單標題的控制。由此,即使應用程序出錯終止,也可避免停機和破壞(bang up)的產生。
(第五實施方式)涉及BD-J模式中怎樣實現(xiàn)與PL再現(xiàn)的同步的改進。在圖8(b)的一例中,在Java虛擬機38對命令JMF播放器實例的再現(xiàn)的JMF播放器實例(A.play;)進行譯碼的情況下,Java虛擬機38調用PL再現(xiàn)API,在調用后,緊接著向應用程序返回表示“成功”的響應。
重放控制引擎32在調用PL再現(xiàn)API時,執(zhí)行基于PL信息的處理過程。若PL具有兩小時的再現(xiàn)時間,則上述的處理持續(xù)該兩小時的時間。這里成為問題的是Java虛擬機38返回成功響應的時間和重放控制引擎32實際終止處理的時間的間隔。Java虛擬機38由于是作為驅動事件的處理主體,所以在調用之后緊接著返回表示再現(xiàn)成功或再現(xiàn)失敗的響應,但是由于基于重放控制引擎32的實際的處理終止在經過2小時后,所以在將訪問響應返回應用程序的時間作為基準的情況中,不能感測相當于2小時經過后的處理終結。若在PL再現(xiàn)中進行快進、倒帶、Skip,則該2小時的再現(xiàn)期間在2小時前后改變,處理終結的感測更加困難。
重放控制引擎32由于在與應用程序孤立的狀態(tài)下動作,所以在如第三實施方式那樣的終止判斷中,不能將PL再現(xiàn)的終止解釋為標題終止。因此,在本實施方式中,雖然應用程序已經終止,但是只要工作存儲器37上存在JMF播放器實例,即,在BD-J模塊35掌握展示引擎31的控制權的期間,從重放控制引擎32等待再現(xiàn)終止事件。并且,若存在再現(xiàn)終止事件,則解釋為標題終止,并為了進行向下一標題的分支,向模塊管理器34進行通知。由此,可以將重放控制引擎32終止PL再現(xiàn)的時刻作為標題的終止。
之后,參考圖33~圖37的流程圖來說明基于重放控制引擎32的具體的控制過程。
圖33是表示基于重放控制引擎32的PL再現(xiàn)控制過程的流程圖。該再現(xiàn)過程主要包含對于展示引擎31的控制(步驟S46)和對于BD-ROM驅動器1或HDD17的控制(步驟S48)。將本流程圖中作為處理對象的PlayItem設作PlayItem#x。本流程圖進行當前PL信息(.mpls)的讀取(步驟S41),之后,執(zhí)行步驟S42~步驟S50的處理。這里,步驟S42~步驟S50在步驟S49為”是”之前,對于構成當前PL信息的各個PI信息,重復進行步驟S43~步驟S50的處理的循環(huán)處理。將該循環(huán)處理中作為處理對象的PlayItem稱作PlayItem#x(PI#x)。該PlayItem#x通過設定為當前PL的頭的PlayItem來進行初始化(步驟S42)。上述的循環(huán)處理的終止要件是該PlayItem#x是當前PL的最后的PlayItem(步驟S49),若是最后的PlayItem,則將當前PL的下一PlayItem設定為PlayItem#x(步驟S50)。
循環(huán)處理中重復執(zhí)行的步驟S43~步驟S50將由PlayItem#x的Clip_information_file_name指定的Clip信息讀入到腳本存儲器21中(步驟S43),并使用當前Clip信息的Epmap,來將PlayItem#x的In_time轉換為I圖像地址u(步驟S44),使用當前Clip信息的EP_map來將PlayItem#x的Out_time轉換為I圖像地址v(步驟S45),并求出通過這些轉換得到的地址v的下一I圖像之后,將該地址的前一個設定為地址w(步驟S47)。使用這樣算出的地址w,來向BD-ROM驅動器1或HDD17命令從I圖像地址u到地址w的TS包的讀出(步驟S48)。
另一方面,對展示引擎31,命令從當前PLMark的mark_time_stamp到PlayItem#x的Out_time為止的輸出(步驟S46)。通過以上的步驟S45~步驟S48,在AVClip中,進行由PlayItem#x指示的部分的再現(xiàn)。
之后,判斷PlayItem#x是否為當前PL的最后的PI(步驟S49)。
若PlayItem#x不是當前PL的最后的PI,則將當前PL中的下一PlayItem設定為PlayItem#x(步驟S50),而回到步驟S43。通過重復以上的步驟S43~步驟S50,依次再現(xiàn)構成PL的PI。
圖34是表示角度切換過程和Skip Back、Skip Next的過程的流程圖。本流程圖與圖33的處理過程并行,重復由步驟S51~S52構成的循環(huán)處理。本循環(huán)中的步驟S51中判斷請求角度切換的API是否是從Java虛擬機38調用的,若存在角度切換API的調用,則執(zhí)行切換當前Clip信息的操作。
圖34的步驟S55是判斷步驟,進行PlayItem#x的is_multi_angles是否為ON的判斷,所謂is_multi_angles是表示PlayItem#x是否對應于多角度的標志,若步驟S55為”否”,則進入到步驟S53。若步驟S55為”是”,則執(zhí)行步驟S56~步驟S59。步驟S56~步驟S59將切換后的角度號代入自變量y(步驟S56),并向腳本存儲器21讀出由PlayItem#x中的第y的Clip_information_file_name指定的Clip信息(步驟S57),使用當前Clip信息的EP_map將當前PTM轉換為I圖像地址u(步驟S58),并使用當前Clip信息的EP_map來將PlayItem#x的Out_ime轉換為I圖像地址v(步驟S59)。這樣,在變化了I圖像地址u、v后,進入到步驟S46。由于通過向步驟S46的進入,從其他AVClip讀出TS包,所以切換視頻內容。
另一方面,圖34的循環(huán)中的步驟S52判斷是否從Java虛擬機38調用含義為Skip Back/Skip Next的API,若調用,則執(zhí)行圖35的流程圖的處理過程。圖35是表示調用Skip Back,Skip NextAPI時的處理過程的流程圖。每次執(zhí)行Skip Back,Skip Next時的處理過程多種多樣。注意這里說明的只不過是一例。
步驟S61通過轉換用PSR表示的當前PI號和當前PTM,來得到當前Mark信息。步驟S62判斷按下的鍵是Skip Next鍵還是Skip Back鍵,若是Skip Next鍵,則在步驟S63中將方向標志設定為+1,若為Skip Back鍵,則在步驟S64中將方向標志設定為-1。
步驟S65將在當前PLMark的號上補上了方向標志的值后的號設定為當前PLMark的號。這里,若是SkipNext鍵,則將方向標志設定為+1,所以增加當前PLMark。若是Skip Next鍵,則將方向標志設為-1,所以減去當前PLMark。
步驟S66中,將在當前的PLMark的ref_to_PlayItem_Id上描述的PI設為PlayItem#x,在步驟S67中,讀入由PlayItem#x的Clip_information_file_name指定的Clip信息。在步驟S68中,使用當前Clip信息的EP_map,來將當前PLMark的mark_time_stamp轉換為I圖像地址u。另一方面,在步驟S69中,使用當前Clip信息的EP_map將PlayItem#x的Out_time轉換為I圖像地址v。步驟S70在向展示引擎31命令從當前PLMark的mark_time_stamp到PlayItem#x的Out_time的輸出后,進入到圖33的步驟S47。這樣,在變化I圖像地址u、v后,命令其他部分的再現(xiàn)后,向步驟S47進入,所以變?yōu)閺钠渌鸄VClip中讀出TS包,實現(xiàn)切換視頻內容。
圖36是表示基于展示引擎31的處理過程的細節(jié)的流程圖。本流程圖在將I圖像的PTS設定為當前PTM后(步驟S71),執(zhí)行由步驟S72~步驟S77構成的循環(huán)處理。
接著,說明步驟S72~步驟S77中的循環(huán)處理。該循環(huán)處理重復相當于當前PTM的圖像、音頻的再現(xiàn)輸出和當前PTM的更新。本循環(huán)處理中的步驟S76規(guī)定循環(huán)處理的終止要件。即,步驟S76將當前PTM為PI#x的Out_time情況作為循環(huán)處理的終止要件。
步驟S73判斷是否從Java虛擬機38調用快進API或快倒API。若是,則在步驟S78中進行快進或快倒的判斷,若是快進,則將下一I圖像的PTS設作當前PTM(步驟S79)。這樣,通過將當前PTM設定為下一I圖像的PTS,可以在一秒中很快地再現(xiàn)AVClip。由此,AVClip以2倍速等沿順方向很快再現(xiàn)。若是快倒,則判斷當前PTM是否達到PlayItem#x的Out_time(步驟S80)。若沒有達到,則將前一個I圖像的PTS設定為當前PTM(步驟S81)。通過這樣將讀出端地址A設作前一個的I圖像,可以沿后方向在一秒內很快再現(xiàn)AVClip。由此,以2倍速等沿逆方向來再現(xiàn)AVClip。另外,執(zhí)行快進、倒帶時的處理過程多種多樣。注意這里說明的只不過是一例。
步驟S74判斷是否調用菜單調用API,若調用,則掛起當前的再現(xiàn)處理(步驟S82),執(zhí)行菜單處理用菜單程序(步驟S83)。通過以上的處理,在進行了菜單調用的情況下,在中斷再現(xiàn)處理后,執(zhí)行菜單顯示用的處理。
步驟S75通過Syn_PlayItem_id判斷是否存在指定了PlayItem#x的SubPlayItem#y,若存在,則進入到圖37的流程圖。圖37是表示SubPlayItem的再現(xiàn)過程的流程圖。本流程圖中,首先在步驟S86中,判斷當前PTM是否是SubPlayItem#y的sync_start_of_playItem。若這樣,則在步驟S93中通知重放控制引擎32進行基于SubPlayItem#y的再現(xiàn)處理。
圖37的步驟S87~步驟S92是表示基于SubPlayItem#y的再現(xiàn)處理的流程圖。
在步驟S87中,讀入通過SubPlayItem#y的Clip_information_file_name指定的Clip信息。在步驟S88中,使用當前Clip信息的EP_map,將SubPlayItem#y的In_time轉換為地址α。另一方面,在步驟S89中,使用當前Clip信息的EP_map,將SubPlayItem#y的Out_time轉換為地址β。步驟S90向譯碼器命令從SubPlayItem#y的In_time到SubPlayItem#y的Out_time的輸出。求出通過這些轉換得到的地址β的下一I圖像,并將該地址的前一個設作地址γ(步驟S91),使用這樣算出的地址γ,向BD-ROM驅動器1或HDD17命令從SubClip#z的地址α到地址γ的TS包的讀出(步驟S92)。
另外,回到圖33來進行重放控制引擎32的處理的說明的繼續(xù)。步驟S53是基于展示引擎31的再現(xiàn)控制是否完成的判斷,對于最后的PlayItem#x,只要進行圖36的流程圖的處理,步驟S53成為”否”。圖36的流程圖的處理終止后,步驟S53才變?yōu)椤笔恰?,并進入到步驟S54。步驟S54是向Java虛擬機38的再現(xiàn)終止事件的輸出,通過該輸出,Java虛擬機38可以知道兩個小時的再現(xiàn)時間的經過。
以上是本實施方式中的重放控制引擎32、展示引擎31的處理。接著說明本實施方式中應用程序管理器36的處理過程。圖38是表示第五實施方式的應用程序管理器36的處理過程的流程圖。
圖38的流程圖改進了圖27的流程圖。其改進點是,在步驟S21一步驟S22之間追加了步驟S24,在該步驟S24為”是”時,存在所執(zhí)行的步驟S101。
步驟S24判斷工作存儲器37中是否存在JMF播放器實例,若不存在,則進入到步驟S22。若存在,則進入到步驟S101。步驟S101判斷是否從重放控制引擎32輸出了再現(xiàn)終止事件,若輸出了,則在消除工作存儲器中的Java播放器實例后(步驟S102),向模塊管理器34通知標題終止(步驟S26)。若沒有通知,則重復由步驟S21~步驟S24構成的循環(huán)處理。
在以上的流程圖中,只要在工作存儲器37上存在JMF播放器實例(步驟S24中為”是”),就跳過步驟S22、步驟S23。因此,例如,即使所有的應用程序終止,也解釋為標題繼續(xù)中。
如上這樣,根據(jù)本實施方式,應用程序管理器36可以把握兩個小時的再現(xiàn)時間的經過時刻,所以可以實現(xiàn)在PL再現(xiàn)的終止條件上顯示菜單,并根據(jù)對于該菜單的操作來分支到其他標題的控制。
(第六實施方式)第六實施方式涉及在BD-J對象上設置了數(shù)據(jù)管理表的改進。
數(shù)據(jù)管理表(DMT)是表示在其標題時間軸上使應裝載到本地存儲器29上的Java歸檔文件與讀入屬性和讀入優(yōu)先級對應的表。所謂本地存儲器29中的生存是指可從本地存儲器29中讀出構成該應用程序的Java歸檔文件,并傳送到Java虛擬機38內的工作存儲器37的狀態(tài)。圖39是表示數(shù)據(jù)管理表的一例的圖。如該圖所示,數(shù)據(jù)管理表表示應用程序的“生存區(qū)間”、識別具有該生存區(qū)間的應用程序的“applicationID”和該應用程序的“讀入屬性”、“讀入優(yōu)先級”。
如上所述,應用程序管理表中存在稱作生存區(qū)間的概念,數(shù)據(jù)管理表中也存在相同的生存區(qū)間的概念。將與應用程序管理表相同的概念設置在數(shù)據(jù)管理表中,看上去認為浪費,但是其有含義。
圖40是表示BD-J對象假定的執(zhí)行模型的圖。該圖中的執(zhí)行模型由BD-ROM、本地存儲器29、Java虛擬機38構成,表示BD-ROM、本地存儲器29、工作存儲器37三者的關系。箭頭my1表示BD-ROM→本地存儲器29之間的讀入,箭頭my2表示本地存儲器29→工作存儲器37之間的讀入。箭頭上的注解表示在怎樣的定時下進行這些讀取?;谧⒔?,BD-ROM→本地存儲器29之間的讀入是所謂的“先讀”,必須在需要應用程序之前的時刻進行。
另外,若基于注解,則清楚在需要應用程序時進行本地存儲器29→工作存儲器37之間的讀入。所謂“需要時”是指應用程序的生存區(qū)間到來時刻(1)和從其他應用程序或應用程序管理器36指示了應用程序的調用的時刻(2)。
箭頭my3表示工作存儲器37中的應用程序的占有區(qū)域的釋放,箭頭my4表示本地存儲器19中的應用程序的占有區(qū)域的釋放。箭頭上的注解表示在哪個定時上進行這些讀入。若基于注解,則明白與應用程序終止同時進行工作存儲器37上的釋放。另一方面,在對于Java虛擬機38來說不需要的時刻進行本地存儲器29上的釋放。所謂不需要的時刻不是“終止時刻”。是指“終止后,沒有重新啟動的可能性的時刻”,即,該title終止的時刻。從應用程序管理表中的生存區(qū)間來判斷上述的讀 入·釋放中工作存儲器37中的釋放時刻。但是不能對“需要應用程序之前的時刻”、“終止后,沒有重新啟動的可能性的時刻”進行規(guī)定。因此,在授權階段中,由于在盤內容整體的時間軸上規(guī)定了該時刻,所以在本實施方式中,將各應用程序生存的區(qū)間描述在與應用程序管理表不同的數(shù)據(jù)管理表上。即,將“需要應用程序之前的時刻”定義為數(shù)據(jù)管理表中的生存區(qū)間的始點,將“終止后,沒有重新啟動的可能性的時刻”定義為數(shù)據(jù)管理表的終點,從而可以在授權時規(guī)定上述本地存儲器29上的存儲內容的遷移。其是數(shù)據(jù)管理表的描述意義。
說明基于數(shù)據(jù)管理表的本地存儲器29生存區(qū)間的描述。這里要制作的盤內容由三個標題(title#1、titile#2、title#3)構成,這些標題的時間軸上,認為要以如圖41(b)所示的定時,使用本地存儲器29。這時,在title#1時間軸的開始點中將構成application#1、application#2的Java歸檔文件讀入到本地存儲器29中,在title#1時間軸的繼續(xù)中,使application#1、application#2常駐在本地存儲器29上。并且,在title#2時間軸的起始點,從本地存儲器29中釋放構成application#1的Java歸檔文件,并代替此,將構成application#3的Java歸檔文件讀入到本地存儲器29中,而進行常駐(之后,構成應用程序的Java歸檔文件與應用程序同樣地處理)。這時的數(shù)據(jù)管理表的描述如圖41(a)那樣,通過與其生存區(qū)間對應地描述應用程序的applicationID,來表現(xiàn)應在本地存儲器29中常駐的應用程序。圖41(a)中,可以看出與title#1對應地來描述application#1的applicationID,與title#1、title#2對應地來描述application#2的applicationID,與title#3對應地來描述application#3的applicationID。由此,通過授權承擔者來規(guī)定本地存儲器29占有的時間遷移。
作為數(shù)據(jù)管理表、應用程序管理表的組合,最好在應用程序管理表中規(guī)定的生存區(qū)間為小的再現(xiàn)單位,在數(shù)據(jù)管理表中規(guī)定的生存區(qū)間為大的再現(xiàn)單位。大的再現(xiàn)單位最好是標題、PL這樣的非無縫的再現(xiàn)單位。另一方面,作為小的再現(xiàn)單位,最好是如PL內的章節(jié)那樣的無縫的再現(xiàn)單位。若按每個標題、PL來定義應用程序的生存區(qū)間,由于應用程序存在于工作存儲器29上,所以在其標題的再現(xiàn)中為無論何時都可取出應用程序的狀態(tài)。若這樣,由于即使精細地定義應用程序的生存區(qū)間,也可立即將應用程序讀出到虛擬機上的工作存儲器上,所以即使頻繁進行應用程序的啟動·終止,也可實現(xiàn)平滑地執(zhí)行應用程序。
接著,說明讀入屬性。
圖2中,以Java歸檔文件記錄在與AVClip不同的記錄區(qū)域上為前提。但是,其不過是一例。Java歸檔文件存在嵌入到BD-ROM中AVClip所占有的記錄區(qū)域的情況。該嵌入的方式有循環(huán)(carousel)、交叉單元化兩種。
這里所謂“循環(huán)”是指為實現(xiàn)對話廣播而轉換為重復同一內容的廣播方式。BD-ROM雖然沒有存儲廣播的數(shù)據(jù),但是在本實施方式中,模仿循環(huán)的廣播形式來存儲JAVA歸檔文件。圖42是表示基于循環(huán)的Java歸檔文件嵌入的圖。第一級是在AVClip中嵌入的Java歸檔文件,第二級表示分段化。第三級表示TS包化,第四級表示構成AVClip的TS包串。將這樣分段化、TS包化的數(shù)據(jù)(圖中的“D”)嵌入到AVClip中。通過循環(huán),在AVClip中多路復用的Java歸檔文件在每次讀出時,低頻讀出。由于該低頻的讀出需要大致2~3分鐘這樣的長時間,所以再現(xiàn)裝置花費2~3分鐘來讀入Java歸檔文件。
圖43表示基于交叉的Java歸檔文件嵌入的圖。第一級是應嵌入的AVClip,第二級是在AVClip中交叉的Java歸檔文件,第三級是BD-ROM的記錄區(qū)域中的AVClip配置。如該圖所示,應嵌入在流中的Java歸檔文件進行交叉后,記錄在形成構成AVClip的XXXXX.m2ts的分割部分(圖中的AVClip2/4,3/4)的間隔上。通過交叉在AVClip上多路復用的Java歸檔文件,與循環(huán)比較,以高頻帶讀出。由于是該高頻帶的讀出,所以再現(xiàn)裝置在較短期間讀入Java歸檔文件。
不預先裝載循環(huán)·交叉后的Java歸檔文件。在當前的再現(xiàn)時刻到達BD-ROM中的AVClip的記錄區(qū)域中的、嵌入了循環(huán)·交叉后的Java歸檔文件的部分時,裝載到再現(xiàn)裝置的本地存儲器29中。Java歸檔文件的記錄形態(tài)除了圖2所示的形態(tài)之外,有圖42、圖43(a)所示的形態(tài),所以如圖43(b)所示那樣來設置讀入屬性。如圖43(b)所示,讀入屬性有表示在標題再現(xiàn)之前、并向本地存儲器29讀入的“Preload”、和表示在標題再現(xiàn)中以循環(huán)方式讀入的“Load.Carousel”、以及表示在標題再現(xiàn)中以交叉方式讀入的“Load.InterLeave”。讀入屬性中用后綴來表現(xiàn)循環(huán)或交叉,但是也可省略。
參考圖44來說明數(shù)據(jù)管理表中的生存區(qū)間的具體的描述例。圖44(a)是表示數(shù)據(jù)管理表的一例的圖。圖44(b)是表示基于該數(shù)據(jù)管理表的分配的本地存儲器29的存儲內容的變化的圖。該圖在縱軸方向上表示本地存儲器29中的占有區(qū)域,橫軸為一個標題內的PL時間軸。由于數(shù)據(jù)管理表中,application#1描述為一個標題內的PL時間軸整體為生存區(qū)間,所以在該標題的Chapter#1~Chapter#5中占有本地存儲器29內的區(qū)域。application#2描述為在數(shù)據(jù)管理表中使標題內的PL#1中的Chapter#1~Chapter#2為生存區(qū)間,所以在該標題的Chapter#1~Chapter#2中占有本地存儲器29內的區(qū)域。由于application#3描述為在數(shù)據(jù)管理表中使標題內的PL#1中的Chapter#4~Chapter#5為生存區(qū)間,所以在該標題的Chapter#4~Chapter#5中占有本地存儲器29內的區(qū)域。結束以上對數(shù)據(jù)管理表中的生存區(qū)間的說明。
接著說明讀入優(yōu)先級。所謂讀入優(yōu)先級是指決定對于向本地存儲器29的讀入的優(yōu)劣的優(yōu)先級。讀入優(yōu)先級有多個值。在想要設置兩個等級的優(yōu)劣的情況下,將表示強制(Mandatory)的值、表示可選(optional)的值設定為讀入優(yōu)先級。這時,Mandatory是指高的讀入優(yōu)先級,optional是指低的讀入優(yōu)先級。在想要設置三個等級的優(yōu)劣的情況下,將表示Mandatory的值、表示optional:high、optional:low的值設定為讀入優(yōu)先級。Mandatory表示最高的讀入優(yōu)先級,optional:high表示中等的讀入優(yōu)先級,optional:low表示最低的讀入優(yōu)先級。參考圖45(a)、(b)來說明數(shù)據(jù)管理表中的讀入優(yōu)先級的具體的描述例。在該具體例中,假定的本地存儲器29的存儲器規(guī)模如圖45(a)所示。圖45(a)是對比表示新舊再現(xiàn)裝置中的本地存儲器29的存儲器規(guī)模的圖。箭頭mk1表示舊再現(xiàn)裝置中的存儲器規(guī)模,箭頭mk2表示新再現(xiàn)裝置中的存儲器規(guī)模。根據(jù)該箭頭的對比,假定新再現(xiàn)裝置中的本地存儲器29的存儲器規(guī)模與舊再現(xiàn)裝置的存儲器規(guī)模相比為三倍以上的狀態(tài)。這樣,在存儲器規(guī)模有偏差的情況下,應用程序分類為如圖45所示那樣的兩個組。第一個無論是什么樣的存儲器規(guī)模都應讀入的應用程序(#1,#2)。第二個是不希望舊再現(xiàn)裝置的讀入,但是希望新再現(xiàn)裝置的讀入的應用程序(#3,#4)。若將要讀入的應用程序分類為這兩個組,則在屬于前者的應用程序上設置讀入優(yōu)先級=Mandatory,并在屬于后者的應用程序上設置讀入優(yōu)先級=Optional。圖45(b)是表示設置了讀入優(yōu)先級的數(shù)據(jù)管理表的一例的圖。若這樣來設置數(shù)據(jù)管理表后,將application#1~application#4記錄在BD-ROM上,則保證了一切的存儲器規(guī)模的再現(xiàn)裝置上的再現(xiàn),同時在存儲器規(guī)模大的再現(xiàn)裝置上,可以使再現(xiàn)裝置再現(xiàn)利用了更大的大小的數(shù)據(jù)的應用程序。
以上是對于本實施方式的記錄媒體的改進。接著說明對于本實施方式中的再現(xiàn)裝置的改進。由于對應于上述的記錄媒體的改進,所以應用程序管理器36以圖46所示的處理過程來進行處理。
圖46是表示基于應用程序管理器36的預裝載控制的處理過程的圖。本流程圖構成如下的循環(huán)處理在讀入應再現(xiàn)的標題中的數(shù)據(jù)管理表(步驟S111)、在數(shù)據(jù)管理表中具有最高的讀入優(yōu)先級,同時,將applicaitonID最小的應用程序設為應用程序i后(步驟S112),在經過了步驟S113、步驟S114的判斷后,重復進行將應用程序i預裝載到本地存儲器29上(步驟S115)的處理,直到判斷為步驟S116為”否”和步驟S117為”否”。
步驟S113判斷應用程序i的讀入屬性是否是預裝載,步驟S114判斷應用程序的讀入優(yōu)先級是=Mandatory還是Optional。若在步驟S113中判斷為預裝載,在步驟S114中將讀入優(yōu)先級判斷為Mandatory,則將應用程序預裝載到本地存儲器29中(步驟S115)。若在步驟S113中判斷為讀入屬性是裝載,則跳過步驟S114~步驟S115。
規(guī)定循環(huán)處理的終止要件的兩個步驟中步驟S116,判斷是否存在applicationID次高、讀入優(yōu)先級與應用程序I相同的應用程序k。若存在這種應用程序k,將該應用程序k設為應用程序i(步驟S119)。
規(guī)定循環(huán)處理的終止要件的兩個步驟中步驟S117判斷數(shù)據(jù)管理表中是否存在具有次低的讀入優(yōu)先級的應用程序,若存在,將具有該次低的讀入優(yōu)先級的應用程序中最小的applciationID中選作應用程序k(步驟S118),將該應用程序k設作應用程序i(步驟S119)。只要這些步驟S116、步驟S117為”是”,則重復上述的步驟S113~步驟S115的處理。步驟S116、步驟S117中,若沒有相應的應用程序,則本流程圖的處理終止。
步驟S120~步驟S123是在步驟S14中判斷為讀入優(yōu)先級=Optional的情況下執(zhí)行的處理。
步驟S120判斷是否存在具有相同的applicationID、且讀入優(yōu)先級高的應用程序j。
步驟S121判斷本地存儲器29的殘留容量是否高于應用程序i的大小。在步驟S120為”否”,步驟S121為”是”的情況下,在步驟S115中,將應用程序i預裝載到本地存儲器29中。在步驟S120為”否”,步驟S121為”否”的情況下,不將應用程序i裝載到本地存儲器29上而仍進入到步驟S116。
這樣,若讀入優(yōu)先級=Optional的數(shù)據(jù)在步驟S120-步驟S121的判斷不是”是”時,不進行向本地存儲器29的預裝載。存儲器規(guī)模小的舊再現(xiàn)裝置為讀入了2~3個應用程序的程度,在步驟S121的判斷為”否”,但是存儲器規(guī)模大的新再現(xiàn)裝置即使讀入更多的應用程序,步驟S121的判斷也不成為”否”。如上這樣,在舊再現(xiàn)裝置中,僅向本地存儲器29讀入Mandatory的應用程序,向新再現(xiàn)裝置讀入Mandatory的應用程序和Optional的應用程序。
步驟S122是在步驟S120中判斷為”是”的情況下執(zhí)行的步驟。在本地存儲器29上存在具有同一applicationID、且讀入優(yōu)先級高的應用程序j的情況下,判斷本地存儲器29的剩余容量和應用程序j的大小的和是否超過了應用程序i的大小(步驟S122),若超過,則通過使用應用程序i來覆蓋本地存儲器29上的應用程序j,來進行預裝載(步驟S123)。在低的情況下,不將應用程序i預裝載到本地存儲器29中來原樣進入到步驟S116。
參考圖47(a)來說明基于步驟S115、步驟S123的讀入處理的一例。圖47(a)是表示該具體例假定的數(shù)據(jù)管理表的一例的圖。將該圖中的三個應用程序分別存儲在三個文件中,applicationID相同(applicationID=1),但是讀入優(yōu)先級分別不同(mandatory,optional:high,optional:low)。若這樣的數(shù)據(jù)管理表為處理對象,則通過步驟S115,將讀入優(yōu)先級=Mandatory的應用程序讀入到本地存儲器29中。但是,對于讀入優(yōu)先級=Optional的應用程序,在經過了步驟S120~步驟S122的判斷后,在步驟S123中進行讀入。在與步驟S115不同的步驟S123中,由于進行預裝載,以使其覆蓋已經存在于本地存儲器29中的相同的applicationID的應用程序,所以排他地將多個應用程序中的一個裝載到本地存儲器29中。
i)在讀入了讀入優(yōu)先級=mandatory的應用程序后,每次讀入讀入優(yōu)先級=optional:high的應用程序時,若步驟S122判斷為”否”,則在本地存儲器29中保留讀入優(yōu)先級=mandatory的應用程序。在讀入了讀入優(yōu)先級=mandatory的應用程序后,每次讀入讀入優(yōu)先級=option:high的應用程序時,若步驟S122判斷為”是”,則通過讀入優(yōu)先級=optional:high的應用程序,來覆蓋讀入優(yōu)先級=mandatory的應用程序,并在本地存儲器29中保留讀入優(yōu)先級=optional:high的應用程序。
ii)在讀入了讀入優(yōu)先級=optional:high的應用程序后,每次讀入讀入優(yōu)先級=optional:low的應用程序時,若步驟S122判斷為”否”,則在本地存儲器29中保留讀入優(yōu)先級=Mandatory的應用程序。在讀入了讀入優(yōu)先級=optional:high的應用程序后,每次讀入讀入優(yōu)先級=optional:low的應用程序時,若步驟S122判斷為”是”,則通過讀入優(yōu)先級=optional:low的應用程序,來覆蓋讀入優(yōu)先級=optional:high的應用程序(步驟S123),在本地存儲器29中保留讀入優(yōu)先級=optional:low的應用程序。
由于只要本地存儲器29的容量允許,重復覆蓋本地存儲器29上的應用程序的處理,所以本地存儲器29的存儲內容如圖47(b)所示,而變?yōu)閙andatory=optional:high=>optional:low。由于可以根據(jù)存儲器規(guī)模,將大小不同的Java歸檔文件裝載到本地存儲器29中,所以對于存儲器規(guī)模小的再現(xiàn)裝置,將具有必要最小限度的分辨率的縮略圖像的Java歸檔文件裝載到本地存儲器29中,對于存儲器規(guī)模為中等程度的再現(xiàn)裝置,將具有中等程度的分辨率的SD圖像的Java歸檔文件裝載到本地存儲器29中,對于存儲器規(guī)模大規(guī)模的再現(xiàn)裝置,將具有高分辨率的HD圖像的Java歸檔文件裝載到本地存儲器29中。通過該裝載,可以根據(jù)存儲器大小來顯示分辨率不同的圖像,授權承擔者的標題制作的表現(xiàn)范圍寬。
圖48是表示參考數(shù)據(jù)管理表的讀取處理的具體例的圖。該圖中的兩個應用程序是表示添加了同一applicationID(application#3)的兩個應用程序。其中一個嵌入到AVClip中,將讀入優(yōu)先級設定為mandatory。另一方面,記錄在與AVClip不同的文件中,將記錄優(yōu)先級設定為Optional。由于將前者的應用程序嵌入到AVClip中,所以相當于該嵌入部分的生存區(qū)間描述為生存區(qū)間(title#1chapter#4~#5)。在這些應用程序中application#2、application#3上添加了表示裝載的讀入屬性。由于application#2將Chapter#1~Chapter#2作為生存區(qū)間,application#3將Chapter#4~Chapter#5作為生存區(qū)間,所以在標題時間軸上排他性地在本地存儲器29上常駐其中一個。圖48(b)是表示在標題時間軸上的不同的時刻,排他性地存儲的application#2、application#3的圖。其是考慮了僅要在必要最低限度的存儲器規(guī)模的再現(xiàn)裝置上的再現(xiàn)為目的的。若這種內容的數(shù)據(jù)管理表為處理對象,則應用程序管理器36通過上述的圖46的流程圖來根據(jù)存儲器規(guī)模進行不同的處理。
由于讀入優(yōu)先級=裝載,所以將后者的應用程序裝載到本地存儲器29上。通過該處理,只要有Mandatory的存儲器規(guī)模,則應用程序管理器可以將數(shù)據(jù)裝載到本地存儲器29上。這里成為問題的是基于存儲器規(guī)模大的再現(xiàn)裝置的讀入時。不管存儲器規(guī)模大小,在到達Chapter#4~Chapter#5之前,不讀入application#3是存儲器規(guī)模的浪費。因此,在該圖的數(shù)據(jù)管理表中向同一application#3添加表示預裝載的讀入屬性而記錄在BD-ROM上,并向其添加相同的applicationID。
由于前者的應用程序讀入優(yōu)先級=Optional,所以只要是步驟S121為”是”的情況下,就進行預裝載(步驟S115)。由此,存儲器規(guī)模大的再現(xiàn)裝置可以將與在AVClip中嵌入的應用程序相同的應用程序裝載到本地存儲器中,而不用等待title#1、Chapter#4~Chapter#5的到達(圖48(c))。
以上是預裝載時的處理。接著說明裝載時的處理過程。
圖49是表示基于數(shù)據(jù)管理表的裝載處理的處理過程的圖。本流程圖在持續(xù)標題再現(xiàn)的期間,重復進行由步驟S131~步驟S133構成的循環(huán)處理。
步驟S131是具有表示AutoRun的啟動屬性的應用程序的生存區(qū)間是否到來的判斷。若到來,則將具有表示AutoRun的啟動屬性的應用程序設作應用程序q(步驟S134),向Java虛擬機38發(fā)出表示啟動應用程序q的啟動指示,并從本地存儲器29向工作存儲器37讀出應用程序q(步驟S135)。
步驟S133判斷標題內PL的再現(xiàn)是否完全終止。該判斷如第五實施方式,通過是否存在來自重放控制引擎32的再現(xiàn)終止事件來進行。若終止,則終止本流程圖的處理。
步驟S132判斷是否有來自啟動中應用程序的調用。若有,則將調用目標應用程序設為應用程序q(步驟S136),判斷當前的再現(xiàn)時刻是否是應用程序管理表中的應用程序q的生存區(qū)間(步驟S137)。若不是生存區(qū)間,則顯示啟動失敗(步驟S148),回到由步驟S131~步驟S133構成的循環(huán)處理。若是生存區(qū)間,則根據(jù)圖50的流程圖來進行裝載處理。
圖50中的步驟S138判斷表示當前再現(xiàn)時刻是否是數(shù)據(jù)管理表中的應用程序q的生存區(qū)間。若不是生存區(qū)間,則不能將應用程序q裝載到本地存儲器29中。這時,向Java虛擬機38發(fā)出表示啟動應用程序q的啟動指示,并直接將應用程序q從BD-ROM讀出到工作存儲器37中,而不用經過本地存儲器29。這時由于產生了用于讀出應用程序的頭搜索,所以PL再現(xiàn)中斷(步驟S145)。
若是生存區(qū)間,則在步驟S139中,判斷是否在應用程序上添加了讀入屬性。所謂沒有讀入屬性是指沒有循環(huán)或交叉應用程序q。但是,即使沒有添加讀入屬性,也允許在本地存儲器29上放置應用程序。因此,在知道再現(xiàn)中斷后,進行應用程序的讀出。即,在將應用程序從BD-ROM讀出到本地存儲器29后,將應用程序讀出到工作存儲器37(步驟S140)。
步驟S141~步驟S146是在步驟S139被判斷為”是”的情況下所作的處理。在步驟S141中,通過參考讀入屬性,來判斷是否預裝載了應用程序。若進行了預裝載,則進入到步驟S135。
步驟S142是在讀入屬性是裝載的情況下所執(zhí)行的判斷步驟,判斷是否循環(huán)、交叉應用程序q。若進行了交叉,則使Java虛擬機38執(zhí)行高速緩存?zhèn)鞲?步驟S143)。若在本地存儲器29上存在應用程序q,則進入到步驟S135,使應用程序q裝載到Java虛擬機38上。
若本地存儲器29上沒有應用程序,則進行分支到頂端菜單標題等的例外處理(步驟S144)。若進行了循環(huán),則設置定時器(步驟S148),在該定時器超時之前(步驟S147),使Java虛擬機38執(zhí)行高速緩存?zhèn)鞲?步驟S146)。若在本地存儲器29上出現(xiàn)應用程序q,則進入到圖49的步驟S135,將應用程序q裝載到Java虛擬機38上。若超時,則進行分支到頂端菜單標題等的例外處理(步驟S144)。
圖51是模式化了怎樣進行基于Java虛擬機38的應用程序的讀入的圖。
箭頭◎1、2表示在應用程序管理表上生存、且在數(shù)據(jù)管理表上生存、且存在表示循環(huán)、交叉的讀入屬性的Java歸檔文件的讀入。箭頭◎1表示在步驟S65、67中進行的本地存儲器29傳感。該本地存儲29傳感由于可能在本地存儲器29中存在通過循環(huán)或交叉嵌入的數(shù)據(jù),所以在本地存儲器29內進行傳感。箭頭◎2表示對應于步驟S135的讀入,表示應用程序存在于本地存儲器29中的情況下的、從本地存儲器29向工作存儲器37的裝載。帶×的箭頭表示在本地存儲器29上沒有數(shù)據(jù)的情況。
箭頭1、2表示在應用程序管理表上生存、但是不在數(shù)據(jù)管理表中生存、且讀入屬性不存在的Java歸檔文件的讀入。
箭頭1對應于步驟S 145中的讀入,表示基于Java虛擬機38的來自BD-ROM的直接讀取的請求。箭頭2表示基于該要求的從BD-ROM向工組存儲器37的Java歸檔文件讀出。
箭頭☆1、2、3表示在應用程序管理表上生存、在數(shù)據(jù)管理表上生存、但是讀入屬性不存在的Java歸檔文件的讀入。
箭頭☆1對應于步驟S140中的讀入,表示基于Java虛擬機38的來自BD-ROM的直接讀取請求。箭頭☆2表示基于該請求的Java歸檔文件向本地存儲器29的讀出。箭頭☆3表示從本地存儲器29向工作存儲器37的Java歸檔文件的讀出。
如上所述,根據(jù)本實施方式,由于可以將在本地存儲器29上同時常駐的應用程序的數(shù)目規(guī)定為預定數(shù)目以下,所以可以盡量避免從本地存儲器29讀出時的高速緩存損失。由于可以保證沒有高速緩存損失的應用程序的讀出,所以每次應用程序調用時,不會從BD-ROM中讀出應用程序,直到停止AVClip的再現(xiàn)。由于沒有中途切斷AVClip再現(xiàn),所以可以保證AVClip的無縫再現(xiàn)。
(第七實施方式)第三實施方式中,根據(jù)應用程序的生存區(qū)間來決定非AV系標題的時間軸。但是,應用程序的動作不穩(wěn)定,會有啟動的失敗和異常終止。本實施方式提出了有啟動失敗、異常終止的情況下的失敗安全機構。圖52(a)是表示第七實施方式的BD-J對象的內部結構的圖。與圖7(b)相比,該圖的新的方面是追加了播放列表管理表。
圖52(b)是表示播放列表管理表的一例的圖。如該圖所示,播放列表管理表由PL的指定和該PL的再現(xiàn)屬性構成。PL的指定表示在對應的標題的標題時間軸中,可進行再現(xiàn)的PL。PL的再現(xiàn)屬性表示是否與標題再現(xiàn)的開始同時自動再現(xiàn)所指定的PL(將這樣自動再現(xiàn)的PL稱作缺省PL)。
接著,參考圖53來說明怎樣通過播放列表管理表來規(guī)定標題時間軸。圖53(a)是設定為再現(xiàn)屬性表示表示非自動再現(xiàn)的情況下的非AV系標題中的標題時間軸的圖。這時,由于沒有再現(xiàn)缺省PL,所以非AV系標題同樣從應用程序的生存區(qū)間來決定標題時間軸。
圖53(b)是表示將再現(xiàn)屬性設定為AutoPlay的非AV系標題的標題時間軸的圖。若設定為再現(xiàn)屬性表示AutoPlay,則重放控制引擎32與非AV系統(tǒng)標題的再現(xiàn)開始同時,開始缺省PL的再現(xiàn)。但是,即使應用程序正常動作,正常終止,以PL時間軸為基準來決定該標題時間軸。
圖53(c)表示在播放列表管理表中設定為再現(xiàn)屬性表示“AutoPlay”,應用程序異常終止的情況。通過該異常終止,變?yōu)槭裁磻贸绦蚨疾粍幼鞯臓顟B(tài),但是缺省PL的再現(xiàn)繼續(xù)。這時,缺省PL的PL時間軸為標題時間軸。
圖53(d)表示在播放列表管理表中設定為再現(xiàn)屬性表示“AutoPlay”,主應用程序的啟動失敗的情況。這時由于基于重放控制引擎32的缺省PL再現(xiàn)也與應用程序的啟動失敗無關地進行,所以缺省PL的時間軸變?yōu)闃祟}時間軸。
如上所述,若將播放列表管理表的再現(xiàn)屬性設定為“AutoPlay”,在Java應用程序的啟動中,在即使花費5~10秒的時間,進行該啟動的期間,變?yōu)椤翱傊菑椭剖裁吹臓顟B(tài)”。通過為該“總之是復制什么的狀態(tài)”,可以補償標題執(zhí)行開始時的啟動延時。
以上是對于本實施方式中的記錄媒體的改進。接著說明對于本實施方式的再現(xiàn)裝置的改進。
圖52(c)是表示在分支目標標題的播放列表管理表中,存在將再現(xiàn)屬性設定為AutoPlay的PL的情況下,再現(xiàn)裝置進行怎樣的處理的圖。如該圖所示,若再現(xiàn)屬性被設定為AutoPlay的PL存在于分支目標標題的播放列表管理表中,則BD-J模塊35內的應用程序管理器36指示重放控制引擎32,在標題分支緊之后開始該AutoPlayPL的再現(xiàn)。這樣,再現(xiàn)屬性為AutoPlay的PL在標題分支緊之后,命令再現(xiàn)開始。
由于對應于上述的記錄媒體的改進,所以應用程序管理器36以如圖54所示的處理過程來進行處理。
圖54是表示第七實施方式的應用程序管理器36的處理過程的流程圖。本流程圖在圖38的流程圖中,在步驟S21之前追加步驟S103、步驟S104,在步驟S21、步驟S22之間追加步驟S100,在步驟S23~步驟S26之間追加步驟S105。
步驟S103判斷對應的標題的播放列表管理表的再現(xiàn)屬性是否是AutoPlay。若是AutoPlay,則使重放控制引擎32開始對缺省PL的再現(xiàn)控制(步驟S104)。
步驟S100判斷是否是基于展示引擎31的再現(xiàn)中。若為再現(xiàn)中,則進入到步驟S101。
步驟S105是在步驟S23為”是”,步驟S25為”否”的情況下執(zhí)行的判斷步驟,表示再現(xiàn)屬性是否是AutoPlay。若為否,則向模塊管理器34通知標題終止。若為AutoPlay,則進入到步驟S101后繼續(xù)處理。
圖55是模式化表示通過在播放列表管理表中設定為“再現(xiàn)屬性=AutoPlay”來進行怎樣的再現(xiàn)的圖。這里,應進行再現(xiàn)的標題是包含疊加降落的瓦片的游戲應用程序的非AV系標題。在該非AV系標題中,若將播放列表管理表的再現(xiàn)屬性設定為AutoPlay,則還開始基于重放控制引擎32的缺省PL再現(xiàn)。由于并行進行游戲應用程序的執(zhí)行和缺省PL再現(xiàn),所以如圖55的上級的左側所示,顯示了將前景作為游戲應用程序的畫面,將背景作為缺省PL的再現(xiàn)圖像的合成圖像。設該游戲應用程序在中途異常終止。雖然游戲應用程序通過應用程序管理器36進行了強制終止,但是缺省PL的再現(xiàn)繼續(xù),所以標題變?yōu)閺椭剖裁吹臓顟B(tài)。通過這種播放列表管理表中的再現(xiàn)屬性的指定,即使在非AV系統(tǒng)標題內的游戲應用程序異常終止的情況下,也可維持沒有破壞和停機的動作。
(第八實施方式)第一實施方式中BD-J對象具有數(shù)據(jù)管理表、應用程序管理表二個標題,但是本實施方式公開了將這些綜合到一個表的形態(tài)。在該綜合時,如圖56(a)所示,廢棄數(shù)據(jù)管理表中的讀入屬性項目,代替其,在啟動屬性上設置稱作Ready屬性的屬性。所謂Ready屬性是指包含于來自其他應用程序的調用和來自應用程序管理器36的調用中具有的、表示在本地存儲器29上預先裝載應用程序的啟動屬性的類型。
圖56(b)是表示應用程序的處理和啟動屬性的關系的圖。如第一實施方式所示,應用程序的處理有是否預裝載(1),當前的再現(xiàn)時刻在有效區(qū)間到來時自動啟動,或根據(jù)其他的調用來啟動(2),根據(jù)標題再現(xiàn)進行來進行裝載(3),存在有是否生存的不同,根據(jù)這些不同,出現(xiàn)了如圖56(b)所示的5種形態(tài)。其中,將啟動屬性設定為AutoRun的是進行預裝載,“自動啟動”的情況和進行裝載,“自動啟動”的情況。
另一方面,啟動屬性設定為Ready屬性,是表示預裝載或進行裝載、啟動項目為“調用啟動”的情況。
另外,不會存在在工作存儲器37中生存,但是在本地存儲器29中不進行裝載的類型。這是因為在應用程序數(shù)據(jù)管理表中,工作存儲器37的生存區(qū)間和本地存儲器29的生存區(qū)間一體。
作為啟動屬性,由于追加了該Ready屬性,所以應用程序管理器36在標題再現(xiàn)之前,進行將啟動屬性設定為AutoRun的應用程序和將啟動屬性設定為Ready屬性的應用程序預裝載到本地存儲器29中的處理。由此,即使不設置讀入屬性,也可進行將應用程序預裝載到本地存儲器29中的處理。
圖57是模式化怎么進行第八實施方式的基于Java虛擬機38的應用程序的讀入的圖。以圖51以基礎來做出了該圖中的讀入的表現(xiàn)圖。
箭頭◎1、2表示在應用程序·數(shù)據(jù)管理表中生存、且將啟動屬性設定為Ready屬性的Java歸檔文件的讀入。
箭頭☆1、2、3表示在應用程序·數(shù)據(jù)管理表中生存、且啟動屬性為Persistent的應用程序的讀入。
這些箭頭◎1、2,箭頭☆1、2、3在圖51中進行了描述,但是在圖57中不存在在圖51中描述的相當于1、2的箭頭的讀入。這是因為應用程序·數(shù)據(jù)管理表一體化了應用程序管理表和數(shù)據(jù)管理表,所以不能表現(xiàn)應用程序管理表=生存、數(shù)據(jù)管理表=不存在的組合。
如上所述,根據(jù)本實施方式,由于可以將數(shù)據(jù)管理表、應用程序管理表整理為一個表(應用程序數(shù)據(jù)管理表),所以可以簡化基于應用程序管理器36的處理。另外,通過沒有讀入優(yōu)先級,可以更簡化應用程序·數(shù)據(jù)管理表。
(第九實施方式)第一實施方式中,在將應用程序讀入到本地存儲器29中時,參考讀入優(yōu)先級,根據(jù)該讀入優(yōu)先級,對讀入處理賦予優(yōu)劣。與此相對,第九實施方式是表示通過含義為Optional的信息和0到255的數(shù)值的組合來表示讀入優(yōu)先級的實施方式。
圖58(a)(b)是表示第九實施方式的讀入優(yōu)先級的一例的圖。255、128是0到255的讀入優(yōu)先級的一例,含義是本例中的application#2讀入優(yōu)先級比application#3高。
在本實施方式中,應用程序管理器36與第一實施方式相同,首先將添加了表示Mandatory的讀入優(yōu)先級的應用程序讀入到本地存儲器29。
之后,對于添加了表示Optional的讀入優(yōu)先級的應用程序,判斷本地存儲器29中的容量是否超過了應用程序的大小。若超過,則將添加了讀入優(yōu)先級=Optional的應用程序原樣讀入到本地存儲器29。若小,則將構成應用程序的數(shù)據(jù)中,表示讀入優(yōu)先級的數(shù)值最高的應用程序讀入到本地存儲器29中。并且,向本地存儲器29中的其余的區(qū)域讀出表示讀入優(yōu)先級的數(shù)值低的應用程序。
由此,對于Optional處理的應用程序,即使在再現(xiàn)裝置的本地存儲器29上沒有存儲整體的容量,也可將其一部分存儲到本地存儲器29中。
(第十實施方式)第一實施方式中應用程序管理器36將添加了同樣applicationID的應用程序,根據(jù)讀入優(yōu)先級排他地裝載到本地存儲器29中,但是第十實施方式中,通過對應用程序施加組屬性,來實現(xiàn)排他的裝載。圖59是表示添加了組屬性的數(shù)據(jù)管理表的圖。組屬性可以有不是排他組、是排他組的兩種設定。在是排他組的情況下,描述其組號。圖59(a)中的title#1的“—”表示不存在排他組。另一方面,title#2、#3的“group#1”有排他組,title#2、#3表示屬于group#1的排他組。以上是本實施方式的記錄媒體的改進。
本實施方式的再現(xiàn)裝置在根據(jù)數(shù)據(jù)管理表,將各應用程序讀入到本地存儲器29后,來核對本地存儲器29的應用程序中的組屬性。同樣,若屬于排他組的應用程序在本地存儲器29上存在兩個以上,則從本地存儲器29中刪除其中一個。
由此,可以提高本地存儲器29的使用效率。作為排他組的具體例,由啟動應用程序和通過該程序啟動的應用程序構成的組對應。由于通過本應用程序啟動的應用程序原則上限于一個,所以在本地存儲器29上應該僅存在啟動+1個的應用程序。若存在三個以上的應用程序,則需要應用程序管理器36進行從本地存儲器29中刪除其的處理,所以設置各應用程序的組屬性,并進行在本地存儲器29上存在的應用程序是否是啟動+1個的應用程序的校驗。
圖59(a)是表示對基于應用程序管理表的本地存儲器29的訪問的圖。該圖中,由于設定為讀入優(yōu)先級=Optional的application#2、application#3的組屬性是group#1,所以這些應用程序屬于同樣排他組。三個應用程序中,application#1是上述的啟動應用程序,由于application#2,application#3是由其啟動的應用程序,所以添加組屬性,使得僅某個存在于本地存儲器29中。應用程序管理器36參考這些application#2,application#1=3的組屬性,進行從本地存儲器29中刪除某一個的處理。通過該刪除在本地存儲器29上產生了空余。
(第十一實施方式)第一實施方式中,使每個標題具有應用程序管理表,但是在本實施方式中,提出了使該應用程序管理表的分配單位改變的提案。圖60是表示分配單位的變化的圖。該圖中,第一級表示在BD-ROM上記錄的三個應用程序管理表,第二級表示標題單位,第三級表示盤單位,第四級表示由多個BD-ROM構成的盤設置單位。圖中的箭頭模式地表示應用程序管理表的分配。若參考該箭頭,則可以看出第一級中的應用程序管理表#1、#2、#3分別分配到第二級表示的title#1、#2、#3上。另外,以盤為單位來分配應用程序管理表#4,對盤設置整體分配應用程序管理表#5。這樣,通過將應用程序管理表的單位設為比標題大的單位,可以在裝載了一個BD-ROM的期間,裝載了要生存的應用程序和多個BD-ROM中某一個的期間,定義要生存的應用程序。
(參考)以上的說明不應表示本發(fā)明的所有實施行為的形態(tài)。通過實施了下面(A)(B)(C)(D)…的改變的形態(tài)的實施行為方式,也可以實施本發(fā)明。本申請的權利要求的各發(fā)明是擴展了以上記載的多個實施方式及其變形方式的記載乃至一般化的記載。擴展乃至一般化的程序基于本發(fā)明的技術領域的申請當時的技術水平的特性。
(A)所有的實施方式中,將本發(fā)明的光盤作為BD-ROM來實施,但是本發(fā)明的光盤在記錄的動態(tài)腳本,索引表上有特征,該特征不依賴于BD-ROM的物理性質。若是記錄了動態(tài)腳本、索引表的記錄媒體,可以是任何記錄媒體。例如,可以是DVD-ROM、DVD-RAM、DVD-RW、DVD-R、DVD+RW、DVD+R、CD-R、CD-RW等的光盤、PD、MO等的光磁盤。另外,也可以是壓縮閃存卡、智能媒體(smart media)、存儲棒、多媒體卡、PCM-CIA卡等的半導體存儲卡。也可以是軟盤、SuperDisk、Zip、Clik!等磁記錄盤(i)、ORB、Jaz、SparQ、SyJet、EZFley、微驅動器等可移動硬盤驅動器(ii),進一步也可以是機器內置型的硬盤驅動器。
(B)所有的實施方式中的再現(xiàn)裝置在譯碼了在對BD-ROM上記錄的AVClip進行了譯碼后輸出到TV,但是,再現(xiàn)裝置也可僅為BD-ROM驅動器,在TV上具有除此之外的構成要素,這時,可以將再現(xiàn)裝置和TV組裝到由IEEE1394連接的家庭網(wǎng)絡中。另外,實施方式的再現(xiàn)裝置是與電視機相連來使用的驅動器,但是也可以是與顯示器為一體的再現(xiàn)裝置。進一步,在各實施方式的再現(xiàn)裝置中,可以僅將成為處理的本質部分的部分作為再現(xiàn)裝置。由于這些再現(xiàn)裝置都是在本說明書中記載的發(fā)明,所以即便是這些的任何一個形態(tài),以各實施方式所示的再現(xiàn)裝置的內部結構為基礎,來制造再現(xiàn)裝置的行為也為本申請的說明書中記載的發(fā)明的實施行為。各實施方式所示的再現(xiàn)裝置的基于有償·無償?shù)霓D讓(有償?shù)那闆r下是販賣、無償?shù)那闆r下是贈與)、出借、輸入的行為都是本發(fā)明的實施方式。通過店面展示、目錄要約、小冊子發(fā)布,向一般用戶提議這些的轉讓和出租的行為也是本再現(xiàn)裝置的實施行為。
(C)由于使用硬件資源來具體實現(xiàn)基于各流程圖所示的程序的信息處理,所以上述流程圖中表示了處理過程的程序單體作為發(fā)明成立。所有的實施方式以組裝到再現(xiàn)裝置的形態(tài)來表示了對于本發(fā)明的程序的實施行為的實施方式,但是也可從再現(xiàn)裝置分離,來實施各實施方式中表示的程序單體。程序單體的實施行為有生產這些程序的行為(1)、通過有償·無償來轉讓程序的行為(2)、出借的行為(3)、輸入的行為(4)和經雙向的電子通信線路向公眾提供的行為(5)、和通過(6)店面展示、目錄要約、小冊子發(fā)布,向一般用戶提議程序的轉讓和出租的行為。
(D)認為各流程圖中按時間序列執(zhí)行的各步驟的“時間”的要素為特定發(fā)明用的必須的事項。這樣,可以看出基于這些流程圖的處理過程公開了再現(xiàn)方法的使用方式。若通過按時間序列來進行各步驟的處理,進行這些流程圖的處理來實現(xiàn)本發(fā)明的本來的目的,達到作用和效果,則當然相當于本發(fā)明的記錄方法的實施行為。
(E)也可在BD-ROM上記錄一覽顯示Chapter用的菜單(ChapterMenu)和控制其舉動的MOVIE對象,而從頂端菜單中分支。另外,也可通過遙控器鍵的Chapter鍵的按下來進行調用。
(F)每次記錄在BD-ROM上時,最好在構成AVClip的各TS包上添加擴展頭。擴展頭稱作TP_extra_header,包含“Arribval_Time_Stamp”和“copy_permission_indicator”,具有4字節(jié)的數(shù)據(jù)長度。帶TP_extra_header的TS包(下面簡寫為帶EX的TS包)按每32個來進行分組,并寫入到三個扇區(qū)中。由32個帶EX的TS包構成的組是6144字節(jié)(=32×192),其與三個扇區(qū)大小6144字節(jié)(=2048×3)一致。將容納在三個扇區(qū)中的32個帶EX的TS包稱作“排列的單元(Aligned Unit)”。
在經IEEE1394相連的本地網(wǎng)絡的使用時,再現(xiàn)裝置200通過如下這樣的發(fā)送處理來進行Aligned Unit的發(fā)送。即,發(fā)送側的設備分別從在AlignedUnit中包含的32個帶EX的TS包取出TP_extra_header,并根據(jù)DTCP標準來加密TS包標題后輸出。每次TS包的輸出時,在TS包之間的任意位置上插入同步的(isochronous)包。該插入位置是基于TP_extra_header的Arribval_Time_Stamp所示的時刻的位置。隨著TS包的輸出,再現(xiàn)裝置200輸出DTCP_Descriptor。DTCP_Descriptor表示TP_extra_header中的復制允許設置,這里若描述DTCP_Descriptor,使其表示“禁止復制”,則在經IEEE1394相連的本地網(wǎng)的使用時TS包不記錄在其他設備上。
(G)在各實施方式中,在記錄媒體上記錄的數(shù)字流是AVClip,但是也可以是DVD-Video標準、DVD-Video記錄標準的VOB(videoObject)。VOB是通過多路復用視頻流、音頻流得到的ISO/IEC13818-1規(guī)格標準的節(jié)目流。另外,AVClip中的視頻流也可以是MPEG4和MMV方式。進一步,音頻流也可以是Linear-PCM方式、Dolby-AV3方式、MP3方式、MPEG-AAC方式、Dts、WMA(Windows media audio)。
(H)各實施方式中的視頻作品也可通過對用模擬廣播廣播的模擬視頻信號進行編碼來得到。也可以是由通過數(shù)字廣播廣播的傳輸流構成的流數(shù)據(jù)。
另外,也可對在錄像帶上記錄的模擬/數(shù)字的視頻信號進行編碼來得到內容。進一步,也可以對從攝像機直接取得的模擬/數(shù)字的視頻信號進行編碼來得到內容。除此之外,也可以是通過發(fā)送服務器發(fā)送的數(shù)字作品。
(I)BD-J模塊35也可以是為進行衛(wèi)星廣播接收而在設備上嵌入的Java平臺。BD-J模塊35若是該Java平臺,則本發(fā)明的再現(xiàn)裝置兼有作為MHP用STB的處理。
進一步,也可以是為進行便攜電話的處理控制在設備中嵌入的Java平臺。若BD-J模塊35是該Java平臺,則本發(fā)明的再現(xiàn)裝置兼有作為便攜電話的處理。
(K)在層模型中,也可以在BD-J模式上配置MOVIE模式。這是因為尤其由于MOVIE模式下的動態(tài)腳本的解釋和基于動態(tài)腳本的控制過程的執(zhí)行對于再現(xiàn)裝置的負擔輕,所以即使在BD-J模式上執(zhí)行MOVIE模式也可不會產生任何問題。這是因為在再現(xiàn)裝置和視頻作品的開發(fā)時,在一個模式下完成動作保證。
進一步,也可僅在BD-J模式下執(zhí)行再現(xiàn)處理。如第五實施方式所示那樣,由于可以在BD-J模式下進行與PL的再現(xiàn)同步的再現(xiàn)控制,所以是不用強制設置MOVIE模式的理由。
(L)也可通過在應多路復用在AVClip上的交互圖像流上設置導航指令,來實現(xiàn)從某個PL向其他PL的分支。
產業(yè)上的可用性本發(fā)明的再現(xiàn)裝置可以在如家庭影院系統(tǒng)中使用那樣,可以在個人用途中使用。但是本發(fā)明在上述實施方式中公開了內部結構,由于根據(jù)該內部結構可以批量生產,所以實質上可以在工業(yè)上使用。由此,本發(fā)明的再現(xiàn)裝置具有產業(yè)上的可利用性。
權利要求
1.一種再現(xiàn)裝置,同時進行包含數(shù)字流的標題的再現(xiàn)和應用程序的執(zhí)行,其特征在于,包括模塊,執(zhí)行應用程序;再現(xiàn)引擎部,再現(xiàn)屬于標題的數(shù)字流;以及模塊管理器,控制標題之間的分支,模塊具有虛擬機部和應用程序管理器,所述虛擬機部對應用程序進行譯碼,進行實例的生成和所生成的實例的執(zhí)行,所述應用程序管理器在實例存在于虛擬機部內的工作存儲器中的情況下,即使應用程序終止,也解釋為標題再現(xiàn)繼續(xù),若從再現(xiàn)控制引擎部產生再現(xiàn)終止事件,則認為標題再現(xiàn)終止,使模塊管理器選擇下一標題。
2.根據(jù)權利要求1所述的再現(xiàn)裝置,其特征在于,所述模塊包括監(jiān)聽模塊管理器,判斷根據(jù)用戶操作產生的鍵事件是否是與面向應用程序的接口相對應的鍵事件;以及缺省處理部,在為非對應的鍵事件的情況下,向再現(xiàn)控制引擎部命令與該非對應鍵事件相對應的處理。
3.一種程序,使計算機同時執(zhí)行包含數(shù)字流的標題的再現(xiàn)和應用程序的執(zhí)行,其特征在于,所述計算機具有虛擬機部,所述虛擬機部對應用程序進行譯碼,進行實例的生成和所生成的實例的執(zhí)行,所述程序控制計算機,使其在實例存在于虛擬機部內的工作存儲器中的情況下,即使應用程序終止,也解釋為標題再現(xiàn)繼續(xù),若產生再現(xiàn)終止事件,認為標題再現(xiàn)終止,使其選擇下一標題。
4.一種再現(xiàn)方法,使計算機同時執(zhí)行包含數(shù)字流的標題的再現(xiàn)和應用程序的執(zhí)行,其特征在于,所述計算機具有虛擬機部,所述虛擬機部對應用程序進行譯碼,進行實例的生成和所生成的實例的執(zhí)行,所述程序控制計算機,使其在實例存在于虛擬機部內的工作存儲器中的情況下,即使應用程序終止,也解釋為標題再現(xiàn)繼續(xù),若產生再現(xiàn)終止事件,即使標題再現(xiàn)終止,也選擇下一標題。
全文摘要
本發(fā)明提供一種BD-ROM再現(xiàn)裝置,同時進行包含AVClip的標題的再現(xiàn)和應用程序的執(zhí)行,包括執(zhí)行應用程序的BD-J模塊(35)、再現(xiàn)屬于標題的AVClip的重放控制引擎(32)和控制標題間的分支的模塊管理器(34)。BD-J模塊(35)具有Java虛擬機(38)和應用程序管理器(36),Java虛擬機(38)對應用程序進行譯碼,進行接口的生成和所生成的接口的執(zhí)行。應用程序管理器(36)在Java虛擬機(38)內的工作存儲器(37)存在實例的情況下,即使應用程序終止,也解釋為標題再現(xiàn)繼續(xù),若從重放控制引擎(32)發(fā)出再現(xiàn)終止事件,則即使標題再現(xiàn)終止,也使模塊管理器(34)選擇下一標題。
文檔編號G11B27/10GK1867988SQ20048002974
公開日2006年11月22日 申請日期2004年10月12日 優(yōu)先權日2003年10月10日
發(fā)明者池田航, 巖本啟明, 岡田智之 申請人:松下電器產業(yè)株式會社