亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

重放裝置和重放方法

文檔序號:6768985閱讀:145來源:國知局
專利名稱:重放裝置和重放方法
技術領域
本發(fā)明涉及“虛擬包”的重放技術。
背景技術
“虛擬包”是用于以下的技術(i)生成完整地指示在只讀記錄介質(例如BD-R0M) 上記錄的內容以及在可讀寫記錄介質(例如硬盤上)記錄的內容的信息,以及(ii)重放或 執(zhí)行記錄在這些記錄介質上的數(shù)字流和應用程序(以下簡稱為應用程序),就好像其被記 錄在一個虛擬的包中一樣。根據(jù)該技術,通過對記錄在可重寫硬盤上的數(shù)據(jù)進行更新,即使是在BD-R0M發(fā)行 之后,也可以將產(chǎn)品的內容作為整個虛擬包而改變。例如,即使是記錄有電影產(chǎn)品本身的 BD-R0M發(fā)行之后,該電影產(chǎn)品的提供商也能夠通過經(jīng)由網(wǎng)絡提供其他未發(fā)表電影產(chǎn)品的電 影宣傳片,向用戶做最近電影產(chǎn)品的廣告,不管什么時候發(fā)行該BD-R0M。在以下專利文件中公開了涉及虛擬包的現(xiàn)有技術。[專利文件1]國際公開 WO 2004/030356A1。

發(fā)明內容
本發(fā)明要解決的問題硬盤是可重寫的事實暗示可以竄改硬盤上所記錄的數(shù)據(jù),并且存在提供商和用戶 受到不利情況的可能性。例如,這種不利情況包括,在BD-R0M上記錄的數(shù)字流可能在違反 提供商意愿的狀態(tài)下被重放,從而可能降低產(chǎn)品的價值,并且BD-R0M上記錄的數(shù)字流可能 在執(zhí)行硬盤上記錄的非法應用程序的狀態(tài)下被重放,從而使得重放裝置遇到故障。本發(fā)明的目的在于提供一種重放裝置,其能夠防止在可重寫記錄介質上記錄的非 法數(shù)據(jù)被執(zhí)行,或者與只讀記錄介質上記錄的數(shù)據(jù)組合地被播放。解決問題的方法為了實現(xiàn)上述目的,本發(fā)明提供了一種重放裝置,其重放相互結合的應用程序和 數(shù)字流,所述重放裝置包括讀出單元,其用于讀出安置在所述重放裝置上的只讀記錄介質 上記錄的文件;存儲單元,其中存儲(i)多個文件,(ii)合并管理信息,其從所述多個文件 中指定要與在所述只讀記錄介質中記錄的內容組合使用的文件,以及(iii)簽名信息,其 用于判斷所述合并管理信息的可靠性;判斷單元,其用于根據(jù)所述簽名信息判斷所述合并 管理信息的可靠性;包管理單元,其用于(a)在所述合并管理信息被判斷為可靠的情況下, 生成包信息,所述包信息指示通過將所述合并管理信息所指定的文件加入到所述只讀記錄 介質的文件結構中而獲得的新文件結構,以及(b)在所述合并管理信息被判斷為不可靠的情況下,不生成指示所述新文件結構的包信息;重放單元,其用于根據(jù)由所述包管理單元所生成的包信息,重放記錄在所述只讀記錄介質上或者存儲在所述存儲單元中的數(shù)字流;以 及執(zhí)行單元,其用于根據(jù)由所述包管理單元所生成的包信息,執(zhí)行記錄在所述只讀記錄介 質上或者存儲在所述存儲單元中的應用程序。本發(fā)明的效果采用以上布置,根據(jù)本發(fā)明的重放裝置根據(jù)簽名信息驗證合并管理信息的可靠 性,并且在所述合并管理信息不能被確認為可靠時,所述重放裝置禁止從所述存儲單元中 存儲的文件生成包信息。采用該布置,可以防止在只讀記錄介質中記錄的數(shù)據(jù)被與非法數(shù)據(jù)組合地執(zhí)行或 者重放。


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