專利名稱:重放裝置和重放方法
技術(shù)領(lǐng)域:
本發(fā)明涉及“虛擬包”的重放技術(shù)。
背景技術(shù):
“虛擬包”是用于以下的技術(shù)(i)生成完整地指示在只讀記錄介質(zhì)(例如BD-R0M) 上記錄的內(nèi)容以及在可讀寫記錄介質(zhì)(例如硬盤上)記錄的內(nèi)容的信息,以及(ii)重放或 執(zhí)行記錄在這些記錄介質(zhì)上的數(shù)字流和應(yīng)用程序(以下簡稱為應(yīng)用程序),就好像其被記 錄在一個虛擬的包中一樣。根據(jù)該技術(shù),通過對記錄在可重寫硬盤上的數(shù)據(jù)進(jìn)行更新,即使是在BD-ROM發(fā)行 之后,也可以將產(chǎn)品的內(nèi)容作為整個虛擬包而改變。例如,即使是記錄有電影產(chǎn)品本身的 BD-ROM發(fā)行之后,該電影產(chǎn)品的提供商也能夠通過經(jīng)由網(wǎng)絡(luò)提供其他未發(fā)表電影產(chǎn)品的電 影宣傳片,向用戶做最近電影產(chǎn)品的廣告,不管什么時候發(fā)行該BD-R0M。在以下專利文件中公開了涉及虛擬包的現(xiàn)有技術(shù)。[專利文件1]國際公開 WO 2004/030356A1。
發(fā)明內(nèi)容
本發(fā)明要解決的問題硬盤是可重寫的事實(shí)暗示可以竄改硬盤上所記錄的數(shù)據(jù),并且存在提供商和用戶 受到不利情況的可能性。例如,這種不利情況包括,在BD-ROM上記錄的數(shù)字流可能在違反 提供商意愿的狀態(tài)下被重放,從而可能降低產(chǎn)品的價值,并且BD-ROM上記錄的數(shù)字流可能 在執(zhí)行硬盤上記錄的非法應(yīng)用程序的狀態(tài)下被重放,從而使得重放裝置遇到故障。本發(fā)明的目的在于提供一種重放裝置,其能夠防止在可重寫記錄介質(zhì)上記錄的非 法數(shù)據(jù)被執(zhí)行,或者與只讀記錄介質(zhì)上記錄的數(shù)據(jù)組合地被播放。解決問題的方法為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種重放裝置,其重放相互結(jié)合的應(yīng)用程序和 數(shù)字流,所述重放裝置包括讀出單元,其用于讀出安置在所述重放裝置上的只讀記錄介質(zhì) 上記錄的文件;存儲單元,其中存儲(i)多個文件,(ii)合并管理信息,其從所述多個文件 中指定要與在所述只讀記錄介質(zhì)中記錄的內(nèi)容組合使用的文件,以及(iii)簽名信息,其 用于判斷所述合并管理信息的可靠性;判斷單元,其用于根據(jù)所述簽名信息判斷所述合并 管理信息的可靠性;包管理單元,其用于(a)在所述合并管理信息被判斷為可靠的情況下, 生成包信息,所述包信息指示通過將所述合并管理信息所指定的文件加入到所述只讀記錄 介質(zhì)的文件結(jié)構(gòu)中而獲得的新文件結(jié)構(gòu),以及(b)在所述合并管理信息被判斷為不可靠的情況下,不生成指示所述新文件結(jié)構(gòu)的包信息;重放單元,其用于根據(jù)由所述包管理單元所 生成的包信息,重放記錄在所述只讀記錄介質(zhì)上或者存儲在所述存儲單元中的數(shù)字流;以 及執(zhí)行單元,其用于根據(jù)由所述包管理單元所生成的包信息,執(zhí)行記錄在所述只讀記錄介 質(zhì)上或者存儲在所述存儲單元中的應(yīng)用程序。本發(fā)明的效果采用以上布置,根據(jù)本發(fā)明的重放裝置根據(jù)簽名信息驗(yàn)證合并管理信息的可靠 性,并且在所述合并管理信息不能被確認(rèn)為可靠時,所述重放裝置禁止從所述存儲單元中 存儲的文件生成包信息。采用該布置,可以防止在只讀記錄介質(zhì)中記錄的數(shù)據(jù)被與非法數(shù)據(jù)組合地執(zhí)行或 者重放。
圖1示出了根據(jù)本發(fā)明的重放裝置的使用形式;
圖2示出在BD-ROM上的文件目錄結(jié)構(gòu);圖3示意性地示出如何構(gòu)建AVClip ;圖4示出PL信息的結(jié)構(gòu);圖5示出在AVClip時間軸與PL時間軸之間的關(guān)系;圖 6 示出 了采用 4 個 Clip_Information_file_name 的成批指定(batch specifiaction);圖7示出了 PLmark信息的內(nèi)部結(jié)構(gòu);圖8示出了使用PLmark的章節(jié)定義;圖9示出了 SubPath信息的內(nèi)部結(jié)構(gòu);圖10示出了在SubPlayItem時間軸上的同步指定和重放間隔定義;圖IlA示出了 Java檔案(archive)文件中包含的程序和數(shù)據(jù);圖IlB示出類文件的內(nèi)部結(jié)構(gòu);圖12示出了 BD-J對象的內(nèi)部結(jié)構(gòu);圖13示出了 INDEX. BDMV的內(nèi)部結(jié)構(gòu);圖14示出了本地存儲器的目錄結(jié)構(gòu);圖15示出了由本地存儲器中的PL信息所定義的PlayList重放時間軸類型;圖16A示出了在BD-ROM上和在本地存儲器中存儲的應(yīng)用程序和AVClip ;圖16B示出了由在BD-ROM上和在本地存儲器中存儲的應(yīng)用程序和AVClip所構(gòu)成 的標(biāo)題;圖17示出了合并管理信息文件的內(nèi)部結(jié)構(gòu);圖18示出了根據(jù)本發(fā)明的重放裝置的內(nèi)部結(jié)構(gòu);圖19以層的形式示出了在指令ROM 21中存儲的軟件和硬件所構(gòu)成的配置;圖20示出了 Java虛擬機(jī)30的內(nèi)部結(jié)構(gòu);圖21示出了重放狀態(tài)的變換;圖22示出了要由虛擬文件系統(tǒng)單元38執(zhí)行的虛擬包信息的示例性結(jié)構(gòu);圖23A示出了整個光盤的時間軸;
圖23B示出了整個光盤的時間軸的結(jié)構(gòu);圖24示出如何由于標(biāo)題變化而更新虛擬包信息;圖25示意性地示出Java應(yīng)用程序是如何請求服務(wù)器傳送構(gòu)成虛擬包的文件的;圖26示意性地示出Java應(yīng)用程序是如何將從服務(wù)器傳送來的文件存儲到本地存 儲器中的;圖27示意性地示出Java應(yīng)用程序是如何請求虛擬文件系統(tǒng)更新虛擬包信息的;圖28示意性地示出是如何對虛擬包信息進(jìn)行更新的;圖29是示出模塊管理器33執(zhí)行的標(biāo)題重放控制的處理的流程圖;圖30是示出重放控制引擎32所執(zhí)行的PlayList重放處理的處理過程的流程圖;圖31是示出要由Java應(yīng)用程序執(zhí)行的、下載構(gòu)成虛擬包的文件的過程的流程 圖;圖32是示出虛擬文件系統(tǒng)單元38所執(zhí)行的準(zhǔn)備處理的流程圖;圖33是示出由虛擬文件系統(tǒng)單元38所執(zhí)行的更新處理的流程圖;圖34是流程圖,示出了當(dāng)由于標(biāo)題調(diào)用而將當(dāng)前標(biāo)題的重放臨時暫停時由重放 控制引擎所執(zhí)行的處理過程,以及當(dāng)原始播放的標(biāo)題的重放繼續(xù)時由重放控制引擎所執(zhí)行 的處理過程;圖35是虛擬包管理表的示例;圖36是示出根據(jù)第三實(shí)施例,用于構(gòu)建虛擬包的處理過程的流程圖;圖37是示出控制對文件的寫入訪問的API的處理過程的流程圖;圖38示出了在構(gòu)成虛擬包的文件之一具有錯誤的情況下,如何生成錯誤被校正 的校正文件;圖39是示出根據(jù)第四實(shí)施例,用于構(gòu)建虛擬包的處理過程的流程圖;圖40是流程圖,示出了在已經(jīng)構(gòu)建了虛擬包之后在對本地存儲器中的文件進(jìn)行 寫入訪問的情況下,提供文件I/O功能的API的處理;圖41示出了根據(jù)第五實(shí)施例的重放裝置的內(nèi)部結(jié)構(gòu);圖42示出了根據(jù)第五實(shí)施例的虛擬包管理表的示例;圖43是示出將下載的文件記錄到本地存儲器中的處理過程的流程圖;圖44是示出根據(jù)第五實(shí)施例,用于構(gòu)建虛擬包的處理過程的流程圖;圖45示出了根據(jù)第六實(shí)施例的虛擬包構(gòu)建的示例;圖46是示出根據(jù)第六實(shí)施例,用于構(gòu)建虛擬包的處理過程的流程圖;圖47是示出將文件移動到ACTIVE目錄中的處理過程的流程圖;圖48是示出根據(jù)第六實(shí)施例,控制對文件的寫入訪問的API的處理過程的流程 圖;圖49示出根據(jù)第七實(shí)施例的虛擬包的構(gòu)建的示例;圖50示意性地示出了是如何采用在SHARED目錄下的ACTIVE目錄和在disc#l目錄下的ACTIVE目錄構(gòu)建虛擬包的;圖51是示出了根據(jù)第七實(shí)施例,用于構(gòu)建虛擬包的處理過程的流程圖;圖52描述了構(gòu)建中間文件結(jié)構(gòu)的過程;圖53是詳細(xì)示出圖51中步驟S184中的處理的流程圖54是示出虛擬文件系統(tǒng)單元38如何將本地存儲器中的文件提供給其他模塊的流程圖;圖55示意性地示出了在根據(jù)第九實(shí)施例的虛擬包構(gòu)建過程中的顯示;圖56示出了在根據(jù)第九實(shí)施例的虛擬包構(gòu)建處理中的失敗顯示;圖57示意性地示出了在根據(jù)第九實(shí)施例的虛擬包構(gòu)建處理中的成功顯示;圖58是示出用于對與虛擬包的構(gòu)建有關(guān)的顯示進(jìn)行更新的處理過程的流程圖; 以及圖59示出了根據(jù)第九實(shí)施例的在本地存儲器中的內(nèi)容列表的顯示。
具體實(shí)施例方式第一實(shí)施例以下描述與本發(fā)明有關(guān)的重放裝置的實(shí)施例。首先,描述與本發(fā)明有關(guān)的重放裝 置的實(shí)現(xiàn)形式中的使用形式。圖1示出了與本發(fā)明有關(guān)的重放裝置的使用形式。在圖1中, 與本發(fā)明有關(guān)的重放裝置是重放裝置200。重放裝置200用于在包含重放裝置200、遙控器 300和電視機(jī)400的家庭劇場系統(tǒng)中提供電影作品。在此完成了對與本發(fā)明有關(guān)的重放裝置的使用形式的描述。接下來要描述的用于 由與本發(fā)明有關(guān)的重放裝置進(jìn)行的重放的記錄介質(zhì)。與本發(fā)明有關(guān)的重放裝置所播放的記 錄介質(zhì)是BD-R0M。圖2示出了 BD-ROM的內(nèi)部結(jié)構(gòu)。BD-ROM在圖2的第四層級(tier)示出,而BD-ROM上的軌道(trace)在第三層級 示出。圖2所示的軌道源自從已經(jīng)被畫出各面的BD-ROM的內(nèi)圓周螺旋至外圓周的軌道。該 軌道包含導(dǎo)入?yún)^(qū)、卷區(qū)以及導(dǎo)出區(qū)。圖2中的卷區(qū)具有包括物理層、文件系統(tǒng)層以及應(yīng)用層 的分層結(jié)構(gòu)。采用目錄結(jié)構(gòu)表示的BD-ROM的應(yīng)用格式給出了圖2中的第一層級。BDMV目 錄放置在BD-ROM中的第一層級的ROOT目錄下。在BDMV目錄下存在INDEX. BDMV文件和五個子目錄,分別為PLAYLIST目錄、 CLIPINF目錄、STREAM目錄、BDJA目錄和BOBJ目錄。STREAM目錄存儲形成主要數(shù)字流的文件,將擴(kuò)展名“M2TS”指定給該文件(00001. M2TS)在PLAYLIST目錄中存在擴(kuò)展名指定為“MPLS”的文件(00001. MPLS)。在CLIPINF目錄中存在擴(kuò)展名為“CLPI”的文件(00001. CLPI)。在BDJA目錄中存在具有擴(kuò)展名為“JAR”的文件(00001. JAR)。在BOBJ目錄中存在具有擴(kuò)展名為“B0BJ”的文件(00001. B0BJ)。接下來描述這些文件<AVClip>首先描述具有擴(kuò)展名“M2TS”的文件。圖3示意性地示出了具有擴(kuò)展名“M2TS” 的文件是如何構(gòu)建的。每個具有擴(kuò)展名“M2TS”的文件(00001. M2TS,00002. M2TS,00003. M2TS、...)存儲AVClip。通過多路復(fù)用TS包來構(gòu)成AVClip (中間層級),TS包是通過將包 含多個視頻幀(圖像pjl、pj2、pj3)的視頻流和多個音頻幀(上面第一層級)首先轉(zhuǎn)換為 PES包(上面第二層級),然后轉(zhuǎn)換為TS包(上面第三層級),以及以相同方式將字幕顯示 圖形流(下面第一層級的PG流)和對話交互圖形流(下面第一層級的IG流)轉(zhuǎn)換為TS包(下面第三層級)而得到的。除了通過圖3所示的多路復(fù)用獲得的AVClip之外,還存在不是從多路復(fù)用得到 的AVClip。這些AVClip稱為子剪輯(SubClip),包括組成音頻流、圖形流或者文本字幕流 (TextSTStream)的 AVClip。<剪輯信息>具有擴(kuò)展名“CLPI”的文件(00001. CLPI)是與AVClip相對應(yīng)的一條剪輯信息。剪輯信息,即管理信息,包括EP_map,EP_map示出了在AVClip中的流的GOP的頭位置和諸如 編碼格式、幀頻、比特率和分辨率等等之類的信息。<播放列表信息>具有擴(kuò)展名“MPLS”的文件(00001. MPLS)存儲播放列表(PL)信息。PL信息通過 查詢AVClip來定義播放列表。在圖4的左側(cè)示出了 PL信息的結(jié)構(gòu),其包括主路徑信息、 PLMark信息和子路徑信息。主路徑信息“MainPath () ”包括播放項(xiàng)目信息“PlayltemO ”,用箭頭mpl指示。播 放項(xiàng)目是通過在一個或多個AVClip時間軸上指定In_time和0ut_time所定義的重放間 隔。由多個播放間隔組成的播放列表(PL)是通過放置多條播放項(xiàng)目信息來定義的。圖4中 的箭頭mp2示出了播放項(xiàng)目信息內(nèi)部結(jié)構(gòu)的特寫(close up)。如圖4所示,播放項(xiàng)目信息 包括 In_time、Out_time 和示出相應(yīng) AVClip 的 Clip_Information_file_name。圖 5 示出了 AVClip與PL之間的關(guān)系。第一層級示出了 AVClip的時間軸,而第二層級示出了 PL的時間 軸。PL信息包括3條播放項(xiàng)目信息(PlayItem#l-#3) ,PlayItem#U#2和#3的In_time禾口 0ut_time定義三個播放間隔。當(dāng)三個重放間隔排列成線時,對AVClip定義了的不同的時間 軸。這就是第二層級的PL時間軸。因此通過在播放項(xiàng)目信息中的定義,能夠?qū)VClip定 義不同的時間軸。通常,每次指定一個AVClip,但是也可以進(jìn)行多個AVClip的成批指定。使用播放 項(xiàng)目信息中的Clip_Informaton_fili_name執(zhí)行AVClip的成批指定。圖6示出了使用4 個ClipJnformatiorufilejame的AVClip成批指定。圖中的第一層級到第四層級示出了 4個AVClip時間軸(AVClip#l-#4的時間軸),第五層級示出了 PL時間軸。4個時間軸采用 在播放項(xiàng)目信息中包含的所述4個Clip_Information_file_name來指定。這允許由In_ time和0ut_time定義4個可選擇播放的重放間隔。因此,在PL時間軸上定義由多條可轉(zhuǎn) 換角度的視頻(所謂的多角度間隔)組成的間隔。PLmark信息“ PLmark 0 ”指定在PL時間軸上的任意間隔為章節(jié)。圖7示出了 PLmark結(jié)構(gòu)的內(nèi)部結(jié)構(gòu),其包括ref_to_PlayItem_Id和Mark_time_stamp,如圖7中的箭 頭Pml所指示。圖8示出了使用PLmark的章節(jié)定義。圖8中的第一層級示出了 AVClip時 間軸,而第二層級示出了 PL時間軸。圖8中的箭頭pkl和pk2示出了播放項(xiàng)目(ref_to_ Playltem_ld)和Plmark中的時間點(diǎn)(Mark_time_stamp)的指定。作為這些指定的結(jié)果,在 PL時間軸上定義了 3個章節(jié)(章節(jié)#1-#3)。在此完成了 PLmark的描述。接下來描述子路 徑信息。子路徑信息“SubPath () ”通過指定子剪輯時間軸上的In_time和0ut_time來定義 一個或多個重放間隔,并且其具有圖9所示的內(nèi)部結(jié)構(gòu)。子路徑信息包括箭頭shl所指示的 子播放項(xiàng)目信息"SubPlayItemO ”。在箭頭sh2標(biāo)記的特寫中,子播放項(xiàng)目信息包括Clip_Information_fi1e_name> In_time、Out_time、sync_PlayItem_Id 和 sync_Start_PTS_of_ PlayItem0 采用 Clip_Information_file_name、In_time 和 Out_time 指定在子剪輯時間軸 上的 In_time 和 Out_time。sync_PlayItem_Id 禾口 sync_Start_PTs_of_PlayItem 用于將在 子剪輯時間軸上的重放間隔與PL時間軸進(jìn)行同步。這就允許在子剪輯時間軸和PL時間軸 兩者上相互同步地進(jìn)行處理。圖10示出在子剪輯時間軸上的重放間隔的同步指定和定義。圖10中的第一層 級示出了 PL時間軸,第二層級示出了子剪輯時間軸。圖10中的SubPlayItem. In_time和 SubPlayItem. 0ut_time分別示出了重放間隔的開始和結(jié)束。因此顯然,也在子剪輯時間軸 上定義重放間隔。由箭頭Snl標(biāo)記的Sync_PlayItem_Id示出了播放項(xiàng)目的同步指定,由箭 頭Sn2標(biāo)記的sync_Start_PTs_of_PlayItem示出了在PL時間軸上的播放項(xiàng)目中的時間點(diǎn) 的指定。在BD_R0M中的PL信息的特征在于,其使得可以定義使AVClip能夠被切換的多角 度間隔和使AVClip和子剪輯能夠被同步的同步間隔。剪輯信息和PL信息被分類為“靜態(tài) 腳本(static scenarios) ”。以下描述“動態(tài)腳本”。在此,“動態(tài)”指由于在重放裝置200中的用戶鍵事件和和 狀態(tài)改變等等造成的重放控制內(nèi)容的改變。采用BD_R0M,能夠采用與Java應(yīng)用程序相同的 描述來描述重放控制。即,采用BD_R0M,Java應(yīng)用程序作為動態(tài)腳本?!碕ava應(yīng)用程序〉以下描述Java應(yīng)用程序。Java應(yīng)用程序包括加載在虛擬機(jī)的堆區(qū)域(也稱為工 作存儲器)中的一個或多個xlet程序。應(yīng)用程序由工作存儲器中加載的xlet程序以及數(shù) 據(jù)構(gòu)成。在此完成了對Java應(yīng)用程序結(jié)構(gòu)的描述。Java應(yīng)用程序的實(shí)體是在圖2中的BDMV目錄下的BDJA目錄中存儲的Java檔案 文件(00001. jar, 00002. jar)。以下參考圖11描述Java檔案文件。〈Java檔案文件〉Java檔案文件(圖9中的00001. JAR)是一個或多個類文件和數(shù)據(jù)文件等的集 合。圖IlA示出了在檔案文件中收集的程序和數(shù)據(jù)。圖IlA中的數(shù)據(jù)是由Java存檔器 (archiver)收集并排列在幀中所示的目錄結(jié)構(gòu)中的多個文件。該目錄結(jié)構(gòu)包括Root目錄、 Java目錄禾口 image目錄,common, pkg文件方文置在Root目錄中,類文件(aaa. class, bbb. class)放置在Java目錄中,menu, jpg文件放置在image目錄中。Java檔案文件是Java存 檔器將這些文件收集在一起的結(jié)果。當(dāng)將類文件和數(shù)據(jù)從BD_R0M讀入到高速緩沖器中時, 展開類文件和數(shù)據(jù),并在高速緩沖器中將其看作存在于目錄中的多個文件。在Java檔案文 件的文件名中的5位(five-digit)數(shù)值“zzzzz”示出了 Java檔案文件的ID,BD_J對象指 使用這種值的Java檔案文件。通過在已經(jīng)將Java檔案文件讀入高速緩沖器時查詢在文件 名中的該數(shù)值,就可以提取構(gòu)成任意Java應(yīng)用程序的數(shù)據(jù)和程序。圖IlA中的類文件與上述xlet程序相對應(yīng)。采用由Java操作環(huán)境所支持的操作 模式(BD-J模式)的重放過程規(guī)定使用與這些類文件的實(shí)例相對應(yīng)的xlet程序。xlet程 序是能夠采用Java多媒體框架(JMF)接口的Java程序,并且其根據(jù)JMF等等、基于鍵事件 來執(zhí)行播放列表重放處理。此外,xlet程序還能夠執(zhí)行訪問WWW站點(diǎn)和下載內(nèi)容的過程。這實(shí)現(xiàn)了通過將所下載內(nèi)容與播放列表相混合創(chuàng)建的原始作品的重放。接下來描述xlet程序的類文件。圖IlB示出了類文件的內(nèi)部結(jié)構(gòu)。如圖IlB所 示,該類文件與普通類文件類似,具有常數(shù)池、接口、方法1、2、3、....η。在重放裝置200中, 在類文件中的方法包括由預(yù)先記載的鍵事件所觸發(fā)的那些方法(時間監(jiān)聽器)和用于調(diào)用 函數(shù)API (應(yīng)用程序接口)的那些方法。通過采用分配給給定方法的局部變量和在調(diào)用該 方法時出現(xiàn)的自變量,來描述在這些方法中的計算過程等等。在此完成了對Java檔案文件 的描述。接下來描述具有擴(kuò)展名“B0BJ”的文件。該文件存儲BD-J對象。B D-J對象是通 過將在播放列表中定義的AVClip序列與應(yīng)用程序相關(guān)聯(lián)來定義標(biāo)題的信息。圖12示出 了 BD-J對象的內(nèi)部結(jié)構(gòu)。BD-J對象示出了“應(yīng)用程序管理表”和“播放列表信息參考值”。 應(yīng)用程序管理表通過枚舉應(yīng)用程序標(biāo)識符(應(yīng)用程序ID)和構(gòu)成該應(yīng)用程序的檔案文件的 ID,示出了其生命周期為標(biāo)題的每個應(yīng)用程序。換而言之,一個應(yīng)用程序包括一個或多個 Java檔案文件?!安シ帕斜硇畔⒖贾怠笔境隽水?dāng)標(biāo)題開始時同時被重放的播放列表信息。在此完成了對具有擴(kuò)展名“B0BJ”的文件的描述。應(yīng)該注意的是,在以下列出的國際公開中,公開了對BD-J對象和應(yīng)用程序管理表 的描述,參考該公開以進(jìn)行進(jìn)一步詳細(xì)描述國際公開 WO 2005/045840接下來描述INDEX. BDMV文件。INDEX. BDMV是整個BD-ROM的管理信息,包括諸如組織ID和光盤ID之類的信息, 其中組織ID是標(biāo)識電影產(chǎn)品提供商的標(biāo)識符,光盤ID是為由提供商所提供的每個BD-ROM 指定的標(biāo)識符。當(dāng)將光盤插入重放裝置時,首先讀出INDEX. BDMV,這樣重放裝置就一一對應(yīng) 地識別出光盤。另外,INDEX. BDMV包括一個表格,其相互對應(yīng)地示出了在BD-ROM中的多個 可播放標(biāo)題和規(guī)定各標(biāo)題的BD-J對象。以下描述可以記錄在BD-ROM中的標(biāo)題類型,其包 括 FirstPlayTitle,Top_menuTitle 和 Title#U #2 和 #3。在進(jìn)行任何其他事情之前,在加載BD-ROM時,F(xiàn)irstPlayTitle承擔(dān)播放BD-ROM的 動態(tài)商標(biāo)。因此,在加載BD-ROM時,F(xiàn)irstPlayTitle實(shí)現(xiàn)播放象征電影作品的制片商和/ 或者發(fā)行者的動態(tài)商標(biāo)。Top_menuTitle包括AVClip和用于播放在BD-ROM中的菜單分層的極頂部所放置 的菜單的應(yīng)用程序。Title#l、#2和#3是與普通電影作品相對應(yīng)的標(biāo)題。因此,INDEX. BDMV是示出諸 如FirstPlayTitle、Top_menuTitle、Title#l到#3之類的標(biāo)題與單個BD-J對象的對應(yīng)關(guān) 系的文件。圖13示出了 INDEX. BDMV的內(nèi)部結(jié)構(gòu)。如圖所示,INDEX. BDMV包括多條標(biāo)題信息, 例如"FirstPlayTitle 信息”、“Top_menuTitle 信息”、“Title#l 信息”、“Title#2 信息,,和 “Title#3信息”。每條標(biāo)題信息示出在標(biāo)題號與規(guī)定標(biāo)題的BD-J對象之間的對應(yīng)關(guān)系。采 用這樣一條標(biāo)題信息,就可以指定定義標(biāo)題的BD-J對象,采用這種BD-J對象,就可以使得 播放列表信息與應(yīng)用程序相互結(jié)合地工作。因此完成對INDEX. BDMV的描述。在以下列出的國際公開中,公開了對INDEX.BDMV的詳細(xì)描述,參考該公開以進(jìn)行 進(jìn)一步詳細(xì)描述
國際公開 WO 2004/025651BD-ROM不是用于本發(fā)明的重放裝置的唯一記錄介質(zhì)。磁記錄裝置(本地存儲器),諸如重放裝置中內(nèi)置的硬盤,也可用于本發(fā)明的重放裝置。以下描述了在這種本地存儲器 上記錄的數(shù)據(jù)。圖14示出了在本地存儲器中的目錄結(jié)構(gòu)。在這種目錄結(jié)構(gòu)中,子目錄“organization#l”位于ROOT目錄下,并且在該目錄下 是子目錄“disc#l”和“disc#l”。將“organizatiorrfl”目錄分配給特定的電影作品提供 商。將“disc#l”和“disc#l”目錄分別分配給由該提供商所提供的BD-R0M。在每個BD-ROM 的INDEX. BDMV中指示的組織ID和光盤ID的值用于目錄名。在與特定提供商相對應(yīng)的目錄中提供與BD-ROM相對應(yīng)的目錄,允許分別存儲與 單個BD-ROM相關(guān)的下載數(shù)據(jù)。在這些子目錄下存儲播放列表信息、剪輯信息和AVClip,與 BD-ROM中所存儲的類似。還額外存在Java檔案文件、合并管理信息文件和簽名信息文件。與在BD-ROM上的播放列表信息相比,在BD-ROM上播放列表僅僅指AVClip,而在 本地存儲器中的播放列表信息(在虛擬包中新加入的播放列表信息)指在BD-ROM上的 AVClip和本地存儲器18中的AVClip。在此,描述了本地存儲器中的播放列表信息由4條播放列表信息(播放項(xiàng)目信 息#1-#4)構(gòu)建的情況。在頭條信息指在BD-ROM上的剪輯信息而剩余三條信息指在本地 存儲器中的信息的情況下,該播放列表信息從在BD-ROM上的AVClip和在本地存儲器中的 AVClip來定義單一流序列,如圖15所示。圖15示出了由存儲在本地存儲器中的PL信息所定義的播放列表重放時間軸的種 類。第一層級示出了在BD-ROM上存儲的AVClip的重放時間軸,第二層級示出了在本地存 儲器中存儲的PL信息中定義的播放列表的重放時間軸。第三層級示出了在本地存儲器中 存儲的AVClip#3的重放時間軸。第四層級示出了在本地存儲器中存儲的AVClip#4的重放 時間軸。第五層級示出了在本地存儲器中存儲的AVClip#5的重放時間軸。在播放列表信息中的播放項(xiàng)目中,在播放項(xiàng)目信息#2、#3和M指定AVCl ip#2、#3 和M作為重放間隔的情況下,播放列表信息能夠?qū)⒃贐D-ROM上的AVClip和在本地存儲器 18中的AVClip兩者規(guī)定為單一流序列。如上所述,可以將在BD-ROM上的AVClip和在本地存儲器18中的AVClip兩者規(guī) 定為單一流序列,并且通過將該流序列與在BD-ROM上或者本地存儲器中的應(yīng)用程序組合, 可以從這些AVClip和從在BD-ROM上或者在本地存儲器中記錄的應(yīng)用程序構(gòu)建單一標(biāo)題。 在如圖16A所示,在AVClip#l被記錄在BD-ROM上并且AVClip#2到#4和應(yīng)用程序被記錄 在本地存儲器中的情況下,可以將這些AVClip和應(yīng)用程序看作單一標(biāo)題,如圖16B所示。接下來描述合并管理信息文件。該合并管理信息文件總體示出了構(gòu)成虛擬包的所 有這些文件,并且其在本地存儲器中的disc#l和disc#2目錄中。圖17示出了合并管理信息文件的示例性內(nèi)部結(jié)構(gòu)。合并管理信息文件包括與在 本地存儲器中的構(gòu)成虛擬包的文件相關(guān)的存儲位置信息。對于每個文件而言,該存儲位置 信息包括指示在本地存儲器18中的文件的存儲位置的文件路徑,和指示從在該文件中的 數(shù)據(jù)確定的并使用單向函數(shù)計算的文件的散列值的“散列值”。接下來描述簽名信息文件。簽名信息文件示出了在合并管理信息文件上的提供商的電子簽名。通常采用的電子簽名是通過計算需要竄改驗(yàn)證(tamper-proof)的信息的散 列值并使用某種密鑰對該散列值進(jìn)行加密來獲得的。在根據(jù)本實(shí)施例的簽名信息文件中, 使用與重放裝置持有的合并證書中的公鑰相對應(yīng)的密鑰,對合并管理信息文件的散列值進(jìn) 行加密。應(yīng)該注意的是,合并證書是用于驗(yàn)證合并管理信息文件的證書,并且其包括提供 商所發(fā)布的公鑰。預(yù)先將提供商所提供的合并證書并入重放裝置中。作為示例,對于合并 證書的文件格式而言,可以使用X. 509。X. 509的詳細(xì)說明寫入在國際電報電話咨詢委員會 公布的 CCITT Recommendation X. 509 (1988), "The Directory-AuthenticationFramewor k,,中。
應(yīng)該注意的是,盡管以上描述示出預(yù)先將合并證書并入重放裝置中,但是將合并 證書記錄在BD-ROM上也是可接受的??商鎿Q地,從通過因特網(wǎng)提供合并證書的服務(wù)器裝置 中下載并獲得合并證書也是可接受的。在此完成了對記錄介質(zhì)的描述。以下描述與本發(fā)明相關(guān)的重放裝置的內(nèi)部結(jié)構(gòu)?!粗胤叛b置〉圖18示出了本發(fā)明的重放裝置的內(nèi)部結(jié)構(gòu)。本發(fā)明的重放裝置可以根據(jù)圖中所 示的內(nèi)部結(jié)構(gòu)進(jìn)行工業(yè)制造。本發(fā)明的重放裝置主要包括兩個部分,例如系統(tǒng)LSI和驅(qū)動 裝置,并且其可以通過將這些部分安放在重放裝置的箱體中和安放在基板上進(jìn)行工業(yè)制 造。系統(tǒng)LSI是集成電路,在該集成電路中集成了用于實(shí)現(xiàn)重放裝置功能的各種處理單元。 采用這種方式制造的重放裝置包括=BD-ROM驅(qū)動器1、讀緩沖器2、多路分解器3、視頻解碼 器4、視頻平面5、P圖形解碼器6、顯示圖形平面(presentation Graphic plane) 7、組合單 元8、字體生成器9、1圖形解碼器10、開關(guān)11、交互圖形平面12、合成單元13、CLUT單元14、 CLUT單元15、音頻解碼器16、網(wǎng)絡(luò)設(shè)備17、指令ROM 21、用戶事件處理單元22、PSR組23、 CPU 24、腳本存儲器25、本地存儲器26和開關(guān)27。首先描述與記錄在BD-ROM上的AVClip的重放有關(guān)的組成組件(BD-R0M驅(qū)動器1 至音頻解碼器16)。 BD-ROM驅(qū)動器1加載/退出,以及訪問BD-R0M。讀緩沖器2是先進(jìn)先出(FIFO)存儲器,在該存儲器中,根據(jù)先進(jìn)先出存儲從 BD-ROM或者本地存儲器18中讀出的傳輸流(TS)包。多路分解器(De-MUX) 3從讀緩沖器2中取出TS包,并將這些TS包轉(zhuǎn)換為PES包。 然后,在通過該轉(zhuǎn)換獲得PES包中,將具有由CPU 24設(shè)定的PID的PES包輸出到視頻解碼 器4、P圖形解碼器6、I圖形解碼器10以及音頻解碼器16中的一個。視頻解碼器4對從多路分解器3輸出的PES包進(jìn)行解碼,以獲得未壓縮格式的圖 像,并將這些圖像寫入視頻平面5。視頻平面5用于存儲未壓縮圖像。平面是在重放裝置中的存儲區(qū),用于存儲一個 屏幕大小的像素數(shù)據(jù)。視頻平面5具有1920X1080分辨率,所存儲的圖像數(shù)據(jù)由采用16比 特YUV表示的像素數(shù)據(jù)構(gòu)成。在視頻平面5中,在視頻流中的重放視頻圖像能夠?qū)τ诿繋?進(jìn)行縮放??s放包括將每幀的重放視頻圖像改變?yōu)橥暾曨l平面5的1/4(四分之一)或 者1/1 (全比例)??s放是根據(jù)來自CPU 24的指令采用BD-J模式執(zhí)行的,實(shí)現(xiàn)了屏幕的產(chǎn) 生,從而將視頻流的重放圖像縮小到屏幕的角落或者投影到整個屏幕。
P圖形解碼器6對從BD-ROM中讀出的顯示圖形流進(jìn)行解碼,并將未壓縮圖形寫入 顯示圖形平面7。作為對圖形流解碼的結(jié)果,字幕出現(xiàn)在屏幕上。顯示圖形平面7是具有用于一屏大小數(shù)據(jù)的空間的存儲器,其能夠存儲一屏大小 的未壓縮圖形。該平面具有1920X1080的分辨率,在顯示圖形平面7中的未壓縮圖形的像 素由8比特索引顏色來表示。在通過采用CLUT(顏色查詢表)轉(zhuǎn)換索引顏色,來將顯示圖 形平面7中存儲的的未壓縮圖形用于顯示。合成單元8將在視頻平面5中存儲的未圖像數(shù)據(jù)(i)與顯示圖形平面7中所存儲 的進(jìn)行合成。字體生成器9使用字符字體擴(kuò)展在位圖中的textST流中包含的文本代碼,并將所 擴(kuò)展的代碼寫入顯示圖形平面7。I圖形解碼器10采用DVD-Iike模式對從BD-ROM或者本地存儲器18中讀出的IG 流進(jìn)行解碼,并且將未壓縮圖形寫入交互圖形平面12。
開關(guān)11選擇性地將由字體生成器9生成的字體序列和由P圖形解碼器6的解碼 得到的圖形中的一個寫入到顯示圖形平面7。交互圖形平面12被寫有由I圖形解碼器10解碼得到的未壓縮圖形。將由應(yīng)用程 序畫出的字符和圖形采用α RGB全彩色并采用BD-J模式寫入到交互圖形平面12中。合成單元13將在交互圖形平面12中所存儲的內(nèi)容與從合成單元8輸出的合成圖 形進(jìn)行合成(即,未壓縮圖像數(shù)據(jù)與在顯示圖形平面7中所存儲的內(nèi)容的合成)。該合成使 得由應(yīng)用程序?qū)懭氲絀圖形解碼器10中的字符和圖形覆蓋到未壓縮圖像數(shù)據(jù)上并進(jìn)行顯
7J\ οCLUT單元14將在視頻平面5中存儲的未壓縮圖形中的索引顏色轉(zhuǎn)換為Y、Cr、Cb值。當(dāng)采用DVD-Iike模式工作時,CLUT單元15將在交互圖形平面12中存儲的未壓 縮圖形中的索引顏色轉(zhuǎn)換為Y、Cr、Cb值。當(dāng)采用BD-J模式工作時,CLUT單元15將α RGB 全彩色轉(zhuǎn)換為Y、Cr、Cb。音頻解碼器16對從多路分解器3輸出的PES包進(jìn)行解碼,并輸出未壓縮音頻數(shù) 據(jù)。在此完成了對與AVClip重放有關(guān)的構(gòu)成組件的描述。以下描述與BD-J模式工作 有關(guān)的構(gòu)成組件(網(wǎng)絡(luò)設(shè)備17至De-MUX 20)網(wǎng)絡(luò)設(shè)備17實(shí)現(xiàn)了在重放裝置中的通信功能。在應(yīng)用程序采用BD-J模式指定 URL的情況下,網(wǎng)絡(luò)設(shè)備17與該URL指示的站點(diǎn)建立TCP連接、FTP連接等等。作為所述連 接被建立的結(jié)果,使得Java應(yīng)用程序能夠從該站點(diǎn)進(jìn)行下載。本地存儲器18是硬盤,用于存儲元數(shù)據(jù)以及從通信和BD-ROM之外的記錄介質(zhì)提 供的內(nèi)容,例如通過由網(wǎng)絡(luò)設(shè)備17建立的連接從站點(diǎn)下載的內(nèi)容。元數(shù)據(jù)是用于綁定和管 理在本地存儲器18中的所下載內(nèi)容的信息。通過訪問本地存儲器18,采用BD-J模式的應(yīng) 用程序能夠使用所下載內(nèi)容執(zhí)行各種處理。讀緩沖器19是FIFO存儲器,其在子剪輯包含在BD-ROM上或者在本地存儲器18 中所存儲的內(nèi)容中的情況下,基于先進(jìn)先出存儲組成子剪輯的TS包。多路分解器(De-MUX) 20從讀緩沖器19中取出TS包,并將所讀出的TS包轉(zhuǎn)換為PES包。然后,在通過該轉(zhuǎn)換獲得的PES包中,將具有所期望PID的PES包輸出到字體生成 器9、P圖形解碼器6和音頻解碼器16。上述組件,即網(wǎng)絡(luò)設(shè)備17到De-MUX 20使得Java應(yīng)用程序通過網(wǎng)絡(luò)下載的內(nèi)容 能夠采用與在BD-ROM中所記錄的內(nèi)容相同的方式進(jìn)行重放。以下描述了在重放裝置中用 于實(shí)現(xiàn)集體控制的構(gòu)成組件(指令ROM 21-開關(guān)27)。指令ROM 21存儲規(guī)定與重放裝置相關(guān)的控制的軟件。用戶事件處理單元22響應(yīng)于遙控器或者重放裝置的前面板的鍵操作,將用于執(zhí) 行這些操作的用戶事件輸出到CPU 24。PSR組23是重放裝置中內(nèi)置的電阻器,其包括64個獨(dú)立的播放器狀態(tài)寄存器 (PSR)和4096個獨(dú)立的通用寄存器(GPR)。PSR4到PSR8是表示當(dāng)前重放時間點(diǎn)的I3RS15
通過將PSR4設(shè)定為1-100的值,來指示當(dāng)前重放點(diǎn)的標(biāo)題。當(dāng)將PSR4設(shè)定為“0” 時,意味著當(dāng)前重放點(diǎn)為頂部菜單。通過將PSR5設(shè)定為1-999的值,來指示當(dāng)前重放點(diǎn)的章節(jié)號。當(dāng)PSR5設(shè)定為 “ OxFFFF ”時,意味著在重放裝置中的章節(jié)號為空。通過將PSR6設(shè)定為0-999的值,來指示當(dāng)前重放點(diǎn)所屬的PL(當(dāng)前PL)號。通過將PSR7設(shè)定為0-255的值,來指示當(dāng)前重放點(diǎn)所屬的播放項(xiàng)目(當(dāng)前播放項(xiàng) 目)號。通過將PSR8設(shè)定為O-OxFFFFFFFF的值,來指示使用45KHz時間精度的當(dāng)前重放 點(diǎn)(當(dāng)前顯示時間或者“PTM”)。PSR4到PSR8使得能夠在整個BD-ROM的時間軸上指定重 放的當(dāng)前時間點(diǎn)。CPU 24運(yùn)行在指令ROM 21中存儲的軟件,以執(zhí)行與整個重放裝置相關(guān)的控制。這 些控制根據(jù)從用戶事件處理單元22輸出的用戶事件和在PSR組23中的PSR設(shè)定值而動態(tài)改變。腳本存儲器25用于存儲當(dāng)前PL信息和當(dāng)前剪輯信息。當(dāng)前PL信息是當(dāng)前用于 處理的BD-ROM中所記錄的該條PL信息。當(dāng)前剪輯信息是當(dāng)前用于處理的BD-ROM中所記 錄的該條剪輯信息。本地存儲器26是高速緩存器,用于在從BD-ROM的讀出速度慢時,暫時存儲在 BD-ROM上所記錄的內(nèi)容。本地存儲器26的提供允許采用BD-J模式的應(yīng)用程序高效運(yùn)行。開關(guān)27選擇性地將從BD-ROM和本地存儲器18讀出的數(shù)據(jù)傳遞到讀緩沖器2、讀 緩沖器19、腳本存儲器25和本地存儲器26中的一個。因此完成對本發(fā)明的重放裝置的硬件配置的描述。以下將描述本實(shí)施例的重放裝 置中的軟件結(jié)構(gòu)。圖19采用層結(jié)構(gòu)形式示出了在指令ROM 21中存儲的軟件和硬件構(gòu)成的配置。如 圖所示,重放裝置的層結(jié)構(gòu)包括以下(a)第一層,用于BD播放器設(shè)備(b)第二層,用于BD播放器模型以及(c)第三層,用于應(yīng)用程序運(yùn)行時間環(huán)境在這些層中,圖18所示的重放裝置的硬件配置屬于第一層。圖18所示的硬件結(jié) 構(gòu)中,圖“BD播放器設(shè)備”中所示的第一層包括“解碼器”,其包括視頻解碼器4、P圖形解碼器6、I圖形解碼器10、音頻解碼器16 ;“平面”,其包括視頻平面5、顯示圖形平面7、交互圖 形平面12 ;BD-ROM及其文件系統(tǒng);以及本地存儲器18和及其文件系統(tǒng)。第二層“BD播放器模型”包括以下兩個層(bl)和(b2)(b2)用于重放控制引擎32的層;以及(bl)用于虛擬文件系統(tǒng)單元38和顯示引擎31的層。由第二層提供函數(shù)API,用于位于其上的層。在這些層中,圖18所示的PSR組23和腳本存儲器25在重放控制引擎32中。第三層“應(yīng)用程序運(yùn)行時間環(huán)境”包括以下棧層(c2)和(Cl)(c2)存在模塊管理器33的層(cl)存在 DVD-Iike 模塊 29a 和 Java 平臺 29b 的層。以下描述在該軟件結(jié)構(gòu)中的構(gòu)成組件。<DVD-like 模塊 29a 和 Java 平臺 29b>DVD-Iike模塊29a對導(dǎo)航命令進(jìn)行解碼,并根據(jù)解碼結(jié)果執(zhí)行對于重放控制引擎 32的函數(shù)調(diào)用。在以下國際申請中公開,在以下列出的國際公開中,公開了與DVD-Iike模塊有關(guān)的現(xiàn)有技術(shù)和由該 DVD-Iike模塊所執(zhí)行的Movie對象,參考該公開以進(jìn)行進(jìn)一步詳細(xì)描述國際公開 WO 2004/074976Java平臺29b是所謂的Java平臺,具有將以下內(nèi)容按層排列的結(jié)構(gòu)(dl-l)Java 虛擬機(jī) 30(dl-2)中間設(shè)備,用于使得Java虛擬機(jī)能夠工作〈Java 虛擬機(jī) 30>Java虛擬機(jī)30加載將應(yīng)用程序構(gòu)建在工作存儲器中的xlet程序,對該xlet程序 進(jìn)行解碼,并根據(jù)解碼結(jié)果對位于其下的層進(jìn)行控制。對位于其下的層進(jìn)行控制,是通過向 中間設(shè)備發(fā)布方法以便將該方法替換為BD重放裝置所對應(yīng)的函數(shù)調(diào)用,并且在該替換之 后將該函數(shù)調(diào)用發(fā)布到重放控制引擎32來實(shí)現(xiàn)的?!碕ava虛擬機(jī)30的內(nèi)部結(jié)構(gòu)>以下描述Java虛擬機(jī)30的內(nèi)部結(jié)構(gòu)。圖20示出了 Java虛擬機(jī)30的內(nèi)部結(jié)構(gòu)。 如圖所示,Java虛擬機(jī)30包括CPU 24、用戶類加載器52、方法區(qū)53、工作存儲器54、線程 55a、55b、. . . 55η 以及 Java 找 56a、56b、. . . 56n0用戶類加載器52從本地存儲器26等等中的BDJA目錄中的Java檔案文件中讀出 類文件,并將所讀出的類文件存儲在方法區(qū)53中。當(dāng)應(yīng)用程序管理器36指定文件路徑并 命令用戶類加載器52執(zhí)行讀出時,用戶類加載器52讀出該類文件。在該文件路徑指示本 地存儲器26的情況下,用戶類加載器52將從本地存儲器26中的構(gòu)成應(yīng)用程序的Java檔 案文件中的類文件讀出到工作存儲器54中。在該文件路徑指示在文件系統(tǒng)中的目錄的情 況下,用戶類加載器52將從BD-ROM或者本地存儲器18中的構(gòu)成應(yīng)用程序的Java檔案文 件中的類文件讀出到工作存儲器54中。方法區(qū)53中存儲由用戶類加載器52從本地存儲器26中讀出的類文件。工作存儲器54是所謂的堆區(qū)域,其中存儲各種類文件的實(shí)例。工作存儲器54中存儲與稱為常駐應(yīng)用程序的常駐類型應(yīng)用程序和讀入到方法區(qū)53中的類文件相對應(yīng)的實(shí) 例。這些實(shí)例中的每一個都是構(gòu)成應(yīng)用程序的xlet程序。當(dāng)這樣的xlet程序位于工作存 儲器54中時,應(yīng)用程序變?yōu)榭蓤?zhí)行。線程55a、55b、. . . 55η是執(zhí)行的邏輯對象,以執(zhí)行在工作存儲器54中存儲的方法。 線程55a、55b、... 55η使用局部變量或者操作數(shù)棧中存儲的自變量作為操作數(shù)執(zhí)行計算, 并將計算結(jié)果存儲在局部變量或者操作數(shù)棧中。圖中的箭頭kyl、ky2和kyn示意性示出從 工作存儲器54向線程55a、55b、... 55η提供的方法。盡管執(zhí)行的物理對象僅僅是CPU,但 是存在以下可能性,即在Java虛擬機(jī)30中存在多達(dá)64個作為執(zhí)行的邏輯對象的線程。在 64或者小于其的范圍中,可以新生成線程和刪除已有線程。當(dāng)Java虛擬機(jī)30工作 時,工作 中的線程數(shù)量可以增加或降低。由于適當(dāng)時線程數(shù)量可以增加,因此可以采用多個線程并 行地執(zhí)行一個實(shí)例,從而以較高速度執(zhí)行該實(shí)例。Java 棧 56a、56b、... 56η 和線程 55a、55b、... 55n 按照一對一成比例存在。Java 棧56a、56b、... 56η中的每一個在自身中具有程序計數(shù)器(圖中稱為“PC”)和一個或多個 幀。“程序計數(shù)器”示出了當(dāng)前正在執(zhí)行實(shí)例的哪個部分?!皫笔欠峙浣o對于方法的一個調(diào) 用的棧類型區(qū),并且其包括其中存儲一個調(diào)用中的自變量的“操作數(shù)?!?,和由所調(diào)用方法 使用的“局部變量?!?在圖中稱為“局部變量”)。在每次進(jìn)行調(diào)用時,將一幀棧入到Java 棧56a、56b、... 56η上;類似地,當(dāng)方法進(jìn)行自身遞歸調(diào)用時,棧入一幀。因此完成了對Java虛擬機(jī)的內(nèi)部結(jié)構(gòu)的描述。采用這種結(jié)構(gòu)的Java虛擬機(jī)用作 由事件驅(qū)動的執(zhí)行對象(即事件驅(qū)動的執(zhí)行對象)。因此完成對Java虛擬機(jī)的描述〈顯示引擎31>顯示引擎31執(zhí)行AV重放功能。重放裝置的AV重放功能是源自DVD播放器和/ 或者CD播放器的傳統(tǒng)功能,例如開始重放(播放)、停止重放(停止)、暫停重放(暫停開 啟),取消重放暫停(暫停關(guān)閉)、取消靜音功能(靜音關(guān)閉)、以指定速度向前(向前播放 (速度)),以指定速度回倒(向后播放(速度))、改變音頻(音頻改變),改變子圖像(字 幕改變)、以及改變角度(角度變化)。為了實(shí)現(xiàn)AV重放功能,顯示引擎31控制視頻解碼 器4、P圖形解碼器6、I圖形解碼器10以及音頻解碼器16,以便對已經(jīng)輸入到讀緩沖器2的 并且與期望時間相對應(yīng)的AVClip的部分進(jìn)行解碼。對于這種期望時間,可以通過對由PSR8 指示的部分進(jìn)行解碼,來重放與任意時間相對應(yīng)的AVClip的一部分。〈重放控制引擎32>重放控制引擎32(PCE 32)執(zhí)行各種功能,例如(i)對播放列表的重放控制功能, 和(ii)獲得/設(shè)定PSR組23的狀態(tài)的功能。PL的重放控制功能使在由顯示引擎31所 執(zhí)行的AV重放功能中,開始和停止根據(jù)當(dāng)前PL信息和剪輯信息所執(zhí)行的重放。根據(jù)來自 DVD-Iike模塊29a-Java平臺29b的函數(shù)調(diào)用來執(zhí)行這些功能(i)和(ii)。以下描述由重放控制引擎32執(zhí)行的處理與由Java虛擬機(jī)執(zhí)行的處理之間的同 步。當(dāng)調(diào)用函數(shù)時,重放控制引擎32根據(jù)PL信息執(zhí)行處理過程。在要重放的AVClip具有 15分鐘或者30分鐘的重放時間段時,上述處理在該持續(xù)時間內(nèi)持續(xù)。問題是,在Java虛 擬機(jī)30返回成功響應(yīng)的時刻與重放控制引擎32實(shí)際完成處理的時刻之間存在間隙。由于 Java虛擬機(jī)30是時間驅(qū)動的處理的對象,因此其在調(diào)用之后立即返回一個指示重放是成 功還是失敗的響應(yīng);然而,重放控制引擎32在15或30分鐘之后完成AVClip和播放項(xiàng)目的重放。從而,如果將成功響應(yīng)返回到應(yīng)用程序的時刻用作參考點(diǎn),則不可能檢測15或30分 鐘之后所發(fā)生的處理的結(jié)束。在PL重放過程中執(zhí)行快速向前或倒帶的情況下,這種15或 30分鐘的重放時間段向前或向后移動,并且檢測處理的結(jié)束變得更加困難。為了解決該問 題,當(dāng)播放項(xiàng)目的重放完成時,或者當(dāng)AVClip的重放完成時,重放控制引擎32輸出事件到 應(yīng)用程序,該事件指示播放項(xiàng)目或AVClip的重放完成。由于該輸出,應(yīng)用程序能夠找到重 放控制引擎32已經(jīng)完成播放項(xiàng)目或AVClip的重放的時刻。 〈模塊管理器33>模塊管理器33讀出INDEX. BDMV并從在INDEX. BDMV中包含的多條標(biāo)題信息中選 擇一條標(biāo)題信息,作為一條當(dāng)前標(biāo)題信息。然后模塊管理器33讀出該當(dāng)前標(biāo)題信息所指示 的BD-J對象,并控制重放控制引擎以便根據(jù)寫入在該BD-J對象中的播放列表信息來執(zhí)行 重放控制。此外,模塊管理器33控制Java虛擬機(jī),以便讀出并執(zhí)行寫入在該BD-J對象中 的Java檔案文件。在此,在完成根據(jù)播放列表信息的數(shù)字流的重放的情況下,或者在用戶調(diào)用菜單 的情況下,模塊管理器33讀出定義另一標(biāo)題的另一條標(biāo)題信息,以便將該條標(biāo)題信息選擇 作為一條當(dāng)前標(biāo)題信息。根據(jù)數(shù)字流的重放或者用戶的菜單調(diào)用來選擇另一條標(biāo)題信息作 為該條當(dāng)前標(biāo)題信息的處理將稱為“標(biāo)題轉(zhuǎn)換”。當(dāng)這種“標(biāo)題轉(zhuǎn)換”重放執(zhí)行時,就可以實(shí)現(xiàn)圖21所示的狀態(tài)變換(state shifting)。在圖中拉長的圓表示標(biāo)題。標(biāo)題包括當(dāng)加載BD-ROM時重放的“FirstPlayTi11 e ”、構(gòu)成頂部菜單的“Τ0Ρ_ menu Title”、和其他作為普通標(biāo)題的“Title”。圖中的箭頭jhl、jh2、jh3、jh4、jh5、 jh6、jh7、和jh8用符號指示標(biāo)題之間的轉(zhuǎn)移。該圖中的狀態(tài)變換是當(dāng)加載BD-ROM時重放 “FirstPlayTitle”,轉(zhuǎn)移到“TOPjnenu Title”,然后等待在頂部菜單中的選擇。光盤內(nèi)容所特有的狀態(tài)變換是,重復(fù)進(jìn)行以下處理直到BD-ROM被退出為止當(dāng) 用戶執(zhí)行操作來從菜單中進(jìn)行選擇時,根據(jù)該選擇重放相應(yīng)的標(biāo)題,然后過程返回到Τ0Ρ_ menu Title。這種狀態(tài)變換是在上述的模塊管理器33的控制下實(shí)現(xiàn)的。在以下列出的國際公開中,公開了標(biāo)題和當(dāng)前標(biāo)題的選擇,參考該公開以進(jìn)行進(jìn) 一步詳細(xì)描述國際公開 WO 2005/036555國際公開 WO 2005/036540國際公開 WO 2005/036547因此完成了對Java虛擬機(jī)30、顯示引擎31、重放控制引擎32和模塊管理器33的 描述。Java虛擬機(jī)對重放控制引擎32的控制是通過虛擬包施加的。為了通過虛擬包實(shí) 現(xiàn)對重放控制引擎32的控制,重放裝置包括諸如網(wǎng)絡(luò)管理模塊37、虛擬文件系統(tǒng)單元38、 管理信息轉(zhuǎn)換模塊39和方法執(zhí)行模塊40之類的構(gòu)成組件。以下將描述這些構(gòu)成組件。<網(wǎng)絡(luò)管理模塊37>網(wǎng)絡(luò)管理模塊37根據(jù)來自應(yīng)用程序的方法調(diào)用,從由電影提供商運(yùn)作的WWW站點(diǎn) 下載構(gòu)建虛擬包所必需的數(shù)據(jù)。構(gòu)建虛擬包所必需的數(shù)據(jù)包括合并管理信息文件、簽名信 息文件、替代BD-ROM上文件的文件或者添加到BD-ROM上的文件(例如,播放列表信息、剪輯信息、AVClip和Java檔案文件)的文件。當(dāng)在工作存儲器54中的應(yīng)用程序提出下載請 求時,網(wǎng)絡(luò)管理模塊37通過網(wǎng)絡(luò)下載虛擬包的構(gòu)建所必需的數(shù)據(jù),并將所下載的數(shù)據(jù)寫入 到本地存儲器18中。<虛擬文件系統(tǒng)單元38>虛擬文件系統(tǒng)單元38是屬于第二層的構(gòu)成組件之一,并且其根據(jù) 來自應(yīng)用程序 的方法調(diào)用來構(gòu)建虛擬包。虛擬包構(gòu)建處理包括對構(gòu)建該虛擬包的AVClip的狀態(tài)管理,和 虛擬包信息的生成處理。1.虛擬包信息虛擬包信息是通過擴(kuò)展在BD-ROM上記錄的卷管理信息獲得的。在此所述的卷管 理信息是用于定義在記錄介質(zhì)上存在的目錄文件結(jié)構(gòu)的信息,其包括關(guān)于目錄的目錄管理 信息和關(guān)于文件的文件管理信息。虛擬包信息通過將新文件信息添加到指示BD-ROM上目錄文件結(jié)構(gòu)的卷管理信息 中,來擴(kuò)展在BD-ROM上的目錄文件結(jié)構(gòu)。要添加到BD卷管理信息中的新的文件管理信息 是存儲在本地存儲器18中的播放列表信息、剪輯信息、AVClip和Java檔案文件的文件管 理信息。由于已經(jīng)將這種文件管理信息添加到其中的虛擬包信息被生成并提供給重放控制 引擎32,因此重放控制引擎32能夠進(jìn)行識別,就如同存儲在本地存儲器18中的播放列表信 息、剪輯信息、AVClip和Java檔案文件是存在于BD-ROM上。圖22示出了由虛擬文件系統(tǒng) 單元38執(zhí)行的虛擬包信息的構(gòu)建的示例。圖的左上方是在BD-ROM上的目錄文件結(jié)構(gòu),其 與圖2所示的相同。圖的左下方是本地存儲器18的目錄文件結(jié)構(gòu),其與圖14所示的相同。 根據(jù)合并管理信息,將存儲在本地存儲器18上的播放列表信息、剪輯信息、AVClip和Java 檔案文件的文件管理信息添加到BD-ROM上的卷管理信息中。更具體而言,執(zhí)行以下過程(i)將在本地存儲器18中的播放列表的文件管理信息(00002. MPLS)添加到BD卷 管理信息中的MPLS目錄的目錄管理信息中。(ii)將在本地存儲器18中的剪輯信息#2、剪輯信息#3和剪輯信息#4(00002. CLPI,00003. CLPI,00004. CLPI)的文件管理信息添加到BD卷管理信息中的CLPI目錄的目
錄管理信息中。(iii)將在本地存儲器18中的AVClip#2、AVClip#3和AVClip#4的文件管理信息 (00002. M2TS、00003. M2TS、00004. M2TS)添加到BD卷管理信息中的STREAM目錄的目錄管理
信息中。應(yīng)該注意的是,在BD-ROM上存在與合并管理信息文件所指定的虛擬包中的文件 具有相同文件路徑的文件的情況下,將在本地存儲器中的文件管理信息寫在卷管理信息 中。采用該安排,將優(yōu)先在虛擬包中使用存儲在本地存儲器中并由合并管理信息所引用的 文件。因此,已經(jīng)獲得了虛擬包信息。通過對卷管理信息進(jìn)行這種添加,獲得了虛擬包信 肩、ο將采用這種方式生成的虛擬包信息提供給重放控制引擎32。從而,重放控制引 擎32通過指定在訪問文件時指示虛擬包的定位器,能夠?qū)⒋鎯υ诒镜卮鎯ζ?8中的播放 列表信息、剪輯信息和AVClip等同地看作記錄在BD-ROM上的播放列表信息、剪輯信息和AVClip。更具體而言,重放控制引擎32使用由虛擬包信息所指示的虛擬包的定位器來請 求文件訪問。響應(yīng)于該請求,虛擬文件系統(tǒng)單元38根據(jù)合并管理信息文件,判斷作為訪問 請求目標(biāo)的文件的實(shí)體是記錄在BD-ROM上還是在本地存儲器18中。在判斷結(jié)果為文件的 實(shí)體記錄在本地存儲器18中的情況下,虛擬文件系統(tǒng)單元38將訪問請目標(biāo)轉(zhuǎn)換為由合并 管理信息文件指定并存儲在本地存儲器18中的文件的文件路徑。因此完成對虛擬包信息的生成的描述。
以下將解釋虛擬包信息更新的定時。對按照圖21的箭頭jhl、jh2、jh3、jh4等等所指示的參考數(shù)字的數(shù)值的順序來執(zhí) 行轉(zhuǎn)移,然后退出BD-ROM的情況進(jìn)行解釋。在該情況下,從加載BD-ROM時到退出BD-ROM 時的連續(xù)時間線能夠看作時整個光盤的時間軸。圖23A示出了整個光盤的時間軸。圖23B 示出了該時間軸的配置。如圖23B所示,整個光盤的時間軸包括重放FirstPlayTitle的間 隔、重放Topjiienu Title的間隔、重放標(biāo)題#1的間隔等等。這些標(biāo)題的重放間隔是根據(jù)以 下思路進(jìn)行定義的由于每個標(biāo)題是由單個BD-J對象構(gòu)成的,因此將特定BD-J對象有效的 時間段看作一個標(biāo)題的重放間隔。在標(biāo)題的重放間隔之間的過渡部分,換而言之,從一個標(biāo) 題轉(zhuǎn)換到另一個標(biāo)題(以下稱為標(biāo)題變化)處的部分,是更新虛擬包信息的時間段。圖24示出了當(dāng)發(fā)生標(biāo)題變化時如何更新虛擬包信息。圖24的第一層級示出了在時間軸上的標(biāo)題的播放間隔。第二層級示出了構(gòu)成該 標(biāo)題的Java應(yīng)用程序的執(zhí)行狀態(tài)。第三層級示出了數(shù)字流的重放狀態(tài)。第四層級示出了 虛擬文件系統(tǒng)單元38的狀態(tài)。在第一層級中所示的標(biāo)題#1的重放時間間隔中,運(yùn)行和重放由BD-J對象所指定 的Java應(yīng)用程序和AVClip,如第二層級和第三層級所示。在標(biāo)題的這種重放間隔中更新虛 擬包信息的情況下,標(biāo)題的構(gòu)成組件在執(zhí)行處理或者重放處理過程中可以相互改變位置。 當(dāng)構(gòu)成組件相互改變位置時,重放裝置工作異常,并且存在可能發(fā)生諸如重放圖像中斷之 類的不可恢復(fù)的情況的可能性。為了處理該情況,當(dāng)在標(biāo)題#1的重放過程中請求虛擬包信息的更新時,虛擬文件 系統(tǒng)單元38進(jìn)入“準(zhǔn)備中狀態(tài)”,在其中,在構(gòu)建虛擬包所必需的處理過程中,僅僅執(zhí)行一 些處理,這些處理在標(biāo)題的重放時間間隔過程中能夠并行處理,而不改變虛擬包的構(gòu)建組 件。在準(zhǔn)備中階段中的處理完成之后,虛擬文件系統(tǒng)單元38變換到“準(zhǔn)備”狀態(tài)并且等待 直到發(fā)生標(biāo)題變化。當(dāng)發(fā)生標(biāo)題變化時,虛擬文件系統(tǒng)單元38進(jìn)入“更新”狀態(tài),在下一 個標(biāo)題的重放間隔之前,通過將由合并管理信息文件所引用的文件的文件管理信息添加到 BD卷管理信息中來執(zhí)行更新虛擬包信息的處理。在更新完成之后,虛擬文件系統(tǒng)單元38 進(jìn)入“穩(wěn)定”狀態(tài),下一個標(biāo)題的重放開始。在這種狀態(tài)中,在選擇從標(biāo)題變化后的Top_ menuTitle跳轉(zhuǎn)回到標(biāo)題#1的情況下,將重放標(biāo)題#1以反映所更新的信息。如上所述,對于標(biāo)題變化,由于虛擬包信息被更新,即使是當(dāng)標(biāo)題#1正在重放時 請求對虛擬包信息的更新,標(biāo)題的構(gòu)成組件也不會在標(biāo)題#1正在重放時改變;因此,在重 放過程中就不可能發(fā)生異常。以下將參考圖25到28描述虛擬包的構(gòu)建的細(xì)節(jié)。由例如提供商所安裝的服務(wù)器來提供構(gòu)成虛擬包的文件。在Java應(yīng)用程序的控制下,通過諸如因特網(wǎng)之類的網(wǎng)絡(luò)下載這些文件。應(yīng)該注意的是,在下載中,使用因特網(wǎng)中 通常使用的通信協(xié)議,例如HTTP或者HTTPS。圖25示出了 Java應(yīng)用程序如何是如何請求服務(wù)器發(fā)送構(gòu)建虛擬包的文件。在圖 的中間所示的ROOT目錄下的目錄樹指示在本地存儲器中的目錄結(jié)構(gòu)。Java應(yīng)用程序請求 服務(wù)器應(yīng)該通過發(fā)送記錄在本地存儲器中的合并管理信息文件來下載構(gòu)成虛擬包的文件。應(yīng)該注意的是,當(dāng)將第一次將BD-ROM安放在重放裝置中時,本地存儲器中沒有記 錄合并管理信息文件,并且沒有虛擬包被構(gòu)建。在這種要第一次構(gòu)建虛擬包的情況下,Java 應(yīng)用程序通過向服務(wù)器通知光盤ID來請求服務(wù)器應(yīng)該下載構(gòu)成虛擬包的文件。接下來,圖26示出了 Java應(yīng)用程序是如何將從服務(wù)器發(fā)送的文件記錄在本地存 儲器中的。如圖26所示,Java應(yīng)用程序在disc#l目錄下生成與該光盤ID相對應(yīng)的新目 錄(新MF目錄),并將在響應(yīng)于該請求而從服務(wù)器發(fā)送的文件中的新的合并管理信息文 件和與該管理信息相對應(yīng)的簽名信息文件,記錄到新生成的目錄中。其他文件立即記錄在 disc#l目錄下。應(yīng)該注意的是,通過使用提供文件I/O功能的API將定位器指定到本地存 儲器中,來執(zhí)行文件的記錄。應(yīng)該注意的是,如果直接在disc#l目錄下的已有合并管理信 息文件和簽名信息文件沒有與要新下載的合并管理信息文件和簽名信息文件相同的文件 名,則也可以將所下載文件直接記錄在disc#l目錄下而不生成新的目錄。圖27示出了 Java應(yīng)用程序是如何請求虛擬文件單元應(yīng)該更新虛擬包信息的。如 圖所示,已經(jīng)獲得構(gòu)成虛擬包的文件的Java應(yīng)用程序,使用在新MF目錄中記錄的新合并管 理信息文件的文件路徑、簽名信息文件的文件路徑和光盤ID作為自變量,來調(diào)用更新請求 方法,從而更新虛擬包信息。圖28示出虛擬包信息是如何更新的。當(dāng)調(diào)用更新請求方法時,虛擬文件系統(tǒng)單元38轉(zhuǎn)換為準(zhǔn)備中狀態(tài),執(zhí)行能夠在不 改變與當(dāng)前正在重放的標(biāo)題相關(guān)的虛擬包的構(gòu)成組件的情況下執(zhí)行的一些處理。圖的左側(cè) 所示的目錄樹示出了在準(zhǔn)備中狀態(tài)中的本地存儲器。更具體而言,在準(zhǔn)備中狀態(tài)下執(zhí)行以下處理(1)判斷由作為自變量的文件路徑所指示的新合并管理信息文件是否可靠。(2)判斷由新合并管理信息文件所引用的文件是否存在于指定存儲位置處。(3)將由新合并管理信息文件所引用的文件和新合并管理信息文件的文件屬性改 變?yōu)橹蛔x屬性。當(dāng)完成在準(zhǔn)備中狀態(tài)下執(zhí)行的這些處理時,虛擬文件系統(tǒng)單元38轉(zhuǎn)換為準(zhǔn)備狀 態(tài)。應(yīng)該注意的是,將要被映射到虛擬包上的在本地存儲器中的文件的屬性設(shè)定為只讀屬 性;因此,在Java應(yīng)用程序通過使用提供文件I/O功能的API將定位器指定到本地存儲器 中,來請求應(yīng)該將數(shù)據(jù)寫入到這些文件中的一些中的情況下,API將返回指示寫入不被允許 的異常。當(dāng)其后標(biāo)題變化已經(jīng)發(fā)生時,虛擬文件系統(tǒng)單元38將存在于在disc#l目錄中的 文件替換為新合并管理信息文件和簽名信息文件,并在替換之后,通過根據(jù)在disc#l目錄 中的合并管理信息文件將文件管理信息添加到BD卷管理信息中,來將記錄在本地存儲器 中的文件映射到虛擬包上。此時,在本地存儲器中的由舊合并管理信息文件引用但不由新合并管理信息文件引用的一些文件的屬性從只讀屬性改變?yōu)榭勺x/可寫屬性。因此完成對 虛擬包信息的構(gòu)建的詳細(xì)描述。以下參考流程圖,描述根據(jù)本發(fā)明的重放裝置所執(zhí)行的重放處理的細(xì)節(jié)。圖29是 示出由模塊管理器33所執(zhí)行的標(biāo)題重放控制的處理的流程圖。該流程圖示出在將BD-ROM 安放在重放裝置之后和將其退出之前要執(zhí)行的處理過程。在步驟Sll中,將在INDEX. BDMV 文件中指定的FirstPlayTitle設(shè)定為當(dāng)前標(biāo)題,在執(zhí)行步驟Sll的處理之后,執(zhí)行步驟S12 到S21的循環(huán)處理。
在步驟S12到S21的循環(huán)處理中,在步驟S12到S15中的處理是重放當(dāng)前標(biāo)題的 過程。在步驟S12,從INDEX. BDMV中獲得與當(dāng)前標(biāo)題相對應(yīng)的一條標(biāo)題信息,將在所獲得的 標(biāo)題信息中指定的BD-J對象作為當(dāng)前BD-J對象。在步驟S13中,控制重放控制引擎32, 以便根據(jù)其參考值被寫入到當(dāng)前BD-J對象中的一條播放列表信息來執(zhí)行PL重放。在步驟 S14,控制Java平臺29b,以便運(yùn)行其標(biāo)識符在當(dāng)前BD-J對象的應(yīng)用程序管理表中被指定的 Java應(yīng)用程序。在步驟S15,控制Java平臺29b,以便終止其標(biāo)識符沒有在當(dāng)前BD-J對象 的應(yīng)用程序管理表中被指定的其他Java應(yīng)用程序。在步驟S16到S19中的處理是用于判斷標(biāo)題是否已經(jīng)結(jié)束的過程。在以下情況之 一已經(jīng)發(fā)生的情況下判定標(biāo)題已經(jīng)結(jié)束完成根據(jù)播放列表的PL重放(步驟S16);標(biāo)題調(diào) 用,例如由于用戶操作造成的菜單調(diào)用指令,已經(jīng)發(fā)生(步驟S17);諸如腳本轉(zhuǎn)移之類的標(biāo) 題跳轉(zhuǎn)已經(jīng)發(fā)生(步驟S18);以及作為標(biāo)題的主要組件的應(yīng)用程序已經(jīng)結(jié)束(步驟S19)。在判定標(biāo)題已經(jīng)結(jié)束的情況下,執(zhí)行在步驟S20和S21中的處理。根據(jù)在步驟S16 至IJ S19中的哪一個判定用于確定標(biāo)題結(jié)束,來指定下一個標(biāo)題(步驟S20),并將所指定的標(biāo) 題設(shè)定為新的當(dāng)前標(biāo)題(步驟S21)。作為上述處理的結(jié)果,在BD-ROM的插入與退出之間執(zhí) 行標(biāo)題重放。以下描述由重放控制引擎32所執(zhí)行的播放列表重放的細(xì)節(jié)。圖30是流程圖,示 出了由重放控制引擎32所執(zhí)行的播放列表重放處理的處理過程。該流程圖示出了根據(jù)由 模塊管理器33所命令的一條播放列表信息,從由播放列表所指定的AVClip的開始到結(jié)束 的重放的處理過程。首先,在作為指定播放列表信息的實(shí)體的MPLS文件是在本地存儲器中的已經(jīng)根 據(jù)合并管理信息文件進(jìn)行映射的文件的情況下,檢查所指定文件是否被竄改(步驟S31)。 在步驟S31中判定所指定文件已經(jīng)被竄改的情況下,過程退出流程圖,從而終止處理。在判 定所指定文件沒有被竄改的情況下,繼續(xù)進(jìn)行步驟S32中和該步驟之后的處理。在步驟S32中執(zhí)行如下處理,將在播放列表信息中的第一條播放項(xiàng)目信息設(shè)定為 要進(jìn)行處理的一條播放項(xiàng)目信息(以下簡稱為“播放項(xiàng)目信息i”),在執(zhí)行步驟S32的處理 之后,執(zhí)行從步驟S33到S41的循環(huán)處理。在從步驟S33到S41的循環(huán)處理中,控制變量是變量i,在步驟S33到S41中的處 理被執(zhí)行后,控制變量i遞增(步驟S41),直到變量i超過播放項(xiàng)目的數(shù)量(“播放項(xiàng)目的 數(shù)量”)在從步驟S33到S41的循環(huán)處理中,從步驟S33到S35中的處理是用于重放主路 徑的處理。在步驟S33的處理中,將寫入到播放項(xiàng)目信息i中的Clip_Inf0rmati0n_file_ name中的AVClip作為用作重放目標(biāo)的AVClip j。在步驟S34的處理中,在作為與AVClipj相對應(yīng)的一條剪輯信息的實(shí)體的CLPI文件是在本地存儲器中的已經(jīng)根據(jù)合并管理信息文件進(jìn)行映射的文件的情況下,檢查在本地存儲器中的這一文件是否已經(jīng)被竄改。當(dāng)一個或 多個文件已經(jīng)被竄改時,過程退出流程圖,從而終止處理。在步驟S35中的處理中,命令驅(qū) 動裝置和解碼器重放AVClip j中從Playltem. In_time到Playltem. Out_time的部分。在步驟S36到步驟S39中的處理是用于重放子路徑的過程。在步驟S34中,判斷 是否存在將播放項(xiàng)目信息i指定為Sync_PlayItem_id的子播放項(xiàng)目k。如果其不存在,則 過程進(jìn)入步驟S40。如果其存在,則在步驟S37中的處理中,將寫入到該子播放項(xiàng)目k的Clip_ Information_file_name中的AVClip作為AVClip h。在步驟S38的處理中,在作為與AVClip h相對應(yīng)的該條剪輯信息的實(shí)體的CLPI文件是在本地存儲器中的已經(jīng)根據(jù)合并管理信息 文件進(jìn)行映射的文件的情況下,檢查在本地存儲器中的這一文件是否已經(jīng)被竄改。當(dāng)這一 文件已經(jīng)被竄改時,過程退出流程圖,從而終止處理。在步驟S39的處理中,命令驅(qū)動裝置 和解碼器重放AVClip h中從sync_Start_PTS_of_PlayItem到0ut_time的部分,然后過程 進(jìn)入步驟S40。對構(gòu)成播放列表信息的所有條播放項(xiàng)目重復(fù)上述處理。因此,執(zhí)行由播放列表所 定義的流序列的重放。應(yīng)該注意的是,采用以下過程執(zhí)行在步驟S31、步驟S34和步驟S38中對文件是否 已經(jīng)被竄改的檢查,具體而言(a)從合并管理信息文件中讀出要檢查的文件的散列值。(b)使用要檢查的文件計算散列值。(c)如果在(a)和(b)中獲得的值相等,則判定文件沒有被竄改。如果在(a)和 (b)中獲得的值不相等,則判定文件已經(jīng)被竄改??山邮艿氖呛雎詫α魑募?XXXXX.M2TS)的竄改的檢查。原因是因?yàn)榱魑募奈?件大小通常比其他文件大,根據(jù)文件大小,需要極其長的時間來計算散列值。另外,通常使 用記錄在BD-ROM上的密鑰對該流文件本身進(jìn)行加密,與其他文件相比,其更加難以被竄 改。以下參考流程圖,描述由根據(jù)本發(fā)明的重放裝置所執(zhí)行的構(gòu)建虛擬包的過程的細(xì) 節(jié)。將虛擬包的構(gòu)建劃分為三個階段,例如由Java應(yīng)用程序下載構(gòu)成虛擬包的文件、虛擬 文件系統(tǒng)單元38進(jìn)行的準(zhǔn)備、以及虛擬文件系統(tǒng)單元38進(jìn)行的更新。首先,詳細(xì)描述要由Java應(yīng)用程序所執(zhí)行的構(gòu)建虛擬包的文件的下載的過程。圖 31是示出要由Java應(yīng)用程序所執(zhí)行的構(gòu)建虛擬包的文件的下載的過程的流程圖。首先,Java應(yīng)用程序通過將記錄在本地存儲器中的、與BD-ROM的光盤ID相對應(yīng) 的目錄中的合并管理信息文件發(fā)送到服務(wù)器,來請求應(yīng)該發(fā)送文件(步驟S291)。在步驟 S292,Java應(yīng)用程序等待直到從服務(wù)器接收到文件。應(yīng)該注意的是,有時在本地存儲器中沒 有記錄合并管理信息文件,例如當(dāng)該BD-ROM是首次安放在該重放裝置中時。在該情況下, 可接受的是具有以下安排其中在步驟S291的處理中,Java應(yīng)用程序通過將BD-ROM上的 光盤ID通知給服務(wù)器,來請求服務(wù)器應(yīng)該發(fā)送文件。當(dāng)在步驟S292的待命過程中從服務(wù)器接收到文件數(shù)據(jù)時,在步驟S293和S294中 將文件記錄在本地存儲器中。在步驟S293中,在與該光盤ID相對應(yīng)的目錄中生成新目錄,并將所接收的合并管理信息文件和簽名信息文件記錄在該新目錄中。在步驟S294,將已經(jīng) 下載的AVClip、剪輯信息、播放列表信息和Java檔案文件寫入與該光盤ID相對應(yīng)的目錄 中。當(dāng)已經(jīng)完成將文件記錄在本地存儲器中時,Java應(yīng)用程序使用在新目錄中的合并 管理信息文件和簽名信息文件的文件路徑作為自變量,調(diào)用更新請求方法(步驟S295)。在 步驟S296中,Java應(yīng)用程序等待從該方法返回的值。當(dāng)返回值為FALSE的情況下(步驟S296 是),停止虛擬包的構(gòu)建過程。當(dāng)返回值為不是FALSE的情況下(步驟S296 否),虛擬文件系統(tǒng)單元38進(jìn)入準(zhǔn)備狀態(tài),并且當(dāng)轉(zhuǎn)換 標(biāo)題時更新虛擬包(步驟S297)。以下詳細(xì)描述要由虛擬文件系統(tǒng)單元38執(zhí)行的準(zhǔn)備處理。圖32是示出要由虛擬 文件系統(tǒng)單元38執(zhí)行的準(zhǔn)備處理的流程圖。該流程圖示出在已經(jīng)調(diào)用上載請求方法的情況下已經(jīng)轉(zhuǎn)換為準(zhǔn)備中狀態(tài)的虛擬 文件系統(tǒng)單元38要執(zhí)行的處理過程。在步驟S51中,使用用作調(diào)用該方法的自變量的文件路徑讀出合并管理信息文件 和簽名信息文件,在步驟S51的處理之后,執(zhí)行步驟S52到S54中的處理,在處理中,判斷構(gòu) 建虛擬包是否是可接受的。在步驟S52中,判斷在步驟S51中讀出的合并管理信息文件是 否已經(jīng)被竄改。在該合并管理文件判定為已經(jīng)被竄改的情況下,將不允許進(jìn)行虛擬包的構(gòu)建。更具體而言,執(zhí)行以下過程(a)使用重放裝置所持有的合并證書中的公鑰來解密在簽名信息文件中的加密散 列值。(b)計算合并管理信息文件的散列值。(c)如果通過(a)中的解密過程獲得的值等于在(b)中計算得到的值,則判定該合 并管理信息文件沒有被竄改并且是可靠的。如果通過(a)中的解密過程獲得的值不等于在 (b)中計算得到的值,則判定該合并管理信息文件已經(jīng)被竄改并且是不可靠的。步驟S53是用于判斷是否允許調(diào)用該方法的Java應(yīng)用程序來更新虛擬包的處理。 在不允許調(diào)用者更新虛擬包的情況下,將不允許虛擬包的構(gòu)建。步驟S54是用于判斷由該合并管理信息文件指定的文件是否實(shí)際存在于本地存 儲器中的處理。在不存在所指定文件的情況下,將不允許虛擬包的構(gòu)建。在步驟S52到S54中的一個中判斷結(jié)果為不允許虛擬包的構(gòu)建的情況下,將返回 值“FALSE”返回到調(diào)用該方法的Java應(yīng)用程序,然后處理終止。另一方面,在步驟S52到S54中的一個中判斷結(jié)果為允許虛擬包的構(gòu)建的情況下, 則要執(zhí)行步驟S55中的處理。步驟S55是用于讀出合并管理信息文件、簽名信息文件和由該合并管理信息文件 所指定的文件并將它們的屬性改變?yōu)橹蛔x屬性的處理。因此完成對準(zhǔn)備處理的細(xì)節(jié)描述。應(yīng)該注意的是,在步驟S52到S54中的一個中判斷結(jié)果為不允許虛擬包的構(gòu)建的 情況下,可以接受的是具有一種安排,其中,將BD-ROM的卷管理信息提供給調(diào)用該更新請 求方法的Java應(yīng)用程序作為虛擬包信息,并且終止該更新請求方法的處理。采用該安排, 如果合并管理信息文件已經(jīng)被竄改并且處于非法狀態(tài)下時,重放裝置能夠禁止包含本地存儲器中的文件的虛擬包的構(gòu)建,并且重放裝置還能夠采用與訪問虛擬包相同的方式來訪問 BD-ROM上的文件。以下將詳細(xì)描述由虛擬文件系統(tǒng)單元38執(zhí)行的更新處理。圖33是示出由虛擬文 件系統(tǒng)單元38執(zhí)行的更新處理的流程圖。該流程圖示出在由于更新請求方法而完成準(zhǔn)備處理之后發(fā)生標(biāo)題變化的情況下, 由虛擬文件系統(tǒng)單元38所執(zhí)行的處理過程。
首先,將由作為該方法自變量的文件路徑所指定的合并管理信息文件和簽名信息 文件,移動到與當(dāng)前正在重放的BD-ROM的光盤ID相對應(yīng)的本地存儲器中的目錄中。此時, 在該合并管理信息文件和簽名信息文件已經(jīng)存在于作為移動目的地的目錄中的情況下,采 用新的合并管理信息文件和簽名信息文件改寫已有文件(步驟S61)。隨后,將由在本地存 儲器18中的合并管理信息文件所指定的一條播放列表信息的文件管理信息,添加到在BD 卷管理信息中的PLAYLIST目錄中的目錄管理信息中(步驟S62)。隨后,執(zhí)行步驟S63到步驟S67的循環(huán)處理。在該循環(huán)處理中,對在本地存儲器18 中存儲的多條剪輯信息中的每一個重放在步驟S64到步驟S66中的處理(步驟S63、步驟 S67)。在該循環(huán)處理中,將由合并管理信息文件所指定的多條剪輯信息中的一個作為剪 輯信息X,將該剪輯信息X的文件管理信息添加到在BD卷管理信息中的CLIPINF目錄中的 目錄管理信息中(步驟S64)。此外,指定與該剪輯信息χ相對應(yīng)的AVClip x(步驟S65), 并且將AVClip χ的文件管理信息添加到BD卷管理信息中的STREAM目錄的目錄管理信息 中(步驟S66)。當(dāng)對所有條剪輯信息和所有AVClip重復(fù)上述處理時,將這些條剪輯信息和 AVClip的文件管理信息添加到BD卷管理信息中。將作為該添加的結(jié)果而獲得的這種BD卷 管理信息作為虛擬包信息。將這種虛擬包信息提供給調(diào)用該更新請求方法的Java應(yīng)用程 序(步驟S68),然后處理完成。因此完成對更新處理的細(xì)節(jié)描述。如迄今所述,根據(jù)本發(fā)明,根據(jù)簽名信息來驗(yàn)證合并管理信息的可靠性。在合并管 理信息確認(rèn)為不可靠的情況下,則防止使用記錄在本地存儲器中的文件來構(gòu)建虛擬包。采 用該安排,即使是本地存儲器中的某些數(shù)據(jù)已經(jīng)被竄改而虛擬包的構(gòu)建沒有被執(zhí)行時,也 可以避免執(zhí)行被竄改的非法數(shù)據(jù),和結(jié)合記錄在只讀記錄介質(zhì)上的數(shù)據(jù)對其進(jìn)行重放的情 況。因此,就不可能遇到由于數(shù)據(jù)的非法使用所造成的不利情況。此外,當(dāng)虛擬包被構(gòu)建時,將作為可讀/可寫記錄介質(zhì)的本地存儲器中的文件的 屬性鎖定為只讀屬性;因此,就可以防止在構(gòu)建了虛擬包之后,由于應(yīng)用程序?qū)ξ礈?zhǔn)備好的 文件的訪問造成的文件被重寫。采用該安排,就可以防止虛擬包信息與在本地存儲器中的 文件實(shí)體不一致的情況。第二實(shí)施例第二實(shí)施例涉及對在執(zhí)行標(biāo)題調(diào)用時的改進(jìn)。標(biāo)題調(diào)用要暫時暫停當(dāng)前標(biāo)題的重 放,重放所調(diào)用的標(biāo)題,以及在對所調(diào)用標(biāo)題的執(zhí)行完成之后,繼續(xù)對原始播放的標(biāo)題的重 放。由于將繼續(xù)原始播放的標(biāo)題的重放作為前提,因此當(dāng)執(zhí)行標(biāo)題調(diào)用時,重放控制 引擎32將存儲在PSR中并用于重放控制的系統(tǒng)參數(shù)保存在備份PSR中,在所調(diào)用的標(biāo)題被重放之后,重放控制引擎32將在保存在備份PSR中的參數(shù)恢復(fù)到PSR中。以下是存儲在PSR中的系統(tǒng)參數(shù)列表。PSR(O) IljPSR(12)中存儲指示重放狀態(tài)的系統(tǒng)參數(shù)。PSR(13)到PSR(19)中存儲由播放器設(shè)定的作為優(yōu)選的系統(tǒng)參數(shù)。PSR(20)到 PSR(32)是用于備份的PSR。PSR(O) :IG 流號PSR(I)音頻流號PSR (2) =PG流/文本字幕流號PSR(3)角度號PSR (4)當(dāng)前正在重放的標(biāo)題號PSR(5)當(dāng)前正在重放的章節(jié)號PSR(6)當(dāng)前正在重放的播放列表標(biāo)識符PSR (7)當(dāng)前正在重放的播放項(xiàng)目標(biāo)識符PSR (8)重放時間信息PSR (9)導(dǎo)航計時器PSR(IO)選擇鍵信息PSR(Il) :IG流中的當(dāng)前頁標(biāo)識符PSR(12) :PG流中的用戶樣式標(biāo)識符和文本字幕流PSR(13)父母級別(paretal level)PSR (14)字幕支持信息PSR (15)播放器設(shè)定值(音頻)PSR(16)音頻流的語言代碼PSR(17) :PG流和文本字幕流的語言代碼PSR(IS)菜單的語言代碼PSR(19)播放器的版本信息PSR (20) =PSR(O)的備份PSR(21) =PSR(I)的備份PSR (22) =PSR (2)的備份PSR (23) =PSR (3)的備份PSR (24) =PSR (4)的備份PSR (25) =PSR (5)的備份PSR (26) =PSR (6)的備份PSR (27) =PSR (7)的備份PSR (28) =PSR (8)的備份PSR (29) =PSR (9)的備份PSR(30) =PSR(IO)的備份PSR(31) =PSR(Il)的備份PSR (32) :PSR(12)的備份在此,如果在執(zhí)行標(biāo)題調(diào)用之后對虛擬包信息進(jìn)行更新,則在標(biāo)題調(diào)用之前與之 后,在虛擬包信息中將會有些不同。
當(dāng)要繼續(xù)調(diào)用其他標(biāo)題(即,被調(diào)用標(biāo)題)的標(biāo)題(即,調(diào)用標(biāo)題)時,虛擬包信 息已經(jīng)改變;因此,就存在以下可能性當(dāng)試圖采用備份值來重放調(diào)用標(biāo)題時,可能出現(xiàn)錯 誤,因?yàn)閭浞葜当3峙c以前相同。因此,當(dāng)Java應(yīng)用程序請求應(yīng)該更新虛擬包信息時,將可 以通過清除備份PSR來避免這種問題情況。然而,可能存在根據(jù)在虛擬包信息中的合并管 理信息文件,所述改變不會造成任何影響的一些情況;因此,可接受的是,將在系統(tǒng)參數(shù)中 的值是否應(yīng)該被清除的問題留給Java應(yīng)用程序。 圖34是流程圖,示出當(dāng)暫時暫停當(dāng)前標(biāo)題的重放以便執(zhí)行標(biāo)題調(diào)用時由重放控 制引擎所執(zhí)行的處理過程,和當(dāng)原始播放標(biāo)題的重放繼續(xù)時由重放控制引擎所執(zhí)行的處理 過程。為了暫時暫停當(dāng)前標(biāo)題的重放,在步驟S71中將SPRM(O)到SPRM(12)保存到 SPRM (20)到 SPRM (32)中。當(dāng)在完成被調(diào)用標(biāo)題的重放之后繼續(xù)原始播放標(biāo)題的重放時,在步驟S81中判斷 在暫停過程中虛擬包信息是否已經(jīng)被更新。在虛擬包信息沒有被更新的情況下,將SPRM (20)到SPRM (32)恢復(fù)到SPRM(O)至Ij SPRM(12)(步驟S83)。在虛擬包信息已經(jīng)被更新的情況下,將SPRM(20)到SPRM(32)初始 化(步驟S82),并且將執(zhí)行步驟S83中的處理。如迄今所述,根據(jù)本實(shí)施例,在執(zhí)行了標(biāo)題調(diào)用之后虛擬包信息被更新的情況下, 將備份PSR的內(nèi)容初始化;因此就不存在重放控制引擎根據(jù)標(biāo)題調(diào)用之前的PSR而執(zhí)行錯 誤的重放處理的可能性。因此,就可以實(shí)現(xiàn)重放控制引擎的穩(wěn)定工作。應(yīng)該注意的是,采用以下安排也是可接受的其中,當(dāng)虛擬包信息被更新時,在系 統(tǒng)端強(qiáng)制將系統(tǒng)參數(shù)的值清除,而不是將在是否應(yīng)該清除備份PSR中的值的問題留給Java 應(yīng)用程序。第三實(shí)施例在第一實(shí)施例中,已經(jīng)描述以下配置其中,將在本地存儲器中并相應(yīng)于組織ID 和BD-ROM的光盤ID的目錄用作用于存儲構(gòu)建虛擬包的文件的位置。在第三實(shí)施例中,描 述了以下配置其中,采用記錄在本地存儲器中的任意目錄中的文件來構(gòu)建虛擬包。通過Java應(yīng)用程序指定光盤ID和在本地存儲器中的目錄路徑實(shí)現(xiàn)這種虛擬包構(gòu) 建,在本地存儲器中,將用于虛擬包構(gòu)建的文件記錄為用于更新請求方法的自變量。在根據(jù)第三實(shí)施例的重放裝置中,虛擬文件系統(tǒng)單元38保持虛擬包管理表。圖35 示出了虛擬包管理表的示例。虛擬包管理表示出了光盤ID,其與指示在更新請求方法中所 指定的本地存儲器中的目錄的路徑相對應(yīng),來標(biāo)識BD-R0M。當(dāng)響應(yīng)于更新請求而生成虛擬 包信息時,虛擬文件系統(tǒng)單元38能夠根據(jù)在虛擬包管理表中記載的信息,指定在虛擬包中 使用的文件的存儲目的地。以下描述由根據(jù)本實(shí)施例的虛擬文件系統(tǒng)單元38所執(zhí)行的虛擬包構(gòu)建處理。圖 36是示出由根據(jù)第三實(shí)施例的虛擬文件系統(tǒng)單元38所執(zhí)行的虛擬包構(gòu)建處理過程的流程 圖。該流程圖示出了在Java應(yīng)用程序已經(jīng)發(fā)布更新請求方法的情況下,由虛擬文件 系統(tǒng)單元38所執(zhí)行的處理過程。在步驟S91,判斷指定為更新處理方法的自變量的光盤ID是否已經(jīng)在虛擬包管理表中記載。在所指定的光盤ID已經(jīng)在虛擬包管理表中記載的情況下(步驟S91 是),在執(zhí)行步驟S92到S94中的處理過程之后,執(zhí)行在步驟95到S99中的處理過程。另一方面,在所 指定的光盤ID沒有在虛擬包管理表中記載的情況下,過程進(jìn)而執(zhí)行步驟S95到S99的處理 過程。在步驟S92到S94,從虛擬包管理表中刪除具有所指定光盤ID的條目(entry)(步 驟S92),并判斷由所指定光盤ID所標(biāo)識的BD-ROM是否插入了 BD-ROM驅(qū)動器1中(步驟 S93)。在由所指定光盤ID所標(biāo)識的BD-ROM已經(jīng)插入的情況下(步驟S93 是),過程進(jìn)入 步驟S94。在其他情況下(步驟S93 否),過程進(jìn)入步驟S95。在步驟S94,與所指定光盤 ID相對應(yīng)的虛擬包的構(gòu)建被暫停。步驟S95是用于判斷所指定目錄的簽名是否可靠的處理過程。在當(dāng)前示例中,用 于判斷所指定目錄的簽名是否可靠的處理是(a)檢查在所指定目錄下的合并管理信息文 件是否未被竄改,以及然后(b)檢查由合并管理信息文件所指定的文件是否未被竄改。為了確定合并管理信息文件沒有被竄改,執(zhí)行以下過程(a-Ι)對虛擬包管理表計算散列值。(a-2)使用由重放裝置持有的合并證書中的公鑰來對在所指定目錄下的簽名信息 文件中的加密散列值進(jìn)行解密。(a-3)將所計算的散列值與解密的簽名值進(jìn)行比較,如果所述值相同,則確定合并 管理信息文件沒有被竄改。為了確定由合并管理信息文件所指定的文件沒有被竄改,執(zhí)行以下過程(b-Ι)對由合并管理文件所指定的每個文件計算散列值。(b-2)將所計算的散列值與寫入到合并管理信息文件中的散列值進(jìn)行比較,如果 所述值相同,則確定由合并管理信息文件所指定的文件沒有被竄改。作為步驟S95的判斷結(jié)果,在所指定目錄的簽名是可靠的情況下(步驟S95 是), 過程進(jìn)入步驟S96。在其他情況下,過程終止。在步驟S96中,使用被指定為更新請求方法的自變量的光盤ID和目錄路徑,將新 的條目添加到虛擬包管理表中。在步驟S97,判斷由所指定光盤ID所標(biāo)識的BD-ROM是否 插入了 BD-ROM驅(qū)動器1。在由所指定光盤ID所標(biāo)識的BD-ROM已經(jīng)插入的情況下(步驟 S97 是),過程進(jìn)入步驟S98。在其他情況下(步驟S97 否),處理終止。在步驟S98中,將 其路徑作為自變量而被指定的本地存儲器中的目錄下的內(nèi)容讀出,并且將屬性設(shè)定為只讀 屬性。在步驟S99中,采用其文件路徑被指定的本地存儲器和BD-ROM中的目錄來構(gòu)建虛擬 包。因此完成根據(jù)第三實(shí)施例的用于構(gòu)建虛擬包的處理過程的描述。應(yīng)該注意的是,上述處理過程是用于響應(yīng)于更新請求而構(gòu)建虛擬包的過程;然而, 對于在BD-ROM新插入重放裝置的情況下構(gòu)建虛擬包的處理過程而言,從虛擬包管理表中 搜索與所插入的BD-ROM的光盤ID相對應(yīng)的目錄路徑,并且采用所檢測到的目錄路徑作為 指定目錄路徑來執(zhí)行在圖36的步驟95中和該步驟之后的處理過程,從而能夠構(gòu)建虛擬包。此外,在響應(yīng)于更新請求而構(gòu)建虛擬包的處理過程中,作為在步驟S95中用于判 斷所指定目錄的簽名是否可靠的處理,首先(a)檢查在所指定目錄下的合并管理信息文件 是否未被竄改,以及然后(b)檢查由合并管理信息文件所指定的文件是否未被竄改;然而,對于在BD-ROM新插入重放裝置的情況下構(gòu)建虛擬包的處理過程而言,還可接受的是僅僅通過以下處理來在步驟S95中判斷所指定目錄的簽名是否可靠(a)檢查在所指定目錄下 的合并管理信息文件是否未被竄改,以便通過在步驟S96到S99中的處理構(gòu)建虛擬包。在這 種情況下,當(dāng)Java應(yīng)用程序作出對其文件路徑已經(jīng)寫入到合并管理信息文件中的文件的 訪問請求時,執(zhí)行如下處理(b)檢查由合并管理信息文件所指定的文件是否未被竄改。僅 僅在所述文件確認(rèn)沒有被竄改的情況下,才允許Java應(yīng)用程序訪問所指定文件。采用以下 安排,減少了在插入并加載BD-ROM之后所必需的處理數(shù)量其中,在訪問文件時而不是在 構(gòu)建虛擬包時執(zhí)行散列值計算處理部分。因此,可以實(shí)現(xiàn)使啟動更加快速的效應(yīng)。以下描述正在構(gòu)建虛擬包時,Java應(yīng)用程序?yàn)楸镜卮鎯ζ髦付ǘㄎ黄?,并訪問文 件以將數(shù)據(jù)寫入該文件的情況下要執(zhí)行的操作。圖37是示出用于控制對文件的寫入訪問的API的處理過程的流程圖。當(dāng)Java應(yīng) 用程序采用指定本地存儲器定位器請求寫入訪問時,判斷目錄屬性是否因?yàn)檎跇?gòu)建虛擬 包而被設(shè)定為只讀屬性(步驟S101)。在包含所指定文件的目錄的屬性被鎖定在只讀屬性 時(步驟SlOl 是),將指示不允許寫入該文件的異常返回到Java應(yīng)用程序,并終止處理 (步驟S102)。在其他情況下(步驟SlOl 否),過程進(jìn)入步驟S103。在步驟S103,執(zhí)行對本地存儲器中的文件進(jìn)行寫入訪問的處理。根據(jù)上述處理過程,如果指定為訪問目標(biāo)的文件是構(gòu)建虛擬包的文件,并且當(dāng)作 出訪問請求時該虛擬包正在構(gòu)建,則不允許訪問該文件。在此,即使是在當(dāng)正在采用在COntsID#l目錄的指定構(gòu)建虛擬包時,圖38所示的 contsID#l目錄下的文件有錯誤時,由于在正在構(gòu)建虛擬包時contsID#l目錄的屬性被設(shè) 定為只讀屬性,因此不可能校正該文件的錯誤。在這種情況下,具有文件校正功能的Java應(yīng)用程序采用提供文件I/O功能的 API生成稱為contsID#2的目錄,如圖38所示,并且將在contsID#l目錄下的文件復(fù)制到 contsID#2目錄中,從而校正文件中的錯誤。此時,如果用于AV數(shù)據(jù)的M2TS文件的內(nèi)容 中沒有改變,則可接受的是在contsIDiil目錄下生成對M2TS文件的符號鏈接,而不是在 contsID#2目錄下生成復(fù)制文件。在contsID#2下生成文件之后,Java應(yīng)用程序使用contSID#2目錄的路徑(在圖 38中所示的示例中為“R00T/organization#l/disc#l/contsID#2”)作為自變量發(fā)布更新 請求方法。因此,根據(jù)圖36中所示的流程圖,將采用在contsIDiil目錄下的文件的虛擬包的 構(gòu)建暫停,然后采用在contSID#2目錄下的文件構(gòu)建虛擬包。當(dāng)已經(jīng)構(gòu)建了新的虛擬包時, 將在本地存儲器中的COntsID#2的屬性和其下內(nèi)容的屬性設(shè)定為只讀屬性。應(yīng)該注意的是,盡管在本實(shí)施例中使用符號鏈接,采用非直接引用的機(jī)制也是可 以接受的,在該機(jī)制中,“R00T/organization#l/disc#l/contsID#2/00002. M2TS”文件的內(nèi) 容為諸如“../contsID#2/00002. M2TS”之類的字符串。如迄今所述,根據(jù)本實(shí)施例,可以采用在本地存儲器中的任意目錄的指定來構(gòu)建 虛擬包。此外,在通過將記錄在多個記錄介質(zhì)上的文件進(jìn)行合并來構(gòu)建虛擬包的情況下,采 用以下安排可以防止在虛擬包構(gòu)建過程中將文件重寫其中,將在作為可讀/可寫記錄介 質(zhì)的本地存儲器中所存儲的文件的屬性鎖定為只讀屬性。因此,可以防止由該應(yīng)用程序本身或者其他應(yīng)用程序所造成的、在文件中的非法改變可能導(dǎo)致的錯誤。此外,即使是在虛擬包沒有創(chuàng)建時實(shí)體文件被竄改,也可以通過判斷簽名是否可靠來檢測實(shí)體文件的竄改,并且避免虛擬包的構(gòu)建。因此,可以在由于采用非法文件而可能 導(dǎo)致的故障發(fā)生之前,將其阻止。應(yīng)該注意的是,本實(shí)施例包括在步驟S95中的處理,在該步驟中,作為當(dāng)構(gòu)建虛擬 包時要使用的標(biāo)準(zhǔn)判斷,判斷所指定目錄的簽名是否是可靠的;然而,也可接受的是,不對 簽名的可靠性進(jìn)行判斷而構(gòu)建虛擬包。應(yīng)該注意的是,在本實(shí)施例中,在構(gòu)建虛擬包之后,將在本地存儲器中的所指定目 錄的屬性和其下內(nèi)容的屬性設(shè)定為只讀屬性;然而,采用以下安排也是可接受的其中,位 于所指定目錄下的目錄和文件的屬性也可以遞歸的設(shè)定為只讀屬性。應(yīng)該注意的是,在本實(shí)施例中,當(dāng)虛擬包被構(gòu)建時,將在本地存儲器中的路徑,例 如“ROOT/organization#l/disc#l/contsID#l”,指定為更新請求方法的自變量;然而,采 用以下安排也是可接受的其中僅僅指定contsID,以便從BD-ROM中獲得組織ID和光盤 ID。第四實(shí)施例在第三實(shí)施例中,描述了以下配置其中,通過將被指定為更新請求方法的自變量 的目錄的屬性設(shè)定為只讀屬性來防止構(gòu)建虛擬包的、本地存儲器中記錄的文件的改變,以 便避免虛擬包信息與在本地存儲器中的實(shí)際目錄_文件結(jié)果之間不一致的情況。在第四實(shí)施例中,討論了一種改進(jìn),采用所述改進(jìn),可以避免虛擬包信息與在本地 存儲器中的實(shí)際目錄-文件結(jié)果之間不一致的同時,對在構(gòu)成虛擬包的本地存儲器中的文 件進(jìn)行寫入訪問。圖39是示出根據(jù)第四實(shí)施例用于構(gòu)建虛擬包的處理過程的流程圖。在該流程圖 與圖36的流程圖之間的差異在于,分別將步驟S98和S99改變?yōu)椴襟ESlll和S112。在步 驟Slll中,將在本地存儲器中并被指定為更新請求方法的自變量的目錄和其下內(nèi)容復(fù)制 到另一記錄介質(zhì)中。在步驟S112中,使用已經(jīng)復(fù)制到所述另一記錄介質(zhì)與BD-ROM中的目 錄和其下內(nèi)容來構(gòu)建虛擬包。因此完成對構(gòu)建虛擬包的處理過程的描述。以下描述Java應(yīng)用程序進(jìn)行的寫入文件訪問的處理過程。圖40是流程圖,示出 了在虛擬包已經(jīng)被構(gòu)建之后對本地存儲器中的文件進(jìn)行寫入訪問的情況下,提供文件I/O 功能的API的處理。該流程圖與圖37所示的流程圖之間的差異在于,刪除了步驟SlOl和 S102。當(dāng)采用對本地存儲器定位器的指定來請求對在本地存儲器中的文件進(jìn)行寫入訪問 時,在步驟S103對本地存儲器中的文件進(jìn)行寫入訪問,然后處理完成。因此完成對應(yīng)用程序進(jìn)行的對文件的寫入訪問的處理過程的描述。如迄今所述,根據(jù)本實(shí)施例,當(dāng)通過對記錄在多個記錄介質(zhì)上的文件進(jìn)行合并來 構(gòu)建虛擬包時,將在作為可讀/可寫記錄介質(zhì)的本地存儲器中的文件復(fù)制到另一記錄介質(zhì) 中,即使是當(dāng)構(gòu)建虛擬包時在本地存儲器中的文件被重寫,虛擬包也可以查詢已經(jīng)被復(fù)制 到該記錄介質(zhì)上并反映在重寫之前的狀態(tài)的文件。因此,即使是該應(yīng)用程序本身或者其他 應(yīng)用程序執(zhí)行了非法的文件改變,也可以防止可能發(fā)生的故障。應(yīng)該注意的是,在本實(shí)施例中,在本地存儲器中的文件復(fù)制目的地是另一存儲介 質(zhì);然而,以下安排也是可以接受的其中,將文件復(fù)制到在本地存儲器中的不能從Java應(yīng)用程序直接引用的目錄中,或者僅僅能夠進(jìn)行只讀訪問的目錄中。應(yīng)該注意的是,在本實(shí)施例中,將在本地存儲器中的指定目錄和其下內(nèi)容復(fù)制到 另一記錄介質(zhì)上;然而,存儲有AV流等等的文件的大小是很大的,復(fù)制需要時間,并且占用 所述記錄介質(zhì)的存儲空間。為了解決該情況,還可以接受的是,如圖38的示例所示,對這種 具有很大大小的文件使用符號鏈接。第五實(shí)施例第五實(shí)施例描述了一種改進(jìn),其用于在將要構(gòu)建虛擬包時防止文件被非法改變。圖41示出了根據(jù)第五實(shí)施例的重放裝置的內(nèi)部結(jié)構(gòu)。根據(jù)本實(shí)施例的重放裝置 具有以下配置其中將加密器41和解密器42添加到圖18所示的配置中。與圖18中的相 同的構(gòu)成組件具有相同的參考符號,在此將省略對其的描述。加密器41采用記錄在插入到BD-ROM驅(qū)動器1中的BD-ROM的BCA (Burst Cutting Area燒錄區(qū))中的對于該光盤而言唯一的密鑰信息,選擇性地對要寫入到本地存儲器中的 文件進(jìn)行加密。加密器41要加密的文件,是在用于構(gòu)建虛擬包并已經(jīng)從服務(wù)器下載的文件 中的用于AV數(shù)據(jù)的M2TS文件。在此所使用的加密方法為,例如,諸如AES、DES等等的傳統(tǒng) 加密方法。BCA是光盤中的導(dǎo)入?yún)^(qū)內(nèi)側(cè)的特定區(qū)域,所述光盤僅能夠由驅(qū)動裝置讀出。由于 沒有應(yīng)用程序能夠從BCA區(qū)域中讀出數(shù)據(jù),因此BCA區(qū)域經(jīng)常用于版權(quán)保護(hù)技術(shù)。解密器42采用記錄在插入到BD-ROM驅(qū)動器1中的BD-ROM的BCA中的對于該光 盤而言唯一的密鑰信息,對文件進(jìn)行解密。解密器42所要解密的數(shù)據(jù)是從本地存儲器中讀 出的M2TS文件。解密器42獲得AV數(shù)據(jù)的訪問單位(ACCESS UNIT)并對其進(jìn)行解密,將被 解密數(shù)據(jù)輸出到重放機(jī)構(gòu)。在此所使用的加密方法與加密器41所使用的加密方法相同,并 用于對由加密器41加密的文件進(jìn)行解密。另外,根據(jù)本實(shí)施例的重放裝置,在虛擬文件系統(tǒng)單元38中所保持的虛擬包管理 表的結(jié)構(gòu)與第三實(shí)施例中不同。圖42示出了第五實(shí)施例的虛擬包管理表的示例。本實(shí)施 例的虛擬包管理表與圖35所示不同之處在于,其具有為其添加的簽名數(shù)據(jù)。在虛擬包管理 表中的簽名數(shù)據(jù)是用于驗(yàn)證在用于構(gòu)建虛擬包的目錄中,在文件被記錄到本地存儲器中之 后沒有被重寫。在簽名數(shù)據(jù)607中的多個注冊信息中,分別與具有小文件大小的BDMV文件、MPLS 文件和CLPI文件相對應(yīng)的這些條注冊信息601、602和603包括在虛擬包中使用的文件名 和記錄在本地存儲器中的文件實(shí)體的散列值。當(dāng)文件從服務(wù)器下載時,已經(jīng)計算了在此設(shè) 定的散列值。應(yīng)該注意的是,散列值是采用用于獲得從在文件中存儲的數(shù)據(jù)中唯一確定的 值的單向函數(shù)來計算。單向函數(shù)的一個示例是MD5,其是傳統(tǒng)方法。另一方面,在簽名數(shù)據(jù) 中的多條注冊信息中,用于具有很大文件大小的M2TS文件的注冊信息606僅僅包括在虛擬 包中使用的文件名,而不包括散列值。簽名數(shù)據(jù)607是采用記錄在BD-ROM的BCA中并對于 光盤而言唯一的密鑰信息進(jìn)行加密的。以下參考圖43和44描述第五實(shí)施例的重放裝置的操作的流程。首先,描述將從 服務(wù)器下載的文件記錄到本地存儲器中的處理。圖43是示出用于將所下載文件記錄到本 地存儲器中的處理過程的流程圖。當(dāng)Java應(yīng)用程序從服務(wù)器下載要在構(gòu)建虛擬包時使用的文件并將所下載文件寫 入到本地存儲器中時,執(zhí)行在本流程圖中所示的處理。
當(dāng)Java應(yīng)用程序采用本地存儲器定位器的指定來請求寫入訪問時,判斷是否由于現(xiàn)在正在構(gòu)建虛擬包而將目錄的屬性設(shè)定為只讀屬性(步驟S121)。在包含所指定文件 的目錄的屬性被鎖定到只讀屬性的情況下(步驟S121 是),將指示不允許寫入該文件的異 常返回給Java應(yīng)用程序,并終止處理(步驟S122)。在其他情況下(步驟S121 否),過程 進(jìn)入步驟S123。在步驟S123,判斷所指定的文件是否是用于AV數(shù)據(jù)的M2TS文件。在所指定文件是M2TS文件的情況下(步驟S123 是),由加密器41采用記錄在插 入到BD-ROM驅(qū)動器1中的BD-ROM的BCA中的對于該光盤而言唯一的密鑰信息對該文件進(jìn) 行加密(步驟S124)。然后,將僅包含要在虛擬包中使用的指定文件的文件名的一個注冊信 息添加到簽名數(shù)據(jù)中(步驟S125),并且執(zhí)行在步驟S127中和該步驟之后的處理。當(dāng)所指定文件不是M2TS文件的情況下(步驟S123 否),計算該指定文件的散列 值。然后,將包含所計算的散列值和要在虛擬包中使用的指定文件的文件名的一條注冊信 息添加到簽名數(shù)據(jù)中(步驟S126),并且執(zhí)行在步驟S127中和該步驟之后的處理。在步驟S127,由加密器41采用記錄在BD-ROM的BCA中的對于該光盤而言唯一的 密鑰信息對簽名數(shù)據(jù)進(jìn)行加密。在步驟S128,對本地存儲器進(jìn)行寫入訪問,將在步驟S127 中加密的簽名數(shù)據(jù)連同所指定文件記錄到本地存儲器中。因此完成對將從服務(wù)器下載的文 件記錄到本地存儲器中的處理的描述。以下描述要由虛擬文件系統(tǒng)單元38執(zhí)行的構(gòu)建虛擬包的處理。圖44是示出構(gòu)建 虛擬包的處理過程的流程圖。該流程圖示出在Java應(yīng)用程序使用光盤ID和其中存儲用于 構(gòu)建虛擬包的數(shù)據(jù)的目錄的路徑作為自變量,發(fā)布更新請求方法的情況下要執(zhí)行的處理過程。在步驟S131中,判斷是否已經(jīng)為由所指定光盤ID所標(biāo)識的BD-ROM構(gòu)建了虛擬包。在已經(jīng)為由所指定光盤ID所標(biāo)識的BD-ROM創(chuàng)建了虛擬包的情況下(步驟S131 是),過程進(jìn)入步驟S132。在其他情況下,過程進(jìn)入步驟S135。在步驟S132,將所指定光盤 ID的條目從虛擬包管理表中刪除。在步驟S133中,判斷由所指定光盤ID標(biāo)識的BD-ROM是 否已經(jīng)插入到BD-ROM驅(qū)動器1中。在已經(jīng)插入由所指定光盤ID標(biāo)識的BD-ROM的情況下 (步驟S133 是),過程進(jìn)入步驟S134。在其他情況下(步驟S93 否),過程進(jìn)入步驟S135。 在步驟S134,將與所指定光盤ID相對應(yīng)的虛擬包的構(gòu)建暫停。在步驟S135,將指定為自變量的目錄路徑和記錄在所指定目錄中的簽名數(shù)據(jù),添 加到指定為自變量的光盤ID的條目中。在步驟S136,判斷是否將由所指定光盤ID標(biāo)識的BD-ROM插入BD-ROM驅(qū)動器1 中。在由所指定光盤ID標(biāo)識的BD-ROM已經(jīng)插入的情況下(步驟S136:是),過程進(jìn)入步驟 S137。在其他情況下,處理終止。在步驟S137,解密器42采用記錄在BD-ROM的BCA中的對于該光盤而言唯一的密 鑰信息,對虛擬包管理表的簽名數(shù)據(jù)進(jìn)行解密。在步驟S138,判斷被解密的簽名數(shù)據(jù)是否是可靠的。當(dāng)以下3個條件都滿足時,判 定簽名數(shù)據(jù)可靠(a)對具有已經(jīng)設(shè)定的散列值的簽名數(shù)據(jù)的所有文件中的每一個計算散列值,所計算的值等于在簽名數(shù)據(jù)中所包括的散列值;(b)在本地存儲器中存在其的簽名數(shù)據(jù)不具有已經(jīng)設(shè)定的散列值的M2TS文件,并且其未被刪除;(c)在本地存儲器中的所指定目錄中不存在沒有在簽名數(shù)據(jù)中記載的文件。在簽名數(shù)據(jù)判定為是可靠的情況下(步驟S138 是),過程進(jìn)入步驟S139。在其 他情況下,處理終止。在步驟S139,將在本地存儲器中的所指定目錄的屬性和其下內(nèi)容的屬 性設(shè)定為只讀屬性。在步驟S140,使用自變量指定的本地存儲器中的目錄和BD-ROM來構(gòu)建 虛擬包。因此完成對構(gòu)建虛擬包的處理的描述。此外,在將光盤新插入重放裝置的情況下,從虛擬包管理表中搜索與所插入 BD-ROM的光盤ID相對應(yīng)的目錄路徑,并使用所檢測的目錄路徑作為指定目錄路徑執(zhí)行步 驟S136中和該步驟之后的處理,以便構(gòu)建虛擬包。應(yīng)該注意的是,在本實(shí)施例中,僅僅對包含在虛擬包中的M2TS文件進(jìn)行加密/解 密;而然,以下安排也是可以接受的對其他文件進(jìn)行加密/解密,例如CLPI文件、BDMV文 件和MPLS文件。此外,雖然對在經(jīng)過加密之后將所下載的M2TS文件寫入到本地存儲器中 的情況進(jìn)行了描述;然而,以下安排也是可接受的其中,下載已經(jīng)采用對該光盤而言唯一 的密鑰預(yù)先加密的M2TS文件。應(yīng)該注意的是,所述描述說明M2TS文件的散列值沒有添加到簽名數(shù)據(jù)中,以便當(dāng) 要執(zhí)行重放時忽略計算散列值的處理,這是因?yàn)镸2TS文件的大小是很大的;然而,在采用 具有足夠高的處理能力的重放裝置的情況下,將M2TS文件的散列值添加到簽名中也是可 以接受的。另外,以下安排也是可以接受的其中,對其他文件進(jìn)行加密、解密,例如CLPI文 件、BDMV文件和MPLS文件,從而使得這些文件的散列值計算處理也如同M2TS文件一樣被 忽略。應(yīng)該注意的是,在本實(shí)施例中,當(dāng)將文件寫入到本地存儲器中生成簽名數(shù)據(jù);然 而,也可接受的是,當(dāng)構(gòu)建虛擬包時下載簽名數(shù)據(jù)本身,并且指定所下載的簽名數(shù)據(jù)。在本實(shí)施例中,將對于該光盤而言唯一的密鑰信息用作加密/解密的密鑰;然而, 也可接受的是,使用對于該光盤而言唯一的密鑰信息和從對于終端裝置而言唯一的密鑰信 息中生成的信息,作為加密/解密的密鑰。如迄今所述,根據(jù)本實(shí)施例,當(dāng)通過將記錄在多個記錄介質(zhì)上的文件進(jìn)行合并來 構(gòu)建虛擬包時,采用對于該光盤而言唯一的密鑰來對在作為可寫/可讀記錄介質(zhì)的本地存 儲器中記錄的文件進(jìn)行加密??梢苑乐梗?,在本地存儲器中的實(shí)體文件被另一光盤上的 應(yīng)用程序所重寫,或者防止通過將該本地存儲器插入到諸如個人計算機(jī)的另一裝置中進(jìn)行 的竄改。此外,由于采用對于該光盤而言唯一的密鑰對簽名數(shù)據(jù)進(jìn)行加密并將其存儲,因此 可以檢測對本地存儲器中的文件的竄改,并可以防止采用這些文件構(gòu)建虛擬包。因此,可以 防止由于已經(jīng)被非法竄改的文件的使用導(dǎo)致的故障,和防止提供商不期望的非法使用。第六實(shí)施例第六實(shí)施例討論了當(dāng)正在構(gòu)建虛擬包時,將文件從本地存儲器移動到另一記錄區(qū) 域中的方法。圖45示出了根據(jù)第六實(shí)施例,由虛擬文件系統(tǒng)單元38所執(zhí)行的虛擬包構(gòu)建的示 例。在該圖的左上方,是在BD-ROM中的目錄-文件結(jié)構(gòu)。在該圖的左下方是在構(gòu)建虛擬包之前的本地存儲器中的目錄-文件結(jié)構(gòu)。在本實(shí)施例中的虛擬文件系統(tǒng)單元38將由更新請求方法的自變量所指定的目錄 (在圖中的示例中為“ROOT/organization#l/disc#l/contsID#l”)下的文件移動到 ACTIVE 目錄下,并從BD-ROM和ACTIVE目錄中構(gòu)建虛擬包。在該圖的右下方是在移動所述文件之 后在本地存儲器中的目錄-文件結(jié)構(gòu)。
ACTIVE目錄是與由更新請求方法的自變量所指定的光盤ID標(biāo)識的BD-ROM—起構(gòu) 建虛擬包的目錄。應(yīng)用程序不能直接將數(shù)據(jù)寫入到ACTIVE目錄中。以下描述根據(jù)第六實(shí)施例的重放裝置的操作。首先,描述構(gòu)建虛擬包的處理過程。圖46是示出根據(jù)第六實(shí)施例,構(gòu)建虛擬包的處理過程的流程圖。在該流程圖與圖 36所示流程圖之間的差異在于,分別將步驟S98和S99改變?yōu)椴襟ES151和S152。在步驟 S151,執(zhí)行用于將在本地存儲器中由自變量指定的目錄下的文件移動到ACTIVE目錄中的 處理。在步驟S152,從ACTIVE目錄中和BD-ROM中的內(nèi)容構(gòu)建虛擬包。因此完成對構(gòu)建虛 擬包的處理過程的描述。以下描述在步驟S151中的處理的細(xì)節(jié)。圖47是示出將文件移動到ACTIVE目錄 中的處理過程的流程圖。在該流程圖中,判斷在更新請求方法的自變量所指定的本地存儲器中的目錄下是 否存在一個或多個文件(步驟S161),如果存在一個或多個文件(步驟S161 是),則使用 在所指定目錄中的所述一個或多個文件作為處理目標(biāo),執(zhí)行步驟S162到S164的處理。在步驟S162,判斷在目標(biāo)文件的文件名中的第一個字符是否為“_”。在第一個字 符為“_”的情況下(步驟S162 是),將具有通過從該目標(biāo)文件的文件名中提取出第一個字 符“_”而獲得的文件名的文件,從ACTIVE目錄中刪除,并且將該目標(biāo)文件本身也從所指定 目錄中刪除(步驟S163)。在第一個字符不是“_”的情況下(步驟S162:否),將該目標(biāo)文 件從所指定目錄移動到ACTIVE目錄中(步驟S164)。對在所指定目錄下存在的所有文件執(zhí)行步驟S162到步驟S164的處理,并且當(dāng)在 所指定目錄下不存在文件時(步驟S161 否),終止處理。從而完成對將在本地存儲器中的 指定目錄下的文件移動到ACTIVE目錄中的處理的細(xì)節(jié)描述。應(yīng)該注意的是,替代根據(jù)目標(biāo)文件的文件名是否為“_”來從ACTIVE目錄中刪除文 件,也可以接受的是,提供進(jìn)行刪除預(yù)定(deletion reservation)的API。進(jìn)行刪除預(yù)定的 API用于使得Java應(yīng)用程序能夠?qū)υ贏CTIVE目錄中的文件進(jìn)行刪除預(yù)定;然而,即使是該 API進(jìn)行了刪除預(yù)定,也不會立即刪除在ACTIVE目錄中的文件。虛擬文件系統(tǒng)單元38將 文件刪除預(yù)定的內(nèi)容存儲到存儲器中,并且當(dāng)執(zhí)行在AV目錄中的文件的移動處理時,通過 刪除由所述刪除預(yù)定所指定的ACTIVE目錄中的文件,來執(zhí)行步驟S162和S163中的替換處 理。以下描述由Java應(yīng)用程序進(jìn)行的寫入文件訪問的處理過程。圖48是示出控制對文件的寫入訪問的API的處理過程的流程圖。當(dāng)Java應(yīng)用 程序使用本地存儲器定位器的指定來請求寫入訪問時,判斷該寫入訪問是否是對在ACTIVE 目錄下的文件之一進(jìn)行的寫入訪問(步驟S171)。當(dāng)該寫入訪問是對在ACTIVE目錄下的文件之一進(jìn)行的寫入訪問時(步驟S171 是),將指示不允許對文件進(jìn)行寫入的異常返回給Java應(yīng)用程序,然后處理終止(步驟S172)。在其他情況中(步驟S171 否),過程進(jìn)入步驟S173。在步驟S173,對本地存儲器中的文件進(jìn)行寫入訪問。因此完成對文件的寫入訪問 的處理過程的描述。根據(jù)上述處理過程,在作為訪問目標(biāo)的文件是構(gòu)成虛擬包的文件,并且如果當(dāng)作 出訪問請求時正在構(gòu)建虛擬包的情況下,將不會允許對該文件的訪問。應(yīng)該注意的是,以下安排也是可以接受的其中,在虛擬包構(gòu)建處理過程中允許 Java應(yīng)用程序?qū)?shù)據(jù)寫入到ACTIVE目錄中,以便Java應(yīng)用程序執(zhí)行將文件移動到ACTIVE 目錄中的處理。更具體而言,在圖47的流程圖中,虛擬文件系統(tǒng)單元38將在由Java應(yīng)用程 序指定的目錄下的文件移動到ACTIVE目錄中;然而,以下安排也是可接受的其中,在虛擬 包構(gòu)建處理過程中允許Java應(yīng)用程序?qū)懭階CTIVE目錄,以便將開始把文件移動到ACTIVE 目錄的處理的事件通知給Java應(yīng)用程序,并且Java應(yīng)用程序自己將文件移動到ACTIVE目 錄。如迄今所述,根據(jù)本實(shí)施例,在通過將記錄在多個記錄介質(zhì)中的文件進(jìn)行合并來 構(gòu)建虛擬包的情況下,將在作為可讀/可寫記錄介質(zhì)的本地存儲器中存儲的一個或多個文 件移動到ACTIVE目錄中,應(yīng)用程序不允許對ACTIVE目錄進(jìn)行寫入訪問;因此,可以防止當(dāng) 正在構(gòu)建虛擬包時,采用來自該應(yīng)用程序本身或者其他應(yīng)用程序的非法文件來改變文件。第七實(shí)施例第七實(shí)施例描述了在來自相同提供商的BD-ROM之間共享本地存儲器中的內(nèi)容的 方法。在第七實(shí)施例的描述中,與在第六實(shí)施例中的相同部分的描述將被省略。圖49示出了根據(jù)第七實(shí)施例的虛擬包的構(gòu)建的示例。在該圖的左上方是在 BD-ROM上的目錄-文件結(jié)構(gòu),在該圖的左下方是通過將構(gòu)建虛擬包的文件移動到ACTIVE目 錄中以便構(gòu)建虛擬包,而獲得的在本地存儲器中的目錄-文件結(jié)構(gòu)。圖49與圖48的不同之處在于,ACTIVE目錄不僅存在于R00T/organization#l/ disc#l 下,還存在于 R00T/organization#l/SHARED 下。SHARED目錄是能夠由任何被驗(yàn)證的并且具有公共組織ID的應(yīng)用程序從中讀出數(shù) 據(jù)和將數(shù)據(jù)寫入的目錄。在需要將從服務(wù)器下載的文件作為公共使用的文件,來用于為具有不同光盤ID 的多個BD-ROM構(gòu)建虛擬包的情況下,將所下載文件保存在R00T/organization#l/SHARED 目錄下而不是R00T/organization#l/disc#l目錄下。在SHARED目錄下的目錄結(jié)構(gòu)與disc ID目錄下的目錄結(jié)構(gòu)相同。對ACTIVE目錄的操作也與第六實(shí)施例中所述相同。然而,應(yīng)該 注意的是,當(dāng)要構(gòu)建虛擬包時,不僅僅將在disc#l目錄下的ACTIVE目錄中的文件,而且將 在SHARED目錄下的ACTIVE目錄下的文件合并來構(gòu)建虛擬包。本實(shí)施例的虛擬文件系統(tǒng)單元38將同時存在于本地存儲器的SHARED目錄下和 本地存儲器的disc ID目錄下的一個或多個文件,作為在虛擬包中使用的文件記載到虛擬 包信息中。另外,在具有相同名稱的文件存在于以下的任意組合的情況下(i)BD-R0M上, (ii)本地存儲器的SHARED目錄下,以及(iii)本地存儲器的disc ID目錄下,(例如,0002. CLPI同時存在于BD-ROM上和本地存儲器的disc#l目錄下),虛擬文件系統(tǒng)單元38使用本 地存儲器中的文件作為用于虛擬包構(gòu)建的文件。在具有相同名稱的文件存在于以下全部中 的情況下(i)BD-ROM上,(ii)本地存儲器的SHARED目錄下,以及(iii)本地存儲器的discID目錄下,虛擬文件系統(tǒng)單元38使用在discID目錄下的文件進(jìn)行虛擬包構(gòu)建。遞歸地對 每個子目錄重復(fù)進(jìn)行這種合并處理。圖50示意性地示出了如何使用在SHARED目錄下的ACTIVE目錄和在disc#l目錄 下的ACTIVE目錄來構(gòu)建虛擬包。當(dāng)虛擬包被構(gòu)建時,將在SHARED目錄下的ACTIVE目錄中 的文件與在BD-ROM上的文件進(jìn)行合并,從而生成中間文件結(jié)構(gòu)。該合并操作與在第四實(shí)施 例中所述相同。隨后,將該中間文件結(jié)構(gòu)與在disc#l目錄下的ACTIVE目錄中的文件進(jìn)行 合并。從而通過將BD-R0M、在SHARED目錄下的ACTIVE目錄中的文件、以及在disc#l目錄 下的ACTIVE目錄中的文件進(jìn)行合并來構(gòu)建虛擬包。該中間文件結(jié)構(gòu)與在disc#l目錄下 的ACTIV E目錄中的文件進(jìn)行合并,是通過在將該中間文件結(jié)構(gòu)看作BD-ROM的同時執(zhí)行第 四實(shí)施例中的合并操作來實(shí)現(xiàn)的。換而言之,在具有相同名稱的文件同時存在于中間文件 結(jié)構(gòu)和disc ID下的ACTIVE目錄中的情況下,disc#l目錄下的ACTIVE目錄具有最終優(yōu)先 級別。因此,優(yōu)先級別按以下順序升高BD-R0M、在SHARED目錄下的ACTIVE目錄、以及在 disc#l目錄下的ACTIVE目錄??商鎿Q地,也可接受的是,將SHARED目錄下的ACTIVE目錄的優(yōu)先級別降低,來構(gòu) 建虛擬包;即,優(yōu)先級別按以下順序升高在SHARED目錄下的ACTIVE目錄、BD-R0M、以及在 disc#l目錄下的ACTIVE目錄。這意味著在具有相同的名稱的文件同時存在于BD-ROM上和 在本地存儲器的SHARED目錄下的情況下,使用在BD-ROM上的文件。參考圖49進(jìn)行解釋, 盡管00002. JAR和00002. CLPI同時存在于BD-ROM上和本地存儲器中,對于00002. JAR,由 于其在本地存儲器中的SHARED目錄下的ACTIVE目錄中,因此使用在BD-ROM上的00002. JAR;對于00002.0^1,因?yàn)槠湓诒镜卮鎯ζ髦械呢浚?1目錄下的ACTIVE目錄中,因此使 用在本地存儲器中的00002. CLPI。在對SHARED目錄下的ACTIVE目錄的訪問限制微弱,并 且存在第三方企圖通過將惡意文件放置在SHARED目錄下來非法地替換在BD-ROM上的文件 的情況下,采用這種方式設(shè)定優(yōu)先級別是有效的。通過將在SHARED目錄下的ACTIVE目錄的優(yōu)先級別降低到BD-ROM之下,可以禁止 BD-ROM上的文件被替換,從而僅僅允許添加新文件。因此,可以增強(qiáng)安全級別。應(yīng)該注意的是,也可以接受的是,在BD-ROM上或者在SHARED目錄下的ACTIVE目 錄中,提供定義有關(guān)在SHARED目錄下的ACTIVE目錄的優(yōu)先級別是高于還是低于BD-ROM的 優(yōu)先級別的優(yōu)先級別信息的文件。上述虛擬包的構(gòu)建是通過發(fā)布更新請求方法來實(shí)現(xiàn)的,更新請求方法指定以下作 為自變量(i)其中記錄有要在多個BD-ROM的虛擬包之間進(jìn)行共享的文件的目錄路徑(在 圖 49 的示例中為“R00T/organization#l/SHARED/contsID#3”),(ii)其中記錄有對于由光 盤ID所標(biāo)識的BD-ROM的虛擬包而言唯一的文件的目錄路徑(在圖49中的示例中為“ROOT/ organization#l/disc#l/contsID#l,,),以及(iii)光盤 ID0以下描述根據(jù)本發(fā)明的第七實(shí)施例的重放裝置的操作。首先,解釋構(gòu)建虛擬包的 處理過程。圖51是示出根據(jù)第七實(shí)施例的構(gòu)建虛擬包的處理過程的流程圖。圖51的流程圖 與圖36的流程圖之間的差異在于,將步驟S98和S99改變?yōu)椴襟ES181到S184。在步驟S181,執(zhí)行以下處理,將在由自變量指定的、作為要在多個BD-ROM之間進(jìn) 行共享的文件的文件記錄目的地的本地存儲器中的目錄下所存儲的文件,移動到在SHARED目錄下的ACTIVE目錄中。采用與圖47所示的過程相同的方式執(zhí)行移動文件的處理。在步 驟S182,使用在SHARED目錄下的ACTIVE目錄中和BD-ROM中的內(nèi)容構(gòu)建中間文件結(jié)構(gòu)。在 步驟S183,執(zhí)行以下處理,將由自變量指定的、作為唯一性文件的文件記錄目的地的目錄下 所存儲的文件,移動到在discID目錄下的ACTIVE目錄中。采用與圖47所示的過程相同的 方式執(zhí)行移動文件的處理。在步驟S184,將在discID目錄下的ACTIVE目錄中所存儲的內(nèi) 容與在步驟S182中構(gòu)建的中間文件結(jié)構(gòu)進(jìn)行合并,從而構(gòu)建虛擬包。因此完成對虛擬包創(chuàng) 建的處理過程的描述。應(yīng)該注意的是,以下的順序可以顛倒⑴在步驟S182中的使用在SHARED目錄下 的ACTIVE目錄和BD-ROM構(gòu)建中間文件結(jié)構(gòu)的步驟,以及(ii)在步驟S183中的將文件移 動到discID目錄下的ACTIVE目錄中的步驟。
接下來,以下參考圖52詳細(xì)描述圖51所示的步驟S182中的處理。當(dāng)將在SHARED 目錄下的ACTIVE目錄中的文件與在BD-ROM上的文件進(jìn)行合并時,則首先在步驟S191,將 或者存儲在BD-ROM上或者存儲在discID目錄中,并且在其中寫入優(yōu)先級別信息的文件讀 出,以便檢查SHARED目錄和BD-ROM的優(yōu)先級別。在SHARED目錄的優(yōu)先級別較高的情況下 (步驟S191 是),過程進(jìn)入步驟S192,獲得示出在SHARED目錄下的ACTIVE目錄中的文件 的文件列表。隨后,對在BD-ROM上記錄的所有文件中的每一個重復(fù)執(zhí)行步驟S193到S195 的循環(huán)處理。在步驟S194,將記錄在BD-ROM上的、還沒有被處理的文件中的一些的文件名作為 處理目標(biāo)進(jìn)行檢查,判斷在步驟S192中獲得的文件列表是否包含與每個處理目標(biāo)具有相 同文件名的文件(步驟S193)。在文件列表不包含與處理目標(biāo)具有相同文件名的文件的情 況下(步驟S193:否),將該處理目標(biāo)文件的文件名添加到文件列表(步驟S195)。對在 BD-ROM上記錄的所有文件中的每一個都進(jìn)行在步驟S194和S195中的處理,并且當(dāng)檢查完 所有文件時(步驟S193 是),將所獲得的文件列表作為中間文件結(jié)構(gòu),完成處理。另一方面,在步驟S191中BD-ROM的優(yōu)先級別比SHARED目錄高的情況下,過程進(jìn) 入步驟S196,獲得記錄在BD-ROM上的文件的列表。隨后,對在SHARED目錄下的ACTIVE目 錄中的所有文件的每一個都重復(fù)執(zhí)行在步驟S197到S199中的循環(huán)處理。在步驟S198中,在SHARED目錄下的ACTIVE目錄中的文件中,將還沒有被處理的 文件中的一些的文件名作為處理目標(biāo)進(jìn)行檢查,判斷在步驟S196中獲得的文件列表是否 包含與每個處理目標(biāo)具有相同文件名的文件。在文件列表不包含與處理目標(biāo)具有相同文件 名的文件的情況下(步驟S198:否),將該處理目標(biāo)文件的文件名添加到文件列表(步驟 S199)。對在SHARED目錄下的ACTIVE目錄中所記錄的所有文件中的每一個都進(jìn)行在步驟 S198和S195中的處理,并且當(dāng)檢查完所有文件時(步驟S197 是),將所獲得的文件列表 作為中間文件結(jié)構(gòu),完成處理。因此完成用于構(gòu)建中間文件結(jié)構(gòu)的過程。應(yīng)該注意的是,也可接受的是,預(yù)先確定缺省優(yōu)先順序,從而如果不存在指示優(yōu)先 級別信息的文件時,使用該缺省優(yōu)先順序。圖53是更詳細(xì)地示出圖51的步驟S184中執(zhí)行的處理的流程圖。首先,在步驟 S201,獲得在discID目錄下的ACTIVE目錄中的文件的文件名列表。在步驟S203,檢查在圖 51中的步驟S182中獲得的中間文件結(jié)構(gòu)的文件列表中所包含的文件名。在沒有具有相同 文件名的文件的情況下,將中間文件結(jié)構(gòu)中的文件的文件名添加到步驟S204中的列表中。對在中間文件結(jié)構(gòu)中的所有文件中的每一個進(jìn)行步驟S203和S204的處理,當(dāng)在步驟S202 判定檢查完所有文件時,將所獲得的文件列表作為虛擬包的文件結(jié)構(gòu)列表,然后處理結(jié)束。 因此完成對采用中間文件結(jié)構(gòu)構(gòu)建虛擬包的處理過程的描述。 如迄今所述,根據(jù)本實(shí)施例,在通過將記錄在多個記錄介質(zhì)上的文件進(jìn)行合并來 構(gòu)建虛擬包的情況下,將記錄在作為可讀/可寫記錄介質(zhì)的HDD上的文件移動到ACTIVE目 錄中;因此,就不會存在以下可能性在正在構(gòu)建虛擬包時,由于該應(yīng)用程序本身或者其他 應(yīng)用程序進(jìn)行的非法文件訪問,導(dǎo)致在本地存儲器中所存儲的實(shí)體文件被改變。此外,通過 在屬于同一提供商的Java應(yīng)用程序能夠公共訪問的位置處提供ACTIVE目錄,就可以使得 不同BD-ROM能夠共享在本地存儲器中所存儲的內(nèi)容。因此,本地存儲器不需要存儲具有很 大文件大小的、相同實(shí)體的多個AV流等等。因此,就可以在BD-ROM之間有效地共享和利用 數(shù)據(jù)。第八實(shí)施例第八實(shí)施例描述了在本地存儲器中所存儲的用于構(gòu)建虛擬包的文件被竄改的情 況,用于檢測竄改的一種方法。在第八實(shí)施例中,與第三實(shí)施例相同部分的描述被省略。將 僅僅描述與第三實(shí)施例不同的部分。當(dāng)要用于構(gòu)建虛擬包的本地存儲器中的文件被竄改時,存在當(dāng)重放虛擬包時執(zhí)行 提供商不期望的操作的可能性。因此,必須檢測竄改。為了檢測竄改,根據(jù)本實(shí)施例的重放裝置在將要構(gòu)建虛擬包時,檢查合并管理信 息文件是否被竄改,并且當(dāng)讀出文件時,檢查在HDD上的文件是否被竄改。在構(gòu)建虛擬包之后,在虛擬包的重放過程中,虛擬文件系統(tǒng)單元38有時可能提供 存儲在本地存儲器中的一些文件用于DVD-Iike模塊29a、Java平臺29b、重放控制引擎32 等等。因?yàn)檫@些文件存儲在本地存儲器中,因此在所述文件被所述模塊使用之前,必須檢查 其是否未被竄改??梢詫?gòu)建虛擬包的本地存儲器中的文件按照竄改檢查的必要性分為兩 種類型。第一種類型是每個都具有小的文件大小的數(shù)據(jù)文件,其通常在響應(yīng)重放裝置時不 會造成任何問題,即使是對整個文件檢查竄改也是如此。例如,通常將“合并管理信息文件” 分類到這種類型。第二種類型是每個都具有很大文件大小的數(shù)據(jù)文件,其在響應(yīng)重放裝置時可能造 成問題,這是因?yàn)閷φ麄€文件進(jìn)行檢查需要很長時間。例如,通常將MPEG流中的“AV數(shù)據(jù) (M2TS文件)”分類到這種類型。以下描述在被分類到第一種類型的文件中的竄改檢查。在結(jié)尾,將描述與對分類 到第二種類型的文件執(zhí)行檢查的情況之間的差異。圖54是示出虛擬文件系統(tǒng)單元38將在本地存儲器中的文件提供給另一模塊的流 程圖。在步驟S211,檢查所請求文件是否存在于本地存儲器中。在所請求文件在本地存儲 器中時(步驟S211 是),在步驟S212中從本地存儲器中獲得該文件。隨后,在步驟S213 中,檢查目標(biāo)文件的散列值是否被寫入到合并管理信息文件中。在散列值被寫入到合并管 理信息文件中的情況下(步驟S213 是),在步驟S214計算該文件的散列值,并將所計算的 值與在合并管理信息文件中所寫入的值進(jìn)行比較,以判斷所述值是否彼此相等。在所計算的值與在合并管理信息文件中所寫入的值不相等的情況下(步驟S214 否),在實(shí)際中將不執(zhí)行該文件的加載。在步驟S211的判斷結(jié)果是該文件不存在于本地存 儲器中時(步驟S211 否),在步驟S215從BD-ROM獲得該文件。隨后,實(shí)際在步驟S216中 加載該文件,從而使得其他模塊能夠使用該文件。類似地,在散列值沒有寫入合并管理信息 文件(步驟S213 否)和所計算的值等于在合并管理信息文件中所寫入的值的情況下(步 驟S214),實(shí)際在步驟S216中加載該文件,從而使得其他模塊能夠使用該文件。
應(yīng)該注意的是,在虛擬文件系統(tǒng)單元38多次從本地存儲中讀出文件的情況下,可 能在每次讀出該文件時都執(zhí)行竄改檢查。還可以接受的是,在執(zhí)行竄改之后,鎖定該文件, 從而使得在本地存儲器中的信息不會被改變。此外,以下安排也是可以接受的其中,虛擬文件系統(tǒng)單元38對要被其他模塊所 使用的一些或者全部文件預(yù)先執(zhí)行竄改檢查,并將被檢查的文件存儲在虛擬文件系統(tǒng)單元 38或者鎖定被檢查文件。只要作出如下安排在從本地存儲器中讀出文件之后,在其他模 塊使用該文件之前計算該文件的散列值以檢查竄改,就可以接受以任何方式實(shí)現(xiàn)該安排。當(dāng)檢測到要被其他模塊所使用的文件已經(jīng)被竄改時,虛擬文件系統(tǒng)單元38暫停 重放,從而使得將不會發(fā)生故障。在該情況下,可以接受的是,除了暫停重放之外,還通知用 戶或者通過Java平臺29b通知Java應(yīng)用程序,或者僅僅使用BD-ROM再次執(zhí)行重放。可替 換地,將這些處理中任意處理進(jìn)行組合也是可以接受的。對于每一個都具有很大文件大小,并且在響應(yīng)重放裝置時由于對整個文件進(jìn)行檢 查需要很長時間的文件而言,使用一種方法來加密整個文件,從而使得在該文件被竄改之 后不能被解密。在該情況下,以下安排也是可接受的其中,即使是將被加密文件的散列值 寫入到合并管理信息文件中,虛擬文件系統(tǒng)單元38也將其忽略,這是因?yàn)樵诒患用芪募?一部分被竄改時,不可能將該文件解密為可靠文件??商鎿Q地,還可接受的是,僅僅對該文件的一部分檢查竄改,或者僅僅檢查該文件 的大小。在對整個文件進(jìn)行加密的情況下,存在整個文件可能被另一文件所替換的可能性。 在這種情況下,通過檢查該文件的大小,可以容易地執(zhí)行竄改檢查。還可以接受的是設(shè)定一 種情況,在該情況下,虛擬文件系統(tǒng)單元38忽略所寫入的散列值。例如,在該文件的大小 大于特定值的情況下,或者在合并管理信息文件中所包含的文件名中的擴(kuò)展名是特定值, 例如.M2TS,的情況下,或者在合并管理信息文件中所包含的文件名是在特定目錄下,例如 STREAM目錄,的情況下,忽略所寫的散列值。如迄今所述,根據(jù)本實(shí)施例,當(dāng)通過對記錄在多個記錄介質(zhì)上的文件進(jìn)行合并來 構(gòu)建虛擬包時,如果在作為可讀/可寫記錄介質(zhì)的本地存儲器中的實(shí)體文件已經(jīng)被竄改, 則可以判斷散列值是否正確并檢測實(shí)體文件的竄改,以便暫停重放。因此,可以在可能由于 使用非法文件造成的故障發(fā)生之前,將其避免。第九實(shí)施例第九實(shí)施例描述了用于在屏幕上顯示虛擬包構(gòu)建處理的狀態(tài)的一種方法。在第九 實(shí)施例的描述中,與第三實(shí)施例相同部分的描述被省略。將僅僅描述與第三實(shí)施例不同的 部分。圖55示意性地示出了根據(jù)第九實(shí)施例,在虛擬包構(gòu)建處理過程中的顯示。重放裝置610示意性地表示重放裝置的外部面貌。內(nèi)置在重放裝置610中的 BD-ROM驅(qū)動器611加載和退出BD-ROM以及訪問BD-R0M。在重放裝置610的前面提供了熒光管顯示設(shè)備612,其用于示出正在執(zhí)行虛擬包構(gòu)建處理,并且用作彩色顯示單元,并且其 通過顯示顏色(例如,用橙色顯示)來指示正在執(zhí)行虛擬包構(gòu)建處理。在重放裝置610的 前面提供了熒光管顯示設(shè)備613,其用于通過改變所顯示區(qū)域的比例來示出在與虛擬包構(gòu) 建相關(guān)的處理中,例如在驗(yàn)證處理中,的進(jìn)度,并且其通過改變由來自熒光管的光所顯示的 區(qū)域的比例來指示虛擬包構(gòu)建處理的進(jìn)度。通過有線等等將諸如TV之類的顯示裝置614 的輸入單元(圖中未示出)連接到重放裝置610的輸出單元(圖中未示出),并在屏幕上顯 示從重放裝置610輸出的圖像。重放裝置610將指示正在執(zhí)行虛擬包構(gòu)建的屏幕顯示615 輸出到顯示裝置614,作為彈出消息面板等等,從而將其覆蓋在內(nèi)容重放顯示屏幕上來進(jìn)行 顯不。作為彈出顯示的屏幕顯示615包括屏幕顯示616,其通過改變所顯 示區(qū)域的比例, 來顯示與虛擬包構(gòu)建有關(guān)的處理,例如驗(yàn)證處理,的進(jìn)度,所述所顯示區(qū)域通過改變在顯示 裝置614的屏幕上的條形的比例,來視覺性地指示虛擬包構(gòu)建處理的進(jìn)度。圖56示意性地示出根據(jù)第九實(shí)施例,在虛擬包構(gòu)建處理中的一個失敗的顯示。與 圖55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在重放裝置610的前 面提供了熒光管顯示617,其用于指示在虛擬包構(gòu)建處理中的失敗,并且通過顯示顏色(例 如,用紅色顯示)來指示虛擬包構(gòu)建處理已經(jīng)失敗。在虛擬包構(gòu)建處理已經(jīng)失敗的情況下, 重放裝置610將指示虛擬包構(gòu)建處理失敗的屏幕顯示618輸出到顯示裝置614,作為彈出消 息面板等等,從而將其覆蓋在內(nèi)容重放顯示屏幕上來進(jìn)行顯示。圖57示意性地示出了根據(jù)第九實(shí)施例,在虛擬包構(gòu)建處理中的成功的顯示。與圖 55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在重放裝置610的前面提 供了熒光管顯示619,其用于指示在虛擬包構(gòu)建處理中的成功,并且通過顯示顏色(例如, 用綠色顯示)來指示虛擬包構(gòu)建處理已經(jīng)成功。在虛擬包構(gòu)建處理已經(jīng)成功的情況下,重 放裝置610將指示虛擬包構(gòu)建處理成功的屏幕顯示620輸出到顯示裝置614,作為彈出消息 面板等等,從而將其覆蓋在內(nèi)容重放顯示屏幕上來進(jìn)行顯示。以下描述當(dāng)正在構(gòu)建虛擬包時,在屏幕上顯示構(gòu)建處理的狀態(tài)的過程。圖32是示 出對與虛擬包構(gòu)建處理相關(guān)的顯示進(jìn)行更新的處理過程的流程圖。該流程圖是通過從圖44所示的流程圖中取出在步驟S131到S135中的處理過程, 并加入在步驟S222和S223中的處理過程而獲得的。在步驟S221,將顯示轉(zhuǎn)換到圖55所示的正在執(zhí)行虛擬包處理的顯示。在步驟 S222,將顯示轉(zhuǎn)換到圖56所示的虛擬包處理已經(jīng)失敗的顯示。在步驟S223,將顯示切換到 圖27所示的虛擬包處理已經(jīng)成功的顯示。還可以接受的是,在執(zhí)行步驟S222中的處理或 者在步驟S223中的處理之后,在指示虛擬包構(gòu)建的狀態(tài)的屏幕顯示的輸出完成之前,將該 顯示在屏幕上示出一段預(yù)定時間,并且執(zhí)行正常的內(nèi)容重放。圖59示出了根據(jù)第九實(shí)施例,在本地存儲器中所存儲的內(nèi)容的列表的顯示。與圖 55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在本地存儲器中所存儲的 內(nèi)容列表的屏幕顯示621,是用于在顯示裝置614上顯示在虛擬包管理表中所管理的本地 存儲器中的內(nèi)容列表的圖像。示出了在該內(nèi)容列表的虛擬包構(gòu)建處理中已經(jīng)失敗的內(nèi)容的 屏幕顯示622是用于通過在屏幕顯示621中的圖標(biāo),來向用戶指示在簽名驗(yàn)證中內(nèi)容已經(jīng) 失敗,所述屏幕顯示621用于本地存儲器中的內(nèi)容列表的屏幕顯示。屏幕顯示623示出了在該內(nèi)容列表的虛擬包構(gòu)建處理中已經(jīng)成功的內(nèi)容,所述屏幕顯示623是用于通過在屏幕 顯示621中的圖標(biāo),來向用戶指示在簽名驗(yàn)證中內(nèi)容已經(jīng)成功,所述屏幕顯示621用于本地 存儲器中的內(nèi)容列表的屏幕顯示。應(yīng)該注意的是,在本實(shí)施例中,將在虛擬包構(gòu)建處理中已經(jīng)失敗的內(nèi)容通知給用 戶;然而,以下安排也是可以接受的其中,系統(tǒng)自動刪除這種內(nèi)容。其他修改示例迄今已經(jīng)根據(jù)上述實(shí)施例示例描述了本發(fā)明。然而,不言而喻,本發(fā)明并不局限于上述實(shí)施例示例。本發(fā)明包括如下所述的其他示例。(1)本發(fā)明可以構(gòu)建為上述的方法??商鎿Q地,本發(fā)明可以構(gòu)建為計算機(jī)程序,所 述計算機(jī)程序使用從這種計算機(jī)程序轉(zhuǎn)換的計算機(jī)或者數(shù)字信號來實(shí)現(xiàn)所述方法。另外,可接受的是,本發(fā)明構(gòu)建為計算機(jī)可讀記錄介質(zhì),例如軟盤、硬盤、CD-ROM、 M0、DVD、DVD-R0M、DVD-RAM、BD (藍(lán)光光盤)或者半導(dǎo)體存儲器,所述計算機(jī)可讀記錄介質(zhì)上 記錄有這種計算機(jī)程序和這種數(shù)字信號;或者本發(fā)明構(gòu)建為所述記錄介質(zhì)上所記錄的這種 計算機(jī)程序或者這種數(shù)字信號。此外,可以通過經(jīng)由通信網(wǎng)、無線或有線通信線、諸如因特網(wǎng)之類的網(wǎng)絡(luò)等等傳輸 這種計算機(jī)程序或者這種數(shù)字信號,來實(shí)現(xiàn)本發(fā)明。此外,可接受的是,認(rèn)為本發(fā)明是包括微處理器和存儲器的計算機(jī)系統(tǒng),其中,所 述存儲器中存儲上述計算機(jī)程序,并且所述微處理器根據(jù)所述計算機(jī)程序工作。此外,可接受的是,通過輸送記錄在所述記錄介質(zhì)上的程序或者數(shù)字信號,或者經(jīng) 由上述網(wǎng)絡(luò)等等進(jìn)行輸送,來基于計算機(jī)系統(tǒng)執(zhí)行所述程序或數(shù)字信號。(2)在第一到第九實(shí)施例中,將Java(注冊商標(biāo))用作虛擬機(jī)的編程語言。然而, 采用用作UNIX 的OS的B-shell、Perl腳本、ECMA腳本等等來取代Java 編程語言也是可 以接受的。換而言之,本發(fā)明并不局限于Java 。(3)在第一到第九實(shí)施例中,在用于存儲文件的本地存儲器中的結(jié)構(gòu)具有與 BD-ROM上相同的目錄結(jié)構(gòu);然而,只要清晰地表示文件之間的對應(yīng)關(guān)系,本發(fā)明就不局限 于采用相同的目錄結(jié)構(gòu)的情況。(4)在第一到第九實(shí)施例中,將HDD用作可讀/可寫記錄介質(zhì);然而,使用閃存等 等作為可讀/可寫記錄介質(zhì)也是可接受的。(5)在第一到第九實(shí)施例中,描述了具有對記錄介質(zhì)進(jìn)行重放功能的重放裝置; 然而,不言而喻,本發(fā)明可以應(yīng)用于不僅僅具有重放功能還具有記錄功能的重放裝置。(6)在第一到第九實(shí)施例中,描述了重放BD-ROM的重放裝置;然而,不言而喻,在 以上實(shí)施例所述的記錄在BD-ROM上的必要數(shù)據(jù)被記錄在可寫光學(xué)記錄介質(zhì)上的情況下, 也能夠?qū)崿F(xiàn)相同的效果。此外,不言而喻,在以上實(shí)施例所述的記錄在BD-ROM上的必要數(shù)據(jù)被記錄在取代 光學(xué)記錄介質(zhì)的便攜式記錄介質(zhì)(例如,諸如SD卡、或者小型閃存(CF)之類的半導(dǎo)體存儲 器)上的情況下,也能夠?qū)崿F(xiàn)相同的效果。(7)可以接受的是,將任意所述實(shí)施例和修改示例進(jìn)行組合。工業(yè)適用性能夠應(yīng)用本發(fā)明的示例包括,諸如BD-ROM播放器之類的重放裝置,在所述重放裝置上安裝了 HDD,并且所述重放裝置通過采用記錄在可讀/可寫記錄介質(zhì) 上的內(nèi)容對記錄 在只讀記錄介質(zhì)上的內(nèi)容進(jìn)行擴(kuò)展,來執(zhí)行重放。
權(quán)利要求
一種在重放裝置中使用的重放方法,其用于對記錄介質(zhì)進(jìn)行重放,在所述記錄介質(zhì)上存儲(i)包含多個標(biāo)題的數(shù)據(jù),(ii)包含一個或多個應(yīng)用程序的數(shù)據(jù),每個應(yīng)用程序與所述多個標(biāo)題中的任一個對應(yīng),以及(iii)包含一個或多個數(shù)字流的數(shù)據(jù),每個數(shù)字流與所述多個標(biāo)題中的任一個對應(yīng),所述重放方法包括選擇步驟,其選擇所述多個標(biāo)題中的任一個;重放步驟,其重放與所選擇的標(biāo)題對應(yīng)的數(shù)字流;執(zhí)行步驟,其執(zhí)行與所選擇的標(biāo)題對應(yīng)的應(yīng)用程序;記錄步驟,其在所述重放裝置的本地存儲器中記錄第一數(shù)據(jù)、第二數(shù)據(jù)、合并管理信息以及簽名信息,所述第一數(shù)據(jù)與存儲在所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合使用并且不需要竄改檢查,所述第二數(shù)據(jù)與存儲在所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合使用并且需要竄改檢查,所述合并管理信息指示其中存儲所述第一數(shù)據(jù)的第一位置、其中存儲所述第二數(shù)據(jù)的第二位置、以及所述第二數(shù)據(jù)的散列值,并且所述簽名信息指示所述合并管理信息的散列值;第一判斷步驟,其判斷所述第一數(shù)據(jù)和所述第二數(shù)據(jù)是否分別存儲在所述第一位置和所述第二位置;第二判斷步驟,其通過比較由所述簽名信息指示的所述散列值與根據(jù)所述合并管理信息計算的散列值,判斷所述合并管理信息是否被竄改,并且如果所述散列值彼此匹配,則判斷所述合并管理信息沒有被竄改;屬性改變步驟,其將所述第一數(shù)據(jù)、所述第二數(shù)據(jù)以及所述合并管理信息的屬性改變?yōu)橹蛔x;生成步驟,其在(i)所述第一判斷步驟判斷所述第一數(shù)據(jù)和所述第二數(shù)據(jù)分別存儲在所述第一位置和所述第二位置,(ii)所述第二判斷步驟判斷所述合并管理信息沒有被竄改,以及(iii)所述屬性改變步驟將所述第一數(shù)據(jù)、所述第二數(shù)據(jù)以及所述合并管理信息的所述屬性改變?yōu)橹蛔x之后,當(dāng)所述選擇步驟選擇了與所選擇的標(biāo)題不同的標(biāo)題時,通過將存儲在所述本地存儲器中屬性改變?yōu)橹蛔x的所述第一數(shù)據(jù)和所述第二數(shù)據(jù)與存儲在所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合生成包信息;以及處理執(zhí)行步驟,其將由所述合并管理信息指示的所述第二數(shù)據(jù)的所述散列值與根據(jù)所述包信息中的所述第二數(shù)據(jù)計算的散列值進(jìn)行比較,并且如果所述散列值彼此匹配,則使用所述包信息中的所述第二數(shù)據(jù)執(zhí)行處理。
2.根據(jù)權(quán)利要求1所述的重放方法,其中所述第一數(shù)據(jù)包含數(shù)字流,并且所述第二數(shù)據(jù)與所述數(shù)字流不同。
3.根據(jù)權(quán)利要求1所述的重放方法,其中一旦從用戶接收標(biāo)題選擇請求,所述選擇步驟就對所述標(biāo)題進(jìn)行選擇。
4.一種重放裝置,其用于對記錄介質(zhì)進(jìn)行重放,在所述記錄介質(zhì)上存儲(i)包含多個 標(biāo)題的數(shù)據(jù),(ii)包含一個或多個應(yīng)用程序的數(shù)據(jù),每個應(yīng)用程序與所述多個標(biāo)題中的任 一個對應(yīng),以及(iii)包含一個或多個數(shù)字流的數(shù)據(jù),每個數(shù)字流與所述多個標(biāo)題中的任 一個對應(yīng),所述重放裝置包括本地存儲器;選擇單元,其用于選擇所述多個標(biāo)題中的任一個;重放單元,其用于重放與所選擇的標(biāo)題對應(yīng)的數(shù)字流;執(zhí)行單元,其用于執(zhí)行與所選擇的標(biāo)題對應(yīng)的應(yīng)用程序;記錄單元,其用于在所述本地存儲器中記錄第一數(shù)據(jù)、第二數(shù)據(jù)、合并管理信息以及 簽名信息,所述第一數(shù)據(jù)與存儲在所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合使用并且不需要竄 改檢查,所述第二數(shù)據(jù)與存儲在所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合使用并且需要竄改檢 查,所述合并管理信息指示其中存儲所述第一數(shù)據(jù)的第一位置、其中存儲所述第二數(shù)據(jù)的 第二位置、以及所述第二數(shù)據(jù)的散列值,并且所述簽名信息指示所述合并管理信息的散列 值;第一判斷單元,其用于判斷所述第一數(shù)據(jù)和所述第二數(shù)據(jù)是否分別存儲在所述第一位 置和所述第二位置;第二判斷單元,其用于通過比較由所述簽名信息指示的所述散列值與根據(jù)所述合并管 理信息計算的散列值,判斷所述合并管理信息是否被竄改,并且如果所述散列值彼此匹配, 則判斷所述合并管理信息沒有被竄改;屬性改變單元,其用于將所述第一數(shù)據(jù)、所述第二數(shù)據(jù)以及所述合并管理信息的屬性 改變?yōu)橹蛔x;以及生成單元,其用于在(i)所述第一判斷單元判斷所述第一數(shù)據(jù)和所述第二數(shù)據(jù)分別存 儲在所述第一位置和所述第二位置,(ii)所述第二判斷單元判斷所述合并管理信息沒有被 竄改,以及(iii)所述屬性改變單元將所述第一數(shù)據(jù)、所述第二數(shù)據(jù)以及所述合并管理信 息的所述屬性改變?yōu)橹蛔x之后,當(dāng)所述選擇單元選擇了與所選擇的標(biāo)題不同的標(biāo)題時,通 過將存儲在所述本地存儲器中屬性改變?yōu)橹蛔x的所述第一數(shù)據(jù)和所述第二數(shù)據(jù)與存儲在 所述記錄介質(zhì)上的所述多條數(shù)據(jù)組合生成包信息,其中如果由所述合并管理信息指示的所述第二數(shù)據(jù)的所述散列值與根據(jù)所述包信息中的 所述第二數(shù)據(jù)計算的散列值匹配,則將所述重放裝置配置為使用所述包信息中的所述第二 數(shù)據(jù)執(zhí)行處理。
5.根據(jù)權(quán)利要求4所述的重放裝置,其中所述第一數(shù)據(jù)包含數(shù)字流,并且所述第二數(shù)據(jù)與所述數(shù)字流不同。
6.根據(jù)權(quán)利要求4所述的重放裝置,其中一旦從用戶接收標(biāo)題選擇請求,所述選擇單元就對所述標(biāo)題進(jìn)行選擇。
全文摘要
在本地存儲器(18)中,有多個文件,合并管理信息從所述多個文件中指定要與記錄在只讀記錄記錄介質(zhì)上的內(nèi)容結(jié)合使用的文件,以及簽名信息用于判斷所述合并管理信息的可靠性。虛擬文件系統(tǒng)單元(38)根據(jù)所述簽名信息判斷所述合并管理信息的可靠性。在所述合并信息被判斷為是可信的情況下,虛擬文件系統(tǒng)單元(38)生成包信息,所述包信息指示通過將所述合并管理信息所指定的文件加入到所述只讀記錄介質(zhì)的文件結(jié)構(gòu)中而獲得的新文件結(jié)構(gòu)。
文檔編號G11B20/00GK101814307SQ20101016377
公開日2010年8月25日 申請日期2005年7月19日 優(yōu)先權(quán)日2004年7月22日
發(fā)明者大戶英隆, 大蘆雅弘, 杰爾馬諾·萊克森林, 田中敬一 申請人:松下電器產(chǎn)業(yè)株式會社