重放裝置和重放方法
2023-06-23 08:03:31 3
專利名稱:重放裝置和重放方法
技術領域:
本發明涉及「虛擬包」的重放技術。
背景技術:
「虛擬包」是用於以下的技術(i)生成完整地指示在只讀記錄介質(例如BD-ROM)上記錄的內容以及在可讀寫記錄介質(例如硬碟上)記錄的內容的信息,以及(ii)重放或執行記錄在這些記錄介質上的數字流和應用程式(以下簡稱為應用程式),就好像其被記錄在一個虛擬的包中一樣。
根據該技術,通過對記錄在可重寫硬碟上的數據進行更新,即使是在BD-ROM發行之後,也可以將產品的內容作為整個虛擬包而改變。例如,即使是記錄有電影產品本身的BD-ROM發行之後,該電影產品的提供商也能夠通過經由網絡提供其他未發表電影產品的電影宣傳片,向用戶做最近電影產品的廣告,不管什麼時候發行該BD-ROM。
在以下專利文件中公開了涉及虛擬包的現有技術。
國際公開WO 2004/030356A1。
發明內容
本發明要解決的問題硬碟是可重寫的事實暗示可以竄改硬碟上所記錄的數據,並且存在提供商和用戶受到不利情況的可能性。例如,這種不利情況包括,在BD-ROM上記錄的數字流可能在違反提供商意願的狀態下被重放,從而可能降低產品的價值,並且BD-ROM上記錄的數字流可能在執行硬碟上記錄的非法應用程式的狀態下被重放,從而使得重放裝置遇到故障。
本發明的目的在於提供一種重放裝置,其能夠防止在可重寫記錄介質上記錄的非法數據被執行,或者與只讀記錄介質上記錄的數據組合地被播放。
解決問題的方法為了實現上述目的,本發明提供了一種重放裝置,其重放相互結合的應用程式和數字流,所述重放裝置包括讀出單元,其用於讀出安置在所述重放裝置上的只讀記錄介質上記錄的文件;存儲單元,其中存儲(i)多個文件,(ii)合併管理信息,其從所述多個文件中指定要與在所述只讀記錄介質中記錄的內容組合使用的文件,以及(iii)籤名信息,其用於判斷所述合併管理信息的可靠性;判斷單元,其用於根據所述籤名信息判斷所述合併管理信息的可靠性;包管理單元,其用於(a)在所述合併管理信息被判斷為可靠的情況下,生成包信息,所述包信息指示通過將所述合併管理信息所指定的文件加入到所述只讀記錄介質的文件結構中而獲得的新文件結構,以及(b)在所述合併管理信息被判斷為不可靠的情況下,不生成指示所述新文件結構的包信息;重放單元,其用於根據由所述包管理單元所生成的包信息,重放記錄在所述只讀記錄介質上或者存儲在所述存儲單元中的數字流;以及執行單元,其用於根據由所述包管理單元所生成的包信息,執行記錄在所述只讀記錄介質上或者存儲在所述存儲單元中的應用程式。
本發明的效果採用以上布置,根據本發明的重放裝置根據籤名信息驗證合併管理信息的可靠性,並且在所述合併管理信息不能被確認為可靠時,所述重放裝置禁止從所述存儲單元中存儲的文件生成包信息。
採用該布置,可以防止在只讀記錄介質中記錄的數據被與非法數據組合地執行或者重放。
圖1示出了根據本發明的重放裝置的使用形式;
圖2示出在BD-ROM上的文件目錄結構;圖3示意性地示出如何構建AVClip;圖4示出PL信息的結構;圖5示出在AVClip時間軸與PL時間軸之間的關係;圖6示出了採用4個Clip_Information_file_name的成批指定(batch specification);圖7示出了PLmark信息的內部結構;圖8示出了使用PLmark的章節定義;圖9示出了SubPath信息的內部結構;圖10示出了在SubPlayItem時間軸上的同步指定和重放間隔定義;圖11A示出了Java檔案(archive)文件中包含的程序和數據;圖11B示出類文件的內部結構;圖12示出了BD-J對象的內部結構;圖13示出了INDEX.BDMV的內部結構;圖14示出了本地存儲器的目錄結構;圖15示出了由本地存儲器中的PL信息所定義的PlayList重放時間軸類型;圖16A示出了在BD-ROM上和在本地存儲器中存儲的應用程式和AVClip;圖16B示出了由在BD-ROM上和在本地存儲器中存儲的應用程式和AVClip所構成的標題;圖17示出了合併管理信息文件的內部結構;圖18示出了根據本發明的重放裝置的內部結構;圖19以層的形式示出了在指令ROM 21中存儲的軟體和硬體所構成的配置;圖20示出了Java虛擬機30的內部結構;圖21示出了重放狀態的變換;圖22示出了要由虛擬文件系統單元38執行的虛擬包信息的示例性結構;
圖23A示出了整個光碟的時間軸;圖23B示出了整個光碟的時間軸的結構;圖24示出如何由於標題變化而更新虛擬包信息;圖25示意性地示出Java應用程式是如何請求伺服器傳送構成虛擬包的文件的;圖26示意性地示出Java應用程式是如何將從伺服器傳送來的文件存儲到本地存儲器中的;圖27示意性地示出Java應用程式是如何請求虛擬文件系統更新虛擬包信息的;圖28示意性地示出是如何對虛擬包信息進行更新的;圖29是示出模塊管理器33執行的標題重放控制的處理的流程圖;圖30是示出重放控制引擎32所執行的PlayList重放處理的處理過程的流程圖;圖31是示出要由Java應用程式執行的、下載構成虛擬包的文件的過程的流程圖;圖32是示出虛擬文件系統單元38所執行的準備處理的流程圖;圖33是示出由虛擬文件系統單元38所執行的更新處理的流程圖;圖34是流程圖,示出了當由於標題調用而將當前標題的重放臨時暫停時由重放控制引擎所執行的處理過程,以及當原始播放的標題的重放繼續時由重放控制引擎所執行的處理過程;圖35是虛擬包管理表的示例;圖36是示出根據第三實施例,用於構建虛擬包的處理過程的流程圖;圖37是示出控制對文件的寫入訪問的API的處理過程的流程圖;圖38示出了在構成虛擬包的文件之一具有錯誤的情況下,如何生成錯誤被校正的校正文件;圖39是示出根據第四實施例,用於構建虛擬包的處理過程的流程圖;
圖40是流程圖,示出了在已經構建了虛擬包之後在對本地存儲器中的文件進行寫入訪問的情況下,提供文件I/O功能的API的處理;圖41示出了根據第五實施例的重放裝置的內部結構;圖42示出了根據第五實施例的虛擬包管理表的示例;圖43是示出將下載的文件記錄到本地存儲器中的處理過程的流程圖;圖44是示出根據第五實施例,用於構建虛擬包的處理過程的流程圖;圖45示出了根據第六實施例的虛擬包構建的示例;圖46是示出根據第六實施例,用於構建虛擬包的處理過程的流程圖;圖47是示出將文件移動到ACTIVE目錄中的處理過程的流程圖;圖48是示出根據第六實施例,控制對文件的寫入訪問的API的處理過程的流程圖;圖49示出根據第七實施例的虛擬包的構建的示例;圖50示意性地示出了是如何採用在SHARED目錄下的ACTIVE目錄和在disc#1目錄下的ACTIVE目錄構建虛擬包的;圖51是示出了根據第七實施例,用於構建虛擬包的處理過程的流程圖;圖52描述了構建中間文件結構的過程;圖53是詳細示出圖51中步驟S184中的處理的流程圖;圖54是示出虛擬文件系統單元38如何將本地存儲器中的文件提供給其他模塊的流程圖;圖55示意性地示出了在根據第九實施例的虛擬包構建過程中的顯示;圖56示出了在根據第九實施例的虛擬包構建處理中的失敗顯示;圖57示意性地示出了在根據第九實施例的虛擬包構建處理中的成功顯示;
圖58是示出用於對與虛擬包的構建有關的顯示進行更新的處理過程的流程圖;以及圖59示出了根據第九實施例的在本地存儲器中的內容列表的顯示。
具體實施例方式
第一實施例以下描述與本發明有關的重放裝置的實施例。首先,描述與本發明有關的重放裝置的實現形式中的使用形式。圖1示出了與本發明有關的重放裝置的使用形式。在圖1中,與本發明有關的重放裝置是重放裝置200。重放裝置200用於在包含重放裝置200、遙控器300和電視機400的家庭劇場系統中提供電影作品。
在此完成了對與本發明有關的重放裝置的使用形式的描述。接下來要描述的用於由與本發明有關的重放裝置進行的重放的記錄介質。與本發明有關的重放裝置所播放的記錄介質是BD-ROM。圖2示出了BD-ROM的內部結構。
BD-ROM在圖2的第四層級(tier)示出,而BD-ROM上的軌道(trace)在第三層級示出。圖2所示的軌道源自從已經被畫出各面的BD-ROM的內圓周螺旋至外圓周的軌道。該軌道包含導入區、卷區以及導出區。圖2中的卷區具有包括物理層、文件系統層以及應用層的分層結構。採用目錄結構表示的BD-ROM的應用格式給出了圖2中的第一層級。BDMV目錄放置在BD-ROM中的第一層級的ROOT目錄下。
在BDMV目錄下存在INDEX.BDMV文件和五個子目錄,分別為PLAYLIST目錄、CLIPINF目錄、STREAM目錄、BDJA目錄和BOBJ目錄。
STREAM目錄存儲形成主要數字流的文件,將擴展名「M2TS」指定給該文件(00001.M2TS)在PLAYLIST目錄中存在擴展名指定為「MPLS」的文件(00001.MPLS)。
在CLIPINF目錄中存在擴展名為「CLPI」的文件(00001.CLPI)。
在BDJA目錄中存在具有擴展名為「JAR」的文件(00001.JAR)。
在BOBJ目錄中存在具有擴展名為「BOBJ」的文件(00001.BOBJ)。
接下來描述這些文件AVClip
首先描述具有擴展名「M2TS」的文件。圖3示意性地示出了具有擴展名「M2TS」的文件是如何構建的。每個具有擴展名「M2TS」的文件(00001.M2TS、00002.M2TS、00003.M2TS、...)存儲AVClip。通過多路復用TS包來構成AVClip(中間層級),TS包是通過將包含多個視頻幀(圖像pj1、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」包括播放項目信息「PlayItem」,用箭頭mp1指示。播放項目是通過在一個或多個AVClip時間軸上指定In_time和Out_time所定義的重放間隔。由多個播放間隔組成的播放列表(PL)是通過放置多條播放項目信息來定義的。圖4中的箭頭mp2示出了播放項目信息內部結構的特寫(close up)。如圖4所示,播放項目信息包括In_time、Out_time和示出相應AVClip的Clip_Information_file_name。圖5示出了AVClip與PL之間的關係。第一層級示出了AVClip的時間軸,而第二層級示出了PL的時間軸。PL信息包括3條播放項目信息(PlayItem#1-#3),PlayItem#1、#2和#3的In_time和Out_time定義三個播放間隔。當三個重放間隔排列成線時,對AVClip定義了的不同的時間軸。這就是第二層級的PL時間軸。因此通過在播放項目信息中的定義,能夠對AVClip定義不同的時間軸。
通常,每次指定一個AVClip,但是也可以進行多個AVClip的成批指定。使用播放項目信息中的Clip_Information_file_name執行AVClip的成批指定。圖6示出了使用4個Clip_Information_file_name的AVClip成批指定。圖中的第一層級到第四層級示出了4個AVClip時間軸(AVClip#1-#4的時間軸),第五層級示出了PL時間軸。4個時間軸採用在播放項目信息中包含的所述4個Clip_Information_file_name來指定。這允許由In_time和Out_time定義4個可選擇播放的重放間隔。因此,在PL時間軸上定義由多條可轉換角度的視頻(所謂的多角度間隔)組成的間隔。
PLmark信息「PLmark」指定在PL時間軸上的任意間隔為章節。圖7示出了PLmark結構的內部結構,其包括ref_to_PlayItem_Id和Mark_time_stamp,如圖7中的箭頭pm1所指示。圖8示出了使用PLmark的章節定義。圖8中的第一層級示出了AVClip時間軸,而第二層級示出了PL時間軸。圖8中的箭頭pk1和pk2示出了播放項目(ref_to_PlayItem_Id)和Plmark中的時間點(Mark_time_stamp)的指定。作為這些指定的結果,在PL時間軸上定義了3個章節(章節#1-#3)。在此完成了PLmark的描述。接下來描述子路徑信息。
子路徑信息「SubPath」通過指定子剪輯時間軸上的In_time和Out_time來定義一個或多個重放間隔,並且其具有圖9所示的內部結構。子路徑信息包括箭頭sh1所指示的子播放項目信息「SubPlayItem」。在箭頭sh2標記的特寫中,子播放項目信息包括Clip_Information_file_name、In_time、Out_time、sync_PlayItem_Id和sync_Start_PTS_of_PlayItem。採用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.Out_time分別示出了重放間隔的開始和結束。因此顯然,也在子剪輯時間軸上定義重放間隔。由箭頭Sn1標記的sync_PlayItem_Id示出了播放項目的同步指定,由箭頭Sn2標記的sync_Start_PTs_of_PlayItem示出了在PL時間軸上的播放項目中的時間點的指定。
在BD_ROM中的PL信息的特徵在於,其使得可以定義使AVClip能夠被切換的多角度間隔和使AVClip和子剪輯能夠被同步的同步間隔。剪輯信息和PL信息被分類為「靜態腳本(static scenarios)」。
以下描述「動態腳本」。在此,「動態」指由於在重放裝置200中的用戶鍵事件和和狀態改變等等造成的重放控制內容的改變。採用BD_ROM,能夠採用與Java應用程式相同的描述來描述重放控制。即,採用BD_ROM,Java應用程式作為動態腳本。
Java應用程式
以下描述Java應用程式。Java應用程式包括加載在虛擬機的堆區域(也稱為工作存儲器)中的一個或多個xlet程序。應用程式由工作存儲器中加載的xlet程序以及數據構成。在此完成了對Java應用程式結構的描述。
Java應用程式的實體是在圖2中的BDMV目錄下的BDJA目錄中存儲的Java檔案文件(00001.jar,00002.jar)。以下參考圖11描述Java檔案文件。
Java檔案文件
Java檔案文件(圖9中的00001.JAR)是一個或多個類文件和數據文件等的集合。圖11A示出了在檔案文件中收集的程序和數據。圖11A中的數據是由Java存檔器(archiver)收集並排列在幀中所示的目錄結構中的多個文件。該目錄結構包括Root目錄、Java目錄和image目錄,common.pkg文件放置在Root目錄中,類文件(aaa.class,bbb.class)放置在Java目錄中,menu.jpg文件放置在image目錄中。Java檔案文件是Java存檔器將這些文件收集在一起的結果。當將類文件和數據從BD ROM讀入到高速緩衝器中時,展開類文件和數據,並在高速緩衝器中將其看作存在於目錄中的多個文件。在Java檔案文件的文件名中的5位(five-digit)數值「zzzzz」示出了Java檔案文件的ID,BD-J對象指使用這種值的Java檔案文件。通過在已經將Java檔案文件讀入高速緩衝器時查詢在文件名中的該數值,就可以提取構成任意Java應用程式的數據和程序。
圖11A中的類文件與上述xlet程序相對應。採用由Java操作環境所支持的操作模式(BD-J模式)的重放過程規定使用與這些類文件的實例相對應的xlet程序。xlet程序是能夠採用Java多媒體框架(JMF)接口的Java程序,並且其根據JMF等等、基於鍵事件來執行播放列表重放處理。
此外,xlet程序還能夠執行訪問WWW站點和下載內容的過程。這實現了通過將所下載內容與播放列表相混合創建的原始作品的重放。
接下來描述xlet程序的類文件。圖11B示出了類文件的內部結構。如圖11B所示,該類文件與普通類文件類似,具有常數池、接口、方法1、2、3、....n。在重放裝置200中,在類文件中的方法包括由預先記載的鍵事件所觸發的那些方法(時間監聽器)和用於調用函數API(應用程式接口)的那些方法。通過採用分配給給定方法的局部變量和在調用該方法時出現的自變量,來描述在這些方法中的計算過程等等。在此完成了對Java檔案文件的描述。
接下來描述具有擴展名「BOBJ」的文件。該文件存儲BD-J對象。BD-J對象是通過將在播放列表中定義的AVClip序列與應用程式相關聯來定義標題的信息。圖12示出了BD-J對象的內部結構。BD-J對象示出了「應用程式管理表」和「播放列表信息參考值」。應用程式管理表通過枚舉應用程式標識符(應用程式ID)和構成該應用程式的檔案文件的ID,示出了其生命周期為標題的每個應用程式。換而言之,一個應用程式包括一個或多個Java檔案文件。「播放列表信息參考值」示出了當標題開始時同時被重放的播放列表信息。
在此完成了對具有擴展名「BOBJ」的文件的描述。
應該注意的是,在以下列出的國際公開中,公開了對BD-J對象和應用程式管理表的描述,參考該公開以進行進一步詳細描述國際公開WO 2005/045840接下來描述INDEX.BDMV文件。
INDEX.BDMV是整個BD-ROM的管理信息,包括諸如組織ID和光碟ID之類的信息,其中組織ID是標識電影產品提供商的標識符,光碟ID是為由提供商所提供的每個BD-ROM指定的標識符。當將光碟插入重放裝置時,首先讀出INDEX.BDMV,這樣重放裝置就一一對應地識別出光碟。另外,INDEX.BDMV包括一個表格,其相互對應地示出了在BD-ROM中的多個可播放標題和規定各標題的BD-J對象。以下描述可以記錄在BD-ROM中的標題類型,其包括FirstPlayTitle、Top_menuTitle和Title#1、#2和#3。
在進行任何其他事情之前,在加載BD-ROM時,FirstPlayTitle承擔播放BD-ROM的動態商標。因此,在加載BD-ROM時,FirstPlayTitle實現播放象徵電影作品的製片商和/或者發行者的動態商標。
Top_menuTitle包括AVClip和用於播放在BD-ROM中的菜單分層的極頂部所放置的菜單的應用程式。
Title#1、#2和#3是與普通電影作品相對應的標題。因此,INDEX.BDMV是示出諸如FirstPlayTitle、Top_menuTitle、Title#1到#3之類的標題與單個BD-J對象的對應關係的文件。
圖13示出了INDEX.BDMV的內部結構。如圖所示,INDEX.BDMV包括多條標題信息,例如「FirstPlayTitle信息」、「Top_menuTitle信息」、「Title#1信息」、「Title#2信息」和「Title#3信息」。每條標題信息示出在標題號與規定標題的BD-J對象之間的對應關係。採用這樣一條標題信息,就可以指定定義標題的BD-J對象,採用這種BD-J對象,就可以使得播放列表信息與應用程式相互結合地工作。因此完成對INDEX.BDMV的描述。
在以下列出的國際公開中,公開了對INDEX.BDMV的詳細描述,參考該公開以進行進一步詳細描述國際公開WO 2004/025651BD-ROM不是用於本發明的重放裝置的唯一記錄介質。磁記錄裝置(本地存儲器),諸如重放裝置中內置的硬碟,也可用於本發明的重放裝置。以下描述了在這種本地存儲器上記錄的數據。
圖14示出了在本地存儲器中的目錄結構。
在這種目錄結構中,子目錄「organization#1」位於ROOT目錄下,並且在該目錄下是子目錄「disc#1」和「disc#1」。將「organization#1」目錄分配給特定的電影作品提供商。將「disc#1」和「disc#1」目錄分別分配給由該提供商所提供的BD-ROM。在每個BD-ROM的INDEX.BDMV中指示的組織ID和光碟ID的值用於目錄名。
在與特定提供商相對應的目錄中提供與BD-ROM相對應的目錄,允許分別存儲與單個BD-ROM相關的下載數據。在這些子目錄下存儲播放列表信息、剪輯信息和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和#4指定AVClip#2、#3和#4作為重放間隔的情況下,播放列表信息能夠將在BD-ROM上的AVClip和在本地存儲器18中的AVClip兩者規定為單一流序列。
如上所述,可以將在BD-ROM上的AVClip和在本地存儲器18中的AVClip兩者規定為單一流序列,並且通過將該流序列與在BD-ROM上或者本地存儲器中的應用程式組合,可以從這些AVClip和從在BD-ROM上或者在本地存儲器中記錄的應用程式構建單一標題。在如圖16A所示,在AVClip#1被記錄在BD-ROM上並且AVClip#2到#4和應用程式被記錄在本地存儲器中的情況下,可以將這些AVClip和應用程式看作單一標題,如圖16B所示。
接下來描述合併管理信息文件。該合併管理信息文件總體示出了構成虛擬包的所有這些文件,並且其在本地存儲器中的disc#1和disc#2目錄中。
圖17示出了合併管理信息文件的示例性內部結構。合併管理信息文件包括與在本地存儲器中的構成虛擬包的文件相關的存儲位置信息。對於每個文件而言,該存儲位置信息包括指示在本地存儲器18中的文件的存儲位置的文件路徑,和指示從在該文件中的數據確定的並使用單向函數計算的文件的散列值的「散列值」。
接下來描述籤名信息文件。籤名信息文件示出了在合併管理信息文件上的提供商的電子籤名。通常採用的電子籤名是通過計算需要竄改驗證(tamper-proof)的信息的散列值並使用某種密鑰對該散列值進行加密來獲得的。在根據本實施例的籤名信息文件中,使用與重放裝置持有的合併證書中的公鑰相對應的密鑰,對合併管理信息文件的散列值進行加密。
應該注意的是,合併證書是用於驗證合併管理信息文件的證書,並且其包括提供商所發布的公鑰。預先將提供商所提供的合併證書併入重放裝置中。作為示例,對於合併證書的文件格式而言,可以使用X.509。X.509的詳細說明寫入在國際電報電話諮詢委員會公布的CCITT Recommendation X.509(1988),「The Directory-AuthenticationFramework」中。
應該注意的是,儘管以上描述示出預先將合併證書併入重放裝置中,但是將合併證書記錄在BD-ROM上也是可接受的。可替換地,從通過網際網路提供合併證書的伺服器裝置中下載並獲得合併證書也是可接受的。
在此完成了對記錄介質的描述。以下描述與本發明相關的重放裝置的內部結構。
重放裝置
圖18示出了本發明的重放裝置的內部結構。本發明的重放裝置可以根據圖中所示的內部結構進行工業製造。本發明的重放裝置主要包括兩個部分,例如系統LSI和驅動裝置,並且其可以通過將這些部分安放在重放裝置的箱體中和安放在基板上進行工業製造。系統LSI是集成電路,在該集成電路中集成了用於實現重放裝置功能的各種處理單元。採用這種方式製造的重放裝置包括BD-ROM驅動器1、讀緩衝器2、多路分解器3、視頻解碼器4、視頻平面5、P圖形解碼器6、顯示圖形平面(presentation Graphic plane)7、組合單元8、字體生成器9、I圖形解碼器10、開關11、交互圖形平面12、合成單元13、CLUT單元14、CLUT單元15、音頻解碼器16、網絡設備17、指令ROM 21、用戶事件處理單元22、PSR組23、CPU 24、腳本存儲器25、本地存儲器26和開關27。
首先描述與記錄在BD-ROM上的AVClip的重放有關的組成組件(BD-ROM驅動器1至音頻解碼器16)。
BD-ROM驅動器1加載/退出,以及訪問BD-ROM。
讀緩衝器2是先進先出(FIFO)存儲器,在該存儲器中,根據先進先出存儲從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用於存儲未壓縮圖像。平面是在重放裝置中的存儲區,用於存儲一個屏幕大小的像素數據。視頻平面5具有1920×1080解析度,所存儲的圖像數據由採用16比特YUV表示的像素數據構成。在視頻平面5中,在視頻流中的重放視頻圖像能夠對於每幀進行縮放。縮放包括將每幀的重放視頻圖像改變為完整視頻平面5的1/4(四分之一)或者1/1(全比例)。縮放是根據來自CPU 24的指令採用BD-J模式執行的,實現了屏幕的產生,從而將視頻流的重放圖像縮小到屏幕的角落或者投影到整個屏幕。
P圖形解碼器6對從BD-ROM中讀出的顯示圖形流進行解碼,並將未壓縮圖形寫入顯示圖形平面7。作為對圖形流解碼的結果,字幕出現在屏幕上。
顯示圖形平面7是具有用於一屏大小數據的空間的存儲器,其能夠存儲一屏大小的未壓縮圖形。該平面具有1920×1080的解析度,在顯示圖形平面7中的未壓縮圖形的像素由8比特索引顏色來表示。在通過採用CLUT(顏色查詢表)轉換索引顏色,來將顯示圖形平面7中存儲的的未壓縮圖形用於顯示。
合成單元8將在視頻平面5中存儲的未圖像數據(i)與顯示圖形平面7中所存儲的進行合成。
字體生成器9使用字符字體擴展在位圖中的textST流中包含的文本代碼,並將所擴展的代碼寫入顯示圖形平面7。
I圖形解碼器10採用DVD-like模式對從BD-ROM或者本地存儲器18中讀出的IG流進行解碼,並且將未壓縮圖形寫入交互圖形平面12。
開關11選擇性地將由字體生成器9生成的字體序列和由P圖形解碼器6的解碼得到的圖形中的一個寫入到顯示圖形平面7。
交互圖形平面12被寫有由I圖形解碼器10解碼得到的未壓縮圖形。將由應用程式畫出的字符和圖形採用αRGB全彩色並採用BD-J模式寫入到交互圖形平面12中。
合成單元13將在交互圖形平面12中所存儲的內容與從合成單元8輸出的合成圖形進行合成(即,未壓縮圖像數據與在顯示圖形平面7中所存儲的內容的合成)。該合成使得由應用程式寫入到I圖形解碼器10中的字符和圖形覆蓋到未壓縮圖像數據上並進行顯示。
CLUT單元14將在視頻平面5中存儲的未壓縮圖形中的索引顏色轉換為Y、Cr、Cb值。
當採用DVD-like模式工作時,CLUT單元15將在交互圖形平面12中存儲的未壓縮圖形中的索引顏色轉換為Y、Cr、Cb值。當採用BD-J模式工作時,CLUT單元15將αRGB全彩色轉換為Y、Cr、Cb。
音頻解碼器16對從多路分解器3輸出的PES包進行解碼,並輸出未壓縮音頻數據。
在此完成了對與AVClip重放有關的構成組件的描述。以下描述與BD-J模式工作有關的構成組件(網絡設備17至De-MUX 20)網絡設備17實現了在重放裝置中的通信功能。在應用程式採用BD-J模式指定URL的情況下,網絡設備17與該URL指示的站點建立TCP連接、FTP連接等等。作為所述連接被建立的結果,使得Java應用程式能夠從該站點進行下載。
本地存儲器18是硬碟,用於存儲元數據以及從通信和BD-ROM之外的記錄介質提供的內容,例如通過由網絡設備17建立的連接從站點下載的內容。元數據是用於綁定和管理在本地存儲器18中的所下載內容的信息。通過訪問本地存儲器18,採用BD-J模式的應用程式能夠使用所下載內容執行各種處理。
讀緩衝器19是FIFO存儲器,其在子剪輯包含在BD-ROM上或者在本地存儲器18中所存儲的內容中的情況下,基於先進先出存儲組成子剪輯的TS包。
多路分解器(De-MUX)20從讀緩衝器19中取出TS包,並將所讀出的TS包轉換為PES包。然後,在通過該轉換獲得的PES包中,將具有所期望PID的PES包輸出到字體生成器9、P圖形解碼器6和音頻解碼器16。
上述組件,即網絡設備17到De-MUX 20使得Java應用程式通過網絡下載的內容能夠採用與在BD-ROM中所記錄的內容相同的方式進行重放。以下描述了在重放裝置中用於實現集體控制的構成組件(指令ROM 21一開關27)。
指令ROM 21存儲規定與重放裝置相關的控制的軟體。
用戶事件處理單元22響應於遙控器或者重放裝置的前面板的鍵操作,將用於執行這些操作的用戶事件輸出到CPU 24。
PSR組23是重放裝置中內置的電阻器,其包括64個獨立的播放器狀態寄存器(PSR)和4096個獨立的通用寄存器(GPR)。PSR4到PSR8是表示當前重放時間點的PRS。
通過將PSR4設定為1-100的值,來指示當前重放點的標題。當將PSR4設定為「0」時,意味著當前重放點為頂部菜單。
通過將PSR5設定為1-999的值,來指示當前重放點的章節號。當PSR5設定為「0xFFFF」時,意味著在重放裝置中的章節號為空。
通過將PSR6設定為0-999的值,來指示當前重放點所屬的PL(當前PL)號。
通過將PSR7設定為0-255的值,來指示當前重放點所屬的播放項目(當前播放項目)號。
通過將PSR8設定為0-0xFFFFFFFF的值,來指示使用45KHz時間精度的當前重放點(當前顯示時間或者「PTM」)。PSR4到PSR8使得能夠在整個BD-ROM的時間軸上指定重放的當前時間點。
CPU 24運行在指令ROM 21中存儲的軟體,以執行與整個重放裝置相關的控制。這些控制根據從用戶事件處理單元22輸出的用戶事件和在PSR組23中的PSR設定值而動態改變。
腳本存儲器25用於存儲當前PL信息和當前剪輯信息。當前PL信息是當前用於處理的BD-ROM中所記錄的該條PL信息。當前剪輯信息是當前用於處理的BD-ROM中所記錄的該條剪輯信息。
本地存儲器26是高速緩存器,用於在從BD-ROM的讀出速度慢時,暫時存儲在BD-ROM上所記錄的內容。本地存儲器26的提供允許採用BD-J模式的應用程式高效運行。
開關27選擇性地將從BD-ROM和本地存儲器18讀出的數據傳遞到讀緩衝器2、讀緩衝器19、腳本存儲器25和本地存儲器26中的一個。
因此完成對本發明的重放裝置的硬體配置的描述。以下將描述本實施例的重放裝置中的軟體結構。
圖19採用層結構形式示出了在指令ROM 21中存儲的軟體和硬體構成的配置。如圖所示,重放裝置的層結構包括以下(a)第一層,用於BD播放器設備(b)第二層,用於BD播放器模型以及(c)第三層,用於應用程式運行時間環境在這些層中,圖18所示的重放裝置的硬體配置屬於第一層。圖18所示的硬體結構中,圖「BD播放器設備」中所示的第一層包括「解碼器」,其包括視頻解碼器4、P圖形解碼器6、I圖形解碼器10、音頻解碼器16;「平面」,其包括視頻平面5、顯示圖形平面7、交互圖形平面12;BD-ROM及其文件系統;以及本地存儲器18和及其文件系統。
第二層「BD播放器模型」包括以下兩個層(b1)和(b2)(b2)用於重放控制引擎32的層;以及(b1)用於虛擬文件系統單元38和顯示引擎31的層。
由第二層提供函數API,用於位於其上的層。
在這些層中,圖18所示的PSR組23和腳本存儲器25在重放控制引擎32中。
第三層「應用程式運行時間環境」包括以下棧層(c2)和(c1)
(c2)存在模塊管理器33的層(c1)存在DVD-like模塊29a和Java平臺29b的層。
以下描述在該軟體結構中的構成組件。
DVD-like模塊29a和Java平臺29b
DVD-like模塊29a對導航命令進行解碼,並根據解碼結果執行對於重放控制引擎32的函數調用。
在以下國際申請中公開,在以下列出的國際公開中,公開了與DVD-like模塊有關的現有技術和由該DVD-like模塊所執行的Movie對象,參考該公開以進行進一步詳細描述國際公開WO 2004/074976Java平臺29b是所謂的Java平臺,具有將以下內容按層排列的結構(d1-1)Java虛擬機30(d1-2)中間設備,用於使得Java虛擬機能夠工作Java虛擬機30
Java虛擬機30加載將應用程式構建在工作存儲器中的xlet程序,對該xlet程序進行解碼,並根據解碼結果對位於其下的層進行控制。對位於其下的層進行控制,是通過向中間設備發布方法以便將該方法替換為BD重放裝置所對應的函數調用,並且在該替換之後將該函數調用發布到重放控制引擎32來實現的。
Java虛擬機30的內部結構
以下描述Java虛擬機30的內部結構。圖20示出了Java虛擬機30的內部結構。如圖所示,Java虛擬機30包括CPU 24、用戶類加載器52、方法區53、工作存儲器54、線程55a、55b、...55n以及Java棧56a、56b、...56n。
用戶類加載器52從本地存儲器26等等中的BDJA目錄中的Java檔案文件中讀出類文件,並將所讀出的類文件存儲在方法區53中。當應用程式管理器36指定文件路徑並命令用戶類加載器52執行讀出時,用戶類加載器52讀出該類文件。在該文件路徑指示本地存儲器26的情況下,用戶類加載器52將從本地存儲器26中的構成應用程式的Java檔案文件中的類文件讀出到工作存儲器54中。在該文件路徑指示在文件系統中的目錄的情況下,用戶類加載器52將從BD-ROM或者本地存儲器18中的構成應用程式的Java檔案文件中的類文件讀出到工作存儲器54中。
方法區53中存儲由用戶類加載器52從本地存儲器26中讀出的類文件。
工作存儲器54是所謂的堆區域,其中存儲各種類文件的實例。工作存儲器54中存儲與稱為常駐應用程式的常駐類型應用程式和讀入到方法區53中的類文件相對應的實例。這些實例中的每一個都是構成應用程式的xlet程序。當這樣的xlet程序位於工作存儲器54中時,應用程式變為可執行。
線程55a、55b、...55n是執行的邏輯對象,以執行在工作存儲器54中存儲的方法。線程55a、55b、...55n使用局部變量或者操作數棧中存儲的自變量作為操作數執行計算,並將計算結果存儲在局部變量或者操作數棧中。圖中的箭頭ky1、ky2和kyn示意性示出從工作存儲器54向線程55a、55b、...55n提供的方法。儘管執行的物理對象僅僅是CPU,但是存在以下可能性,即在Java虛擬機30中存在多達64個作為執行的邏輯對象的線程。在64或者小於其的範圍中,可以新生成線程和刪除已有線程。當Java虛擬機30工作時,工作中的線程數量可以增加或降低。由於適當時線程數量可以增加,因此可以採用多個線程並行地執行一個實例,從而以較高速度執行該實例。
Java棧56a、56b、...56n和線程55a、55b、...55n按照一對一成比例存在。Java棧56a、56b、...56n中的每一個在自身中具有程序計數器(圖中稱為「PC」)和一個或多個幀。「程序計數器」示出了當前正在執行實例的哪個部分。「幀」是分配給對於方法的一個調用的棧類型區,並且其包括其中存儲一個調用中的自變量的「操作數棧」,和由所調用方法使用的「局部變量棧」(在圖中稱為「局部變量」)。在每次進行調用時,將一幀棧入到Java棧56a、56b、...56n上;類似地,當方法進行自身遞歸調用時,棧入一幀。
因此完成了對Java虛擬機的內部結構的描述。採用這種結構的Java虛擬機用作由事件驅動的執行對象(即事件驅動的執行對象)。因此完成對Java虛擬機的描述顯示引擎31
顯示引擎31執行AV重放功能。重放裝置的AV重放功能是源自DVD播放器和/或者CD播放器的傳統功能,例如開始重放(播放)、停止重放(停止)、暫停重放(暫停開啟),取消重放暫停(暫停關閉)、取消靜音功能(靜音關閉)、以指定速度向前(向前播放(速度)),以指定速度回倒(向後播放(速度))、改變音頻(音頻改變),改變子圖像(字幕改變)、以及改變角度(角度變化)。為了實現AV重放功能,顯示引擎31控制視頻解碼器4、P圖形解碼器6、I圖形解碼器10以及音頻解碼器16,以便對已經輸入到讀緩衝器2的並且與期望時間相對應的AVClip的部分進行解碼。對於這種期望時間,可以通過對由PSR8指示的部分進行解碼,來重放與任意時間相對應的AVClip的一部分。
重放控制引擎32
重放控制引擎32(PCE 32)執行各種功能,例如(i)對播放列表的重放控制功能,和(ii)獲得/設定PSR組23的狀態的功能。PL的重放控制功能使在由顯示引擎31所執行的AV重放功能中,開始和停止根據當前PL信息和剪輯信息所執行的重放。根據來自DVD-like模塊29a-Java平臺29b的函數調用來執行這些功能(i)和(ii)。
以下描述由重放控制引擎32執行的處理與由Java虛擬機執行的處理之間的同步。當調用函數時,重放控制引擎32根據PL信息執行處理過程。在要重放的AVClip具有15分鐘或者30分鐘的重放時間段時,上述處理在該持續時間內持續。問題是,在Java虛擬機30返回成功響應的時刻與重放控制引擎32實際完成處理的時刻之間存在間隙。由於Java虛擬機30是時間驅動的處理的對象,因此其在調用之後立即返回一個指示重放是成功還是失敗的響應;然而,重放控制引擎32在15或30分鐘之後完成AVClip和播放項目的重放。從而,如果將成功響應返回到應用程式的時刻用作參考點,則不可能檢測15或30分鐘之後所發生的處理的結束。在PL重放過程中執行快速向前或倒帶的情況下,這種15或30分鐘的重放時間段向前或向後移動,並且檢測處理的結束變得更加困難。為了解決該問題,當播放項目的重放完成時,或者當AVClip的重放完成時,重放控制引擎32輸出事件到應用程式,該事件指示播放項目或AVClip的重放完成。由於該輸出,應用程式能夠找到重放控制引擎32已經完成播放項目或AVClip的重放的時刻。
模塊管理器33
模塊管理器33讀出INDEX.BDMV並從在INDEX.BDMV中包含的多條標題信息中選擇一條標題信息,作為一條當前標題信息。然後模塊管理器33讀出該當前標題信息所指示的BD-J對象,並控制重放控制引擎以便根據寫入在該BD-J對象中的播放列表信息來執行重放控制。此外,模塊管理器33控制Java虛擬機,以便讀出並執行寫入在該BD-J對象中的Java檔案文件。
在此,在完成根據播放列表信息的數字流的重放的情況下,或者在用戶調用菜單的情況下,模塊管理器33讀出定義另一標題的另一條標題信息,以便將該條標題信息選擇作為一條當前標題信息。根據數字流的重放或者用戶的菜單調用來選擇另一條標題信息作為該條當前標題信息的處理將稱為「標題轉換」。
當這種「標題轉換」重放執行時,就可以實現圖21所示的狀態變換(state shifting)。在圖中拉長的圓表示標題。
標題包括當加載BD-ROM時重放的「FirstPlayTitle」、構成頂部菜單的「TOP_menu_Title」、和其他作為普通標題的「Title」。圖中的箭頭jh1、jh2、jh3、jh4、jh5、jh6、jh7、和jh8用符號指示標題之間的轉移。該圖中的狀態變換是當加載BD-ROM時重放「FirstPlayTitle」,轉移到「TOP_menu_Title」,然後等待在頂部菜單中的選擇。
光碟內容所特有的狀態變換是,重複進行以下處理直到BD-ROM被退出為止當用戶執行操作來從菜單中進行選擇時,根據該選擇重放相應的標題,然後過程返回到TOP_menu Title。這種狀態變換是在上述的模塊管理器33的控制下實現的。
在以下列出的國際公開中,公開了標題和當前標題的選擇,參考該公開以進行進一步詳細描述國際公開WO 2005/036555國際公開WO 2005/036540國際公開WO 2005/036547因此完成了對Java虛擬機30、顯示引擎31、重放控制引擎32和模塊管理器33的描述。
Java虛擬機對重放控制引擎32的控制是通過虛擬包施加的。為了通過虛擬包實現對重放控制引擎32的控制,重放裝置包括諸如網絡管理模塊37、虛擬文件系統單元38、管理信息轉換模塊39和方法執行模塊40之類的構成組件。以下將描述這些構成組件。
網絡管理模塊37
網絡管理模塊37根據來自應用程式的方法調用,從由電影提供商運作的WWW站點下載構建虛擬包所必需的數據。構建虛擬包所必需的數據包括合併管理信息文件、籤名信息文件、替代BD-ROM上文件的文件或者添加到BD-ROM上的文件(例如,播放列表信息、剪輯信息、AVClip和Java檔案文件)的文件。當在工作存儲器54中的應用程式提出下載請求時,網絡管理模塊37通過網絡下載虛擬包的構建所必需的數據,並將所下載的數據寫入到本地存儲器18中。
虛擬文件系統單元38
虛擬文件系統單元38是屬於第二層的構成組件之一,並且其根據來自應用程式的方法調用來構建虛擬包。虛擬包構建處理包括對構建該虛擬包的AVClip的狀態管理,和虛擬包信息的生成處理。
1.虛擬包信息虛擬包信息是通過擴展在BD-ROM上記錄的卷管理信息獲得的。在此所述的卷管理信息是用於定義在記錄介質上存在的目錄文件結構的信息,其包括關於目錄的目錄管理信息和關於文件的文件管理信息。
虛擬包信息通過將新文件信息添加到指示BD-ROM上目錄文件結構的卷管理信息中,來擴展在BD-ROM上的目錄文件結構。要添加到BD卷管理信息中的新的文件管理信息是存儲在本地存儲器18中的播放列表信息、剪輯信息、AVClip和Java檔案文件的文件管理信息。由於已經將這種文件管理信息添加到其中的虛擬包信息被生成並提供給重放控制引擎32,因此重放控制引擎32能夠進行識別,就如同存儲在本地存儲器18中的播放列表信息、剪輯信息、AVClip和Java檔案文件是存在於BD-ROM上。圖22示出了由虛擬文件系統單元38執行的虛擬包信息的構建的示例。圖的左上方是在BD-ROM上的目錄文件結構,其與圖2所示的相同。圖的左下方是本地存儲器18的目錄文件結構,其與圖14所示的相同。根據合併管理信息,將存儲在本地存儲器18上的播放列表信息、剪輯信息、AVClip和Java檔案文件的文件管理信息添加到BD-ROM上的卷管理信息中。
更具體而言,執行以下過程(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上存在與合併管理信息文件所指定的虛擬包中的文件具有相同文件路徑的文件的情況下,將在本地存儲器中的文件管理信息寫在卷管理信息中。採用該安排,將優先在虛擬包中使用存儲在本地存儲器中並由合併管理信息所引用的文件。
因此,已經獲得了虛擬包信息。通過對卷管理信息進行這種添加,獲得了虛擬包信息。
將採用這種方式生成的虛擬包信息提供給重放控制引擎32。從而,重放控制引擎32通過指定在訪問文件時指示虛擬包的定位器,能夠將存儲在本地存儲器18中的播放列表信息、剪輯信息和AVClip等同地看作記錄在BD-ROM上的播放列表信息、剪輯信息和AVClip。
更具體而言,重放控制引擎32使用由虛擬包信息所指示的虛擬包的定位器來請求文件訪問。響應於該請求,虛擬文件系統單元38根據合併管理信息文件,判斷作為訪問請求目標的文件的實體是記錄在BD-ROM上還是在本地存儲器18中。在判斷結果為文件的實體記錄在本地存儲器18中的情況下,虛擬文件系統單元38將訪問請目標轉換為由合併管理信息文件指定並存儲在本地存儲器18中的文件的文件路徑。
因此完成對虛擬包信息的生成的描述。
以下將解釋虛擬包信息更新的定時。
對按照圖21的箭頭jh1、jh2、jh3、jh4等等所指示的參考數字的數值的順序來執行轉移,然後退出BD-ROM的情況進行解釋。在該情況下,從加載BD-ROM時到退出BD-ROM時的連續時間線能夠看作時整個光碟的時間軸。圖23A示出了整個光碟的時間軸。圖23B示出了該時間軸的配置。如圖23B所示,整個光碟的時間軸包括重放FirstPlayTitle的間隔、重放Top_menu Title的間隔、重放標題#1的間隔等等。這些標題的重放間隔是根據以下思路進行定義的由於每個標題是由單個BD-J對象構成的,因此將特定BD-J對象有效的時間段看作一個標題的重放間隔。在標題的重放間隔之間的過渡部分,換而言之,從一個標題轉換到另一個標題(以下稱為標題變化)處的部分,是更新虛擬包信息的時間段。
圖24示出了當發生標題變化時如何更新虛擬包信息。
圖24的第一層級示出了在時間軸上的標題的播放間隔。第二層級示出了構成該標題的Java應用程式的執行狀態。第三層級示出了數字流的重放狀態。第四層級示出了虛擬文件系統單元38的狀態。
在第一層級中所示的標題#1的重放時間間隔中,運行和重放由BD-J對象所指定的Java應用程式和AVClip,如第二層級和第三層級所示。在標題的這種重放間隔中更新虛擬包信息的情況下,標題的構成組件在執行處理或者重放處理過程中可以相互改變位置。當構成組件相互改變位置時,重放裝置工作異常,並且存在可能發生諸如重放圖像中斷之類的不可恢復的情況的可能性。
為了處理該情況,當在標題#1的重放過程中請求虛擬包信息的更新時,虛擬文件系統單元38進入「準備中狀態」,在其中,在構建虛擬包所必需的處理過程中,僅僅執行一些處理,這些處理在標題的重放時間間隔過程中能夠並行處理,而不改變虛擬包的構建組件。在準備中階段中的處理完成之後,虛擬文件系統單元38變換到「準備」狀態並且等待直到發生標題變化。當發生標題變化時,虛擬文件系統單元38進入「更新」狀態,在下一個標題的重放間隔之前,通過將由合併管理信息文件所引用的文件的文件管理信息添加到BD卷管理信息中來執行更新虛擬包信息的處理。在更新完成之後,虛擬文件系統單元38進入「穩定」狀態,下一個標題的重放開始。在這種狀態中,在選擇從標題變化後的Top_menuTitle跳轉回到標題#1的情況下,將重放標題#1以反映所更新的信息。
如上所述,對於標題變化,由於虛擬包信息被更新,即使是當標題#1正在重放時請求對虛擬包信息的更新,標題的構成組件也不會在標題#1正在重放時改變;因此,在重放過程中就不可能發生異常。
以下將參考圖25到28描述虛擬包的構建的細節。
由例如提供商所安裝的伺服器來提供構成虛擬包的文件。在Java應用程式的控制下,通過諸如網際網路之類的網絡下載這些文件。應該注意的是,在下載中,使用網際網路中通常使用的通信協議,例如HTTP或者HTTPS。
圖25示出了Java應用程式如何是如何請求伺服器發送構建虛擬包的文件。在圖的中間所示的ROOT目錄下的目錄樹指示在本地存儲器中的目錄結構。Java應用程式請求伺服器應該通過發送記錄在本地存儲器中的合併管理信息文件來下載構成虛擬包的文件。
應該注意的是,當將第一次將BD-ROM安放在重放裝置中時,本地存儲器中沒有記錄合併管理信息文件,並且沒有虛擬包被構建。在這種要第一次構建虛擬包的情況下,Java應用程式通過向伺服器通知光碟ID來請求伺服器應該下載構成虛擬包的文件。
接下來,圖26示出了Java應用程式是如何將從伺服器發送的文件記錄在本地存儲器中的。
如圖26所示,Java應用程式在disc#1目錄下生成與該光碟ID相對應的新目錄(新MF目錄),並將在響應於該請求而從伺服器發送的文件中的新的合併管理信息文件和與該管理信息相對應的籤名信息文件,記錄到新生成的目錄中。其他文件立即記錄在disc#1目錄下。應該注意的是,通過使用提供文件I/O功能的API將定位器指定到本地存儲器中,來執行文件的記錄。應該注意的是,如果直接在disc#1目錄下的已有合併管理信息文件和籤名信息文件沒有與要新下載的合併管理信息文件和籤名信息文件相同的文件名,則也可以將所下載文件直接記錄在disc#1目錄下而不生成新的目錄。
圖27示出了Java應用程式是如何請求虛擬文件單元應該更新虛擬包信息的。如圖所示,已經獲得構成虛擬包的文件的Java應用程式,使用在新MF目錄中記錄的新合併管理信息文件的文件路徑、籤名信息文件的文件路徑和光碟ID作為自變量,來調用更新請求方法,從而更新虛擬包信息。
圖28示出虛擬包信息是如何更新的。
當調用更新請求方法時,虛擬文件系統單元38轉換為準備中狀態,執行能夠在不改變與當前正在重放的標題相關的虛擬包的構成組件的情況下執行的一些處理。圖的左側所示的目錄樹示出了在準備中狀態中的本地存儲器。
更具體而言,在準備中狀態下執行以下處理(1)判斷由作為自變量的文件路徑所指示的新合併管理信息文件是否可靠。
(2)判斷由新合併管理信息文件所引用的文件是否存在於指定存儲位置處。
(3)將由新合併管理信息文件所引用的文件和新合併管理信息文件的文件屬性改變為只讀屬性。
當完成在準備中狀態下執行的這些處理時,虛擬文件系統單元38轉換為準備狀態。應該注意的是,將要被映射到虛擬包上的在本地存儲器中的文件的屬性設定為只讀屬性;因此,在Java應用程式通過使用提供文件I/O功能的API將定位器指定到本地存儲器中,來請求應該將數據寫入到這些文件中的一些中的情況下,API將返回指示寫入不被允許的異常。
當其後標題變化已經發生時,虛擬文件系統單元38將存在於在disc#1目錄中的文件替換為新合併管理信息文件和籤名信息文件,並在替換之後,通過根據在disc#1目錄中的合併管理信息文件將文件管理信息添加到BD卷管理信息中,來將記錄在本地存儲器中的文件映射到虛擬包上。此時,在本地存儲器中的由舊合併管理信息文件引用但不由新合併管理信息文件引用的一些文件的屬性從只讀屬性改變為可讀/可寫屬性。因此完成對虛擬包信息的構建的詳細描述。
以下參考流程圖,描述根據本發明的重放裝置所執行的重放處理的細節。圖29是示出由模塊管理器33所執行的標題重放控制的處理的流程圖。該流程圖示出在將BD-ROM安放在重放裝置之後和將其退出之前要執行的處理過程。在步驟S11中,將在INDEX.BDMV文件中指定的FirstPlayTitle設定為當前標題,在執行步驟S11的處理之後,執行步驟S12到S21的循環處理。
在步驟S12到S21的循環處理中,在步驟S12到S15中的處理是重放當前標題的過程。在步驟S12,從INDEX.BDMV中獲得與當前標題相對應的一條標題信息,將在所獲得的標題信息中指定的BD-J對象作為當前BD-J對象。在步驟S13中,控制重放控制引擎32,以便根據其參考值被寫入到當前BD-J對象中的一條播放列表信息來執行PL重放。在步驟S14,控制Java平臺29b,以便運行其標識符在當前BD-J對象的應用程式管理表中被指定的Java應用程式。在步驟S15,控制Java平臺29b,以便終止其標識符沒有在當前BD-J對象的應用程式管理表中被指定的其他Java應用程式。
在步驟S16到S19中的處理是用於判斷標題是否已經結束的過程。在以下情況之一已經發生的情況下判定標題已經結束完成根據播放列表的PL重放(步驟S16);標題調用,例如由於用戶操作造成的菜單調用指令,已經發生(步驟S17);諸如腳本轉移之類的標題跳轉已經發生(步驟S18);以及作為標題的主要組件的應用程式已經結束(步驟S19)。
在判定標題已經結束的情況下,執行在步驟S20和S21中的處理。根據在步驟S16到S19中的哪一個判定用於確定標題結束,來指定下一個標題(步驟S20),並將所指定的標題設定為新的當前標題(步驟S21)。作為上述處理的結果,在BD-ROM的插入與退出之間執行標題重放。
以下描述由重放控制引擎32所執行的播放列表重放的細節。圖30是流程圖,示出了由重放控制引擎32所執行的播放列表重放處理的處理過程。該流程圖示出了根據由模塊管理器33所命令的一條播放列表信息,從由播放列表所指定的AVClip的開始到結束的重放的處理過程。
首先,在作為指定播放列表信息的實體的MPLS文件是在本地存儲器中的已經根據合併管理信息文件進行映射的文件的情況下,檢查所指定文件是否被竄改(步驟S31)。在步驟S31中判定所指定文件已經被竄改的情況下,過程退出流程圖,從而終止處理。在判定所指定文件沒有被竄改的情況下,繼續進行步驟S32中和該步驟之後的處理。
在步驟S32中執行如下處理,將在播放列表信息中的第一條播放項目信息設定為要進行處理的一條播放項目信息(以下簡稱為「播放項目信息i」),在執行步驟S32的處理之後,執行從步驟S33到S41的循環處理。
在從步驟S33到S41的循環處理中,控制變量是變量i,在步驟S33到S41中的處理被執行後,控制變量i遞增(步驟S41),直到變量i超過播放項目的數量(「播放項目的數量」)在從步驟S33到S41的循環處理中,從步驟S33到S35中的處理是用於重放主路徑的處理。在步驟S33的處理中,將寫入到播放項目信息i中的Clip_Information_file_name中的AVClip作為用作重放目標的AVClipj。在步驟S34的處理中,在作為寫AVClipj相對應的一條剪輯信息的實體的CLPI文件是在本地存儲器中的已經根據合併管理信息文件進行映射的文件的情況下,檢查在本地存儲器中的這一文件是否已經被竄改。當一個或多個文件已經被竄改時,過程退出流程圖,從而終止處理。在步驟S35中的處理中,命令驅動裝置和解碼器重放AVClipj中從PlayItem.In_time到PlayItem.Out_time的部分。
在步驟S36到步驟S39中的處理是用於重放子路徑的過程。在步驟S34中,判斷是否存在將播放項目信息i指定為Sync_PlayItem_id的子播放項目k。如果其不存在,則過程進入步驟S40如果其存在,則在步驟S37中的處理中,將寫入到該子播放項目k的Clip_Information_file_name中的AVClip作為AVClip h。在步驟S38的處理中,在作為與AVClip h相對應的該條剪輯信息的實體的CLPI文件是在本地存儲器中的已經根據合併管理信息文件進行映射的文件的情況下,檢查在本地存儲器中的這一文件是否已經被竄改。當這一文件已經被竄改時,過程退出流程圖,從而終止處理。在步驟S39的處理中,命令驅動裝置和解碼器重放AVClip h中從sync_Start_PTS_of_PlayItem到Out_time的部分,然後過程進入步驟S40。
對構成播放列表信息的所有條播放項目重複上述處理。因此,執行由播放列表所定義的流序列的重放。
應該注意的是,採用以下過程執行在步驟S31、步驟S34和步驟S38中對文件是否已經被竄改的檢查,具體而言(a)從合併管理信息文件中讀出要檢查的文件的散列值。
(b)使用要檢查的文件計算散列值。
(c)如果在(a)和(b)中獲得的值相等,則判定文件沒有被竄改。如果在(a)和(b)中獲得的值不相等,則判定文件已經被竄改。
可接受的是忽略對流文件(xxxxx.M2TS)的竄改的檢查。原因是因為流文件的文件大小通常比其他文件大,根據文件大小,需要極其長的時間來計算散列值。另外,通常使用記錄在BD-ROM上的密鑰對該流文件本身進行加密,與其他文件相比,其更加難以被竄改。
以下參考流程圖,描述由根據本發明的重放裝置所執行的構建虛擬包的過程的細節。將虛擬包的構建劃分為三個階段,例如由Java應用程式下載構成虛擬包的文件、虛擬文件系統單元38進行的準備、以及虛擬文件系統單元38進行的更新。
首先,詳細描述要由Java應用程式所執行的構建虛擬包的文件的下載的過程。圖31是示出要由Java應用程式所執行的構建虛擬包的文件的下載的過程的流程圖。
首先,Java應用程式通過將記錄在本地存儲器中的、與BD-ROM的光碟ID相對應的目錄中的合併管理信息文件發送到伺服器,來請求應該發送文件(步驟S291)。在步驟S292,Java應用程式等待直到從伺服器接收到文件。應該注意的是,有時在本地存儲器中沒有記錄合併管理信息文件,例如當該BD-ROM是首次安放在該重放裝置中時。在該情況下,可接受的是具有以下安排其中在步驟S291的處理中,Java應用程式通過將BD-ROM上的光碟ID通知給伺服器,來請求伺服器應該發送文件。
當在步驟S292的待命過程中從伺服器接收到文件數據時,在步驟S293和S294中將文件記錄在本地存儲器中。在步驟S293中,在與該光碟ID相對應的目錄中生成新目錄,並將所接收的合併管理信息文件和籤名信息文件記錄在該新目錄中。在步驟S294,將已經下載的AVClip、剪輯信息、播放列表信息和Java檔案文件寫入與該光碟ID相對應的目錄中。
當已經完成將文件記錄在本地存儲器中時,Java應用程式使用在新目錄中的合併管理信息文件和籤名信息文件的文件路徑作為自變量,調用更新請求方法(步驟S295)。在步驟S296中,Java應用程式等待從該方法返回的值。
當返回值為FALSE的情況下(步驟S296是),停止虛擬包的構建過程。當返回值為不是FALSE的情況下(步驟S296否),虛擬文件系統單元38進入準備狀態,並且當轉換標題時更新虛擬包(步驟S297)。
以下詳細描述要由虛擬文件系統單元38執行的準備處理。圖32是示出要由虛擬文件系統單元38執行的準備處理的流程圖。
該流程圖示出在已經調用上載請求方法的情況下已經轉換為準備中狀態的虛擬文件系統單元38要執行的處理過程。
在步驟S51中,使用用作調用該方法的自變量的文件路徑讀出合併管理信息文件和籤名信息文件,在步驟S51的處理之後,執行步驟S52到S54中的處理,在處理中,判斷構建虛擬包是否是可接受的。
在步驟S52中,判斷在步驟S51中讀出的合併管理信息文件是否已經被竄改。在該合併管理文件判定為已經被竄改的情況下,將不允許進行虛擬包的構建。
更具體而言,執行以下過程(a)使用重放裝置所持有的合併證書中的公鑰來解密在籤名信息文件中的加密散列值。
(b)計算合併管理信息文件的散列值。
(c)如果通過(a)中的解密過程獲得的值等於在(b)中計算得到的值,則判定該合併管理信息文件沒有被竄改並且是可靠的。如果通過(a)中的解密過程獲得的值不等於在(b)中計算得到的值,則判定該合併管理信息文件已經被竄改並且是不可靠的。
步驟S53是用於判斷是否允許調用該方法的Java應用程式來更新虛擬包的處理。在不允許調用者更新虛擬包的情況下,將不允許虛擬包的構建。
步驟S54是用於判斷由該合併管理信息文件指定的文件是否實際存在於本地存儲器中的處理。在不存在所指定文件的情況下,將不允許虛擬包的構建。
在步驟S52到S54中的一個中判斷結果為不允許虛擬包的構建的情況下,將返回值「FALSE」返回到調用該方法的Java應用程式,然後處理終止。
另一方面,在步驟S52到S54中的一個中判斷結果為允許虛擬包的構建的情況下,則要執行步驟S55中的處理。
步驟S55是用於讀出合併管理信息文件、籤名信息文件和由該合併管理信息文件所指定的文件並將它們的屬性改變為只讀屬性的處理。因此完成對準備處理的細節描述。
應該注意的是,在步驟S52到S54中的一個中判斷結果為不允許虛擬包的構建的情況下,可以接受的是具有一種安排,其中,將BD-ROM的卷管理信息提供給調用該更新請求方法的Java應用程式作為虛擬包信息,並且終止該更新請求方法的處理。採用該安排,如果合併管理信息文件已經被竄改並且處於非法狀態下時,重放裝置能夠禁止包含本地存儲器中的文件的虛擬包的構建,並且重放裝置還能夠採用與訪問虛擬包相同的方式來訪問BD-ROM上的文件。
以下將詳細描述由虛擬文件系統單元38執行的更新處理。圖33是示出由虛擬文件系統單元38執行的更新處理的流程圖。
該流程圖示出在由於更新請求方法而完成準備處理之後發生標題變化的情況下,由虛擬文件系統單元38所執行的處理過程。
首先,將由作為該方法自變量的文件路徑所指定的合併管理信息文件和籤名信息文件,移動到與當前正在重放的BD-ROM的光碟ID相對應的本地存儲器中的目錄中。此時,在該合併管理信息文件和籤名信息文件已經存在於作為移動目的地的目錄中的情況下,採用新的合併管理信息文件和籤名信息文件改寫已有文件(步驟S61)。隨後,將由在本地存儲器18中的合併管理信息文件所指定的一條播放列表信息的文件管理信息,添加到在BD卷管理信息中的PLAYLIST目錄中的目錄管理信息中(步驟S62)。
隨後,執行步驟S63到步驟S67的循環處理。在該循環處理中,對在本地存儲器18中存儲的多條剪輯信息中的每一個重放在步驟S64到步驟S66中的處理(步驟S63、步驟S67)。
在該循環處理中,將由合併管理信息文件所指定的多條剪輯信息中的一個作為剪輯信息x,將該剪輯信息x的文件管理信息添加到在BD卷管理信息中的CLIPINF目錄中的目錄管理信息中(步驟S64)。此外,指定與該剪輯信息x相對應的AVClip x(步驟S65),並且將AVClip x的文件管理信息添加到BD卷管理信息中的STREAM目錄的目錄管理信息中(步驟S66)。
當對所有條剪輯信息和所有AVClip重複上述處理時,將這些條剪輯信息和AVClip的文件管理信息添加到BD卷管理信息中。將作為該添加的結果而獲得的這種BD卷管理信息作為虛擬包信息。將這種虛擬包信息提供給調用該更新請求方法的Java應用程式(步驟S68),然後處理完成。因此完成對更新處理的細節描述。
如迄今所述,根據本發明,根據籤名信息來驗證合併管理信息的可靠性。在合併管理信息確認為不可靠的情況下,則防止使用記錄在本地存儲器中的文件來構建虛擬包。採用該安排,即使是本地存儲器中的某些數據已經被竄改而虛擬包的構建沒有被執行時,也可以避免執行被竄改的非法數據,和結合記錄在只讀記錄介質上的數據對其進行重放的情況。因此,就不可能遇到由於數據的非法使用所造成的不利情況。
此外,當虛擬包被構建時,將作為可讀/可寫記錄介質的本地存儲器中的文件的屬性鎖定為只讀屬性;因此,就可以防止在構建了虛擬包之後,由於應用程式對未準備好的文件的訪問造成的文件被重寫。採用該安排,就可以防止虛擬包信息與在本地存儲器中的文件實體不一致的情況。
第二實施例第二實施例涉及對在執行標題調用時的改進。標題調用要暫時暫停當前標題的重放,重放所調用的標題,以及在對所調用標題的執行完成之後,繼續對原始播放的標題的重放。
由於將繼續原始播放的標題的重放作為前提,因此當執行標題調用時,重放控制引擎32將存儲在PSR中並用於重放控制的系統參數保存在備份PSR中,在所調用的標題被重放之後,重放控制引擎32將在保存在備份PSR中的參數恢復到PSR中。
以下是存儲在PSR中的系統參數列表。PSR(0)到PSR(12)中存儲指示重放狀態的系統參數。PSR(13)到PSR(19)中存儲由播放器設定的作為優選的系統參數。PSR(20)到PSR(32)是用於備份的PSR。
PSR(0)IG流號PSR(1)音頻流號PSR(2)PG流/文本字幕流號
PSR(3)角度號PSR(4)當前正在重放的標題號PSR(5)當前正在重放的章節號PSR(6)當前正在重放的播放列表標識符PSR(7)當前正在重放的播放項目標識符PSR(8)重放時間信息PSR(9)導航計時器PSR(10)選擇鍵信息PSR(11)IG流中的當前頁標識符PSR(12)PG流中的用戶樣式標識符和文本字幕流PSR(13)父母級別(paretal level)PSR(14)字幕支持信息PSR(15)播放器設定值(音頻)PSR(16)音頻流的語言代碼PSR(17)PG流和文本字幕流的語言代碼PSR(18)菜單的語言代碼PSR(19)播放器的版本信息PSR(20)PSR(0)的備份PSR(21)PSR(1)的備份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(10)的備份PSR(31)PSR(11)的備份PSR(32)PSR(12)的備份在此,如果在執行標題調用之後對虛擬包信息進行更新,則在標題調用之前與之後,在虛擬包信息中將會有些不同。
當要繼續調用其他標題(即,被調用標題)的標題(即,調用標題)時,虛擬包信息已經改變;因此,就存在以下可能性當試圖採用備份值來重放調用標題時,可能出現錯誤,因為備份值保持與以前相同。因此,當Java應用程式請求應該更新虛擬包信息時,將可以通過清除備份PSR來避免這種問題情況。然而,可能存在根據在虛擬包信息中的合併管理信息文件,所述改變不會造成任何影響的一些情況;因此,可接受的是,將在系統參數中的值是否應該被清除的問題留給Java應用程式。
圖34是流程圖,示出當暫時暫停當前標題的重放以便執行標題調用時由重放控制引擎所執行的處理過程,和當原始播放標題的重放繼續時由重放控制引擎所執行的處理過程。
為了暫時暫停當前標題的重放,在步驟S71中將SPRM(0)到SPRM(12)保存到SPRM(20)到SPRM(32)中。
當在完成被調用標題的重放之後繼續原始播放標題的重放時,在步驟S81中判斷在暫停過程中虛擬包信息是否已經被更新。
在虛擬包信息沒有被更新的情況下,將SPRM(20)到 SPRM(32)恢復到SPRM(0)到SPRM(12)(步驟S83)。在虛擬包信息已經被更新的情況下,將SPRM(20)到SPRM(32)初始化(步驟S82),並且將執行步驟S83中的處理。
如迄今所述,根據本實施例,在執行了標題調用之後虛擬包信息被更新的情況下,將備份PSR的內容初始化;因此就不存在重放控制引擎根據標題調用之前的PSR而執行錯誤的重放處理的可能性。因此,就可以實現重放控制引擎的穩定工作。
應該注意的是,採用以下安排也是可接受的其中,當虛擬包信息被更新時,在系統端強制將系統參數的值清除,而不是將在是否應該清除備份PSR中的值的問題留給Java應用程式。
第三實施例在第一實施例中,已經描述以下配置其中,將在本地存儲器中並相應於組織ID和BD-ROM的光碟ID的目錄用作用於存儲構建虛擬包的文件的位置。在第三實施例中,描述了以下配置其中,採用記錄在本地存儲器中的任意目錄中的文件來構建虛擬包。
通過Java應用程式指定光碟ID和在本地存儲器中的目錄路徑實現這種虛擬包構建,在本地存儲器中,將用於虛擬包構建的文件記錄為用於更新請求方法的自變量。
在根據第三實施例的重放裝置中,虛擬文件系統單元38保持虛擬包管理表。圖35示出了虛擬包管理表的示例。虛擬包管理表示出了光碟ID,其與指示在更新請求方法中所指定的本地存儲器中的目錄的路徑相對應,來標識BD-ROM。當響應於更新請求而生成虛擬包信息時,虛擬文件系統單元38能夠根據在虛擬包管理表中記載的信息,指定在虛擬包中使用的文件的存儲目的地。
以下描述由根據本實施例的虛擬文件系統單元38所執行的虛擬包構建處理。圖36是示出由根據第三實施例的虛擬文件系統單元38所執行的虛擬包構建處理過程的流程圖。
該流程圖示出了在Java應用程式已經發布更新請求方法的情況下,由虛擬文件系統單元38所執行的處理過程。
在步驟S91,判斷指定為更新處理方法的自變量的光碟ID是否已經在虛擬包管理表中記載。
在所指定的光碟ID已經在虛擬包管理表中記載的情況下(步驟S91是),在執行步驟S92到S94中的處理過程之後,執行在步驟95到S99中的處理過程。另一方面,在所指定的光碟ID沒有在虛擬包管理表中記載的情況下,過程進而執行步驟S95到S99的處理過程。
在步驟S92到S94,從虛擬包管理表中刪除具有所指定光碟ID的條目(entry)(步驟S92),並判斷由所指定光碟ID所標識的BD-ROM是否插入了BD-ROM驅動器1中(步驟S93)。在由所指定光碟ID所標識的BD-ROM已經插入的情況下(步驟S93是),過程進入步驟S94。在其他情況下(步驟S93否),過程進入步驟S95。在步驟S94,與所指定光碟ID相對應的虛擬包的構建被暫停。
步驟S95是用於判斷所指定目錄的籤名是否可靠的處理過程。在當前示例中,用於判斷所指定目錄的籤名是否可靠的處理是(a)檢查在所指定目錄下的合併管理信息文件是否未被竄改,以及然後(b)檢查由合併管理信息文件所指定的文件是否未被竄改。
為了確定合併管理信息文件沒有被竄改,執行以下過程(a-1)對虛擬包管理表計算散列值。
(a-2)使用由重放裝置持有的合併證書中的公鑰來對在所指定目錄下的籤名信息文件中的加密散列值進行解密。
(a-3)將所計算的散列值與解密的籤名值進行比較,如果所述值相同,則確定合併管理信息文件沒有被竄改。
為了確定由合併管理信息文件所指定的文件沒有被竄改,執行以下過程(b-1)對由合併管理文件所指定的每個文件計算散列值。
(b-2)將所計算的散列值與寫入到合併管理信息文件中的散列值進行比較,如果所述值相同,則確定由合併管理信息文件所指定的文件沒有被竄改。
作為步驟S95的判斷結果,在所指定目錄的籤名是可靠的情況下(步驟S95是),過程進入步驟S96。在其他情況下,過程終止。
在步驟S96中,使用被指定為更新請求方法的自變量的光碟ID和目錄路徑,將新的條目添加到虛擬包管理表中。在步驟S97,判斷由所指定光碟ID所標識的BD-ROM是否插入了BD-ROM驅動器1。在由所指定光碟ID所標識的BD-ROM已經插入的情況下(步驟S97是),過程進入步驟S98。在其他情況下(步驟S97否),處理終止。在步驟S98中,將其路徑作為自變量而被指定的本地存儲器中的目錄下的內容讀出,並且將屬性設定為只讀屬性。在步驟S99中,採用其文件路徑被指定的本地存儲器和BD-ROM中的目錄來構建虛擬包。因此完成根據第三實施例的用於構建虛擬包的處理過程的描述。
應該注意的是,上述處理過程是用於響應於更新請求而構建虛擬包的過程;然而,對於在BD-ROM新插入重放裝置的情況下構建虛擬包的處理過程而言,從虛擬包管理表中搜索與所插入的BD-ROM的光碟ID相對應的目錄路徑,並且採用所檢測到的目錄路徑作為指定目錄路徑來執行在圖36的步驟95中和該步驟之後的處理過程,從而能夠構建虛擬包。
此外,在響應於更新請求而構建虛擬包的處理過程中,作為在步驟S95中用於判斷所指定目錄的籤名是否可靠的處理,首先(a)檢查在所指定目錄下的合併管理信息文件是否未被竄改,以及然後(b)檢查由合併管理信息文件所指定的文件是否未被竄改;然而,對於在BD-ROM新插入重放裝置的情況下構建虛擬包的處理過程而言,還可接受的是僅僅通過以下處理來在步驟S95中判斷所指定目錄的籤名是否可靠(a)檢查在所指定目錄下的合併管理信息文件是否未被竄改,以便通過在步驟S96到S99中的處理構建虛擬包。在這種情況下,當Java應用程式作出對其文件路徑已經寫入到合併管理信息文件中的文件的訪問請求時,執行如下處理(b)檢查由合併管理信息文件所指定的文件是否未被竄改。僅僅在所述文件確認沒有被竄改的情況下,才允許Java應用程式訪問所指定文件。採用以下安排,減少了在插入並加載BD-ROM之後所必需的處理數量其中,在訪問文件時而不是在構建虛擬包時執行散列值計算處理部分。因此,可以實現使啟動更加快速的效應。
以下描述正在構建虛擬包時,Java應用程式為本地存儲器指定定位器,並訪問文件以將數據寫入該文件的情況下要執行的操作。
圖37是示出用於控制對文件的寫入訪問的API的處理過程的流程圖。當Java應用程式採用指定本地存儲器定位器請求寫入訪問時,判斷目錄屬性是否因為正在構建虛擬包而被設定為只讀屬性(步驟S101)。在包含所指定文件的目錄的屬性被鎖定在只讀屬性時(步驟S101是),將指示不允許寫入該文件的異常返回到Java應用程式,並終止處理(步驟S102)。在其他情況下(步驟S101否),過程進入步驟S103。
在步驟S103,執行對本地存儲器中的文件進行寫入訪問的處理。
根據上述處理過程,如果指定為訪問目標的文件是構建虛擬包的文件,並且當作出訪問請求時該虛擬包正在構建,則不允許訪問該文件。
在此,即使是在當正在採用在contsID#1目錄的指定構建虛擬包時,圖38所示的contsID#1目錄下的文件有錯誤時,由於在正在構建虛擬包時contsID#1目錄的屬性被設定為只讀屬性,因此不可能校正該文件的錯誤。
在這種情況下,具有文件校正功能的Java應用程式採用提供文件I/O功能的API生成稱為contsID#2的目錄,如圖38所示,並且將在contsID#1目錄下的文件複製到contsID#2目錄中,從而校正文件中的錯誤。此時,如果用於AV數據的M2TS文件的內容中沒有改變,則可接受的是在contsID#1目錄下生成對M2TS文件的符號連結,而不是在contsID#2目錄下生成複製文件。
在contsID#2下生成文件之後,Java應用程式使用contsID#2目錄的路徑(在圖38中所示的示例中為「ROOT/organization#1/disc#1/contsID#2」)作為自變量發布更新請求方法。
因此,根據圖36中所示的流程圖,將採用在contsID#1目錄下的文件的虛擬包的構建暫停,然後採用在contsID#2目錄下的文件構建虛擬包。當已經構建了新的虛擬包時,將在本地存儲器中的contsID#2的屬性和其下內容的屬性設定為只讀屬性。
應該注意的是,儘管在本實施例中使用符號連結,採用非直接引用的機制也是可以接受的,在該機制中,「ROOT/organization#1/disc#1/contsID#2/00002.M2TS」文件的內容為諸如「../contsID#2/00002.M2TS」之類的字符串。
如迄今所述,根據本實施例,可以採用在本地存儲器中的任意目錄的指定來構建虛擬包。此外,在通過將記錄在多個記錄介質上的文件進行合併來構建虛擬包的情況下,採用以下安排可以防止在虛擬包構建過程中將文件重寫其中,將在作為可讀/可寫記錄介質的本地存儲器中所存儲的文件的屬性鎖定為只讀屬性。因此,可以防止由該應用程式本身或者其他應用程式所造成的、在文件中的非法改變可能導致的錯誤。
此外,即使是在虛擬包沒有創建時實體文件被竄改,也可以通過判斷籤名是否可靠來檢測實體文件的竄改,並且避免虛擬包的構建。因此,可以在由於採用非法文件而可能導致的故障發生之前,將其阻止。
應該注意的是,本實施例包括在步驟S95中的處理,在該步驟中,作為當構建虛擬包時要使用的標準判斷,判斷所指定目錄的籤名是否是可靠的;然而,也可接受的是,不對籤名的可靠性進行判斷而構建虛擬包。
應該注意的是,在本實施例中,在構建虛擬包之後,將在本地存儲器中的所指定目錄的屬性和其下內容的屬性設定為只讀屬性;然而,採用以下安排也是可接受的其中,位於所指定目錄下的目錄和文件的屬性也可以遞歸的設定為只讀屬性。
應該注意的是,在本實施例中,當虛擬包被構建時,將在本地存儲器中的路徑,例如「ROOT/organization#1/disc#1/contsID#1」,指定為更新請求方法的自變量;然而,採用以下安排也是可接受的其中僅僅指定contsID,以便從BD-ROM中獲得組織ID和光碟ID。
第四實施例在第三實施例中,描述了以下配置其中,通過將被指定為更新請求方法的自變量的目錄的屬性設定為只讀屬性來防止構建虛擬包的、本地存儲器中記錄的文件的改變,以便避免虛擬包信息與在本地存儲器中的實際目錄-文件結果之間不一致的情況。
在第四實施例中,討論了一種改進,採用所述改進,可以避免虛擬包信息與在本地存儲器中的實際目錄-文件結果之間不一致的同時,對在構成虛擬包的本地存儲器中的文件進行寫入訪問。
圖39是示出根據第四實施例用於構建虛擬包的處理過程的流程圖。在該流程圖與圖36的流程圖之間的差異在於,分別將步驟S98和S99改變為步驟S111和S112。在步驟S111中,將在本地存儲器中並被指定為更新請求方法的自變量的目錄和其下內容複製到另一記錄介質中。在步驟S112中,使用已經複製到所述另一記錄介質與BD-ROM中的目錄和其下內容來構建虛擬包。因此完成對構建虛擬包的處理過程的描述。
以下描述Java應用程式進行的寫入文件訪問的處理過程。圖40是流程圖,示出了在虛擬包已經被構建之後對本地存儲器中的文件進行寫入訪問的情況下,提供文件I/O功能的API的處理。該流程圖與圖37所示的流程圖之間的差異在於,刪除了步驟S101和S102。當採用對本地存儲器定位器的指定來請求對在本地存儲器中的文件進行寫入訪問時,在步驟S103對本地存儲器中的文件進行寫入訪問,然後處理完成。
因此完成對應用程式進行的對文件的寫入訪問的處理過程的描述。
如迄今所述,根據本實施例,當通過對記錄在多個記錄介質上的文件進行合併來構建虛擬包時,將在作為可讀/可寫記錄介質的本地存儲器中的文件複製到另一記錄介質中,即使是當構建虛擬包時在本地存儲器中的文件被重寫,虛擬包也可以查詢已經被複製到該記錄介質上並反映在重寫之前的狀態的文件。因此,即使是該應用程式本身或者其他應用程式執行了非法的文件改變,也可以防止可能發生的故障。
應該注意的是,在本實施例中,在本地存儲器中的文件複製目的地是另一存儲介質;然而,以下安排也是可以接受的其中,將文件複製到在本地存儲器中的不能從Java應用程式直接引用的目錄中,或者僅僅能夠進行只讀訪問的目錄中。
應該注意的是,在本實施例中,將在本地存儲器中的指定目錄和其下內容複製到另一記錄介質上;然而,存儲有AV流等等的文件的大小是很大的,複製需要時間,並且佔用所述記錄介質的存儲空間。為了解決該情況,還可以接受的是,如圖38的示例所示,對這種具有很大大小的文件使用符號連結。
第五實施例第五實施例描述了一種改進,其用於在將要構建虛擬包時防止文件被非法改變。
圖41示出了根據第五實施例的重放裝置的內部結構。根據本實施例的重放裝置具有以下配置其中將加密器41和解密器42添加到圖18所示的配置中。與圖18中的相同的構成組件具有相同的參考符號,在此將省略對其的描述。
加密器41採用記錄在插入到BD-ROM驅動器1中的BD-ROM的BCA(Burst Cutting Area燒錄區)中的對於該光碟而言唯一的密鑰信息,選擇性地對要寫入到本地存儲器中的文件進行加密。加密器41要加密的文件,是在用於構建虛擬包並已經從伺服器下載的文件中的用於AV數據的M2TS文件。在此所使用的加密方法為,例如,諸如AES、DES等等的傳統加密方法。BCA是光碟中的導入區內側的特定區域,所述光碟僅能夠由驅動裝置讀出。由於沒有應用程式能夠從BCA區域中讀出數據,因此BCA區域經常用於版權保護技術。
解密器42採用記錄在插入到BD-ROM驅動器1中的BD-ROM的BCA中的對於該光碟而言唯一的密鑰信息,對文件進行解密。解密器42所要解密的數據是從本地存儲器中讀出的M2TS文件。解密器42獲得AV數據的訪問單位(ACCESS UNIT)並對其進行解密,將被解密數據輸出到重放機構。在此所使用的加密方法與加密器41所使用的加密方法相同,並用於對由加密器41加密的文件進行解密。
另外,根據本實施例的重放裝置,在虛擬文件系統單元38中所保持的虛擬包管理表的結構與第三實施例中不同。圖42示出了第五實施例的虛擬包管理表的示例。本實施例的虛擬包管理表與圖35所示不同之處在於,其具有為其添加的籤名數據。在虛擬包管理表中的籤名數據是用於驗證在用於構建虛擬包的目錄中,在文件被記錄到本地存儲器中之後沒有被重寫。
在籤名數據607中的多個註冊信息中,分別與具有小文件大小的BDMV文件、MPLS文件和CLPI文件相對應的這些條註冊信息601、602和603包括在虛擬包中使用的文件名和記錄在本地存儲器中的文件實體的散列值。當文件從伺服器下載時,已經計算了在此設定的散列值。應該注意的是,散列值是採用用於獲得從在文件中存儲的數據中唯一確定的值的單向函數來計算。單向函數的一個示例是MD5,其是傳統方法。另一方面,在籤名數據中的多條註冊信息中,用於具有很大文件大小的M2TS文件的註冊信息606僅僅包括在虛擬包中使用的文件名,而不包括散列值。籤名數據607是採用記錄在BD-ROM的BCA中並對於光碟而言唯一的密鑰信息進行加密的。
以下參考圖43和44描述第五實施例的重放裝置的操作的流程。首先,描述將從伺服器下載的文件記錄到本地存儲器中的處理。圖43是示出用於將所下載文件記錄到本地存儲器中的處理過程的流程圖。
當Java應用程式從伺服器下載要在構建虛擬包時使用的文件並將所下載文件寫入到本地存儲器中時,執行在本流程圖中所示的處理。
當Java應用程式採用本地存儲器定位器的指定來請求寫入訪問時,判斷是否由於現在正在構建虛擬包而將目錄的屬性設定為只讀屬性(步驟S121)。在包含所指定文件的目錄的屬性被鎖定到只讀屬性的情況下(步驟S121是),將指示不允許寫入該文件的異常返回給Java應用程式,並終止處理(步驟S122)。在其他情況下(步驟S121否),過程進入步驟S123。
在步驟S123,判斷所指定的文件是否是用於AV數據的M2TS文件。
在所指定文件是M2TS文件的情況下(步驟S123是),由加密器41採用記錄在插入到BD-ROM驅動器1中的BD-ROM的BCA中的對於該光碟而言唯一的密鑰信息對該文件進行加密(步驟S124)。然後,將僅包含要在虛擬包中使用的指定文件的文件名的一個註冊信息添加到籤名數據中(步驟S125),並且執行在步驟S127中和該步驟之後的處理。
當所指定文件不是M2TS文件的情況下(步驟S123否),計算該指定文件的散列值。然後,將包含所計算的散列值和要在虛擬包中使用的指定文件的文件名的一條註冊信息添加到籤名數據中(步驟S126),並且執行在步驟S127中和該步驟之後的處理。
在步驟S127,由加密器41採用記錄在BD-ROM的BCA中的對於該光碟而言唯一的密鑰信息對籤名數據進行加密。在步驟S128,對本地存儲器進行寫入訪問,將在步驟S127中加密的籤名數據連同所指定文件記錄到本地存儲器中。因此完成對將從伺服器下載的文件記錄到本地存儲器中的處理的描述。
以下描述要由虛擬文件系統單元38執行的構建虛擬包的處理。圖44是示出構建虛擬包的處理過程的流程圖。該流程圖示出在Java應用程式使用光碟ID和其中存儲用於構建虛擬包的數據的目錄的路徑作為自變量,發布更新請求方法的情況下要執行的處理過程。
在步驟S131中,判斷是否已經為由所指定光碟ID所標識的BD-ROM構建了虛擬包。
在已經為由所指定光碟ID所標識的BD-ROM創建了虛擬包的情況下(步驟S131是),過程進入步驟S132。在其他情況下,過程進入步驟S135。在步驟S132,將所指定光碟ID的條目從虛擬包管理表中刪除。在步驟S133中,判斷由所指定光碟ID標識的BD-ROM是否已經插入到BD-ROM驅動器1中。在已經插入由所指定光碟ID標識的BD-ROM的情況下(步驟S133是),過程進入步驟S134。在其他情況下(步驟S93否),過程進入步驟S135。在步驟S134,將與所指定光碟ID相對應的虛擬包的構建暫停。
在步驟S135,將指定為自變量的目錄路徑和記錄在所指定目錄中的籤名數據,添加到指定為自變量的光碟ID的條目中。
在步驟S136,判斷是否將由所指定光碟ID標識的BD-ROM插入BD-ROM驅動器1中。在由所指定光碟ID標識的BD-ROM已經插入的情況下(步驟S136是),過程進入步驟S137。在其他情況下,處理終止。
在步驟S137,解密器42採用記錄在BD-ROM的BCA中的對於該光碟而言唯一的密鑰信息,對虛擬包管理表的籤名數據進行解密。
在步驟S138,判斷被解密的籤名數據是否是可靠的。當以下3個條件都滿足時,判定籤名數據可靠(a)對具有已經設定的散列值的籤名數據的所有文件中的每一個計算散列值,所計算的值等於在籤名數據中所包括的散列值;(b)在本地存儲器中存在其的籤名數據不具有已經設定的散列值的M2TS文件,並且其未被刪除;
(c)在本地存儲器中的所指定目錄中不存在沒有在籤名數據中記載的文件。
在籤名數據判定為是可靠的情況下(步驟S138是),過程進入步驟S139。在其他情況下,處理終止。在步驟S139,將在本地存儲器中的所指定目錄的屬性和其下內容的屬性設定為只讀屬性。在步驟S140,使用自變量指定的本地存儲器中的目錄和BD-ROM來構建虛擬包。因此完成對構建虛擬包的處理的描述。
此外,在將光碟新插入重放裝置的情況下,從虛擬包管理表中搜索與所插入BD-ROM的光碟ID相對應的目錄路徑,並使用所檢測的目錄路徑作為指定目錄路徑執行步驟S136中和該步驟之後的處理,以便構建虛擬包。
應該注意的是,在本實施例中,僅僅對包含在虛擬包中的M2TS文件進行加密/解密;而然,以下安排也是可以接受的對其他文件進行加密/解密,例如CLPI文件、BDMV文件和MPLS文件。此外,雖然對在經過加密之後將所下載的M2TS文件寫入到本地存儲器中的情況進行了描述;然而,以下安排也是可接受的其中,下載已經採用對該光碟而言唯一的密鑰預先加密的M2TS文件。
應該注意的是,所述描述說明M2TS文件的散列值沒有添加到籤名數據中,以便當要執行重放時忽略計算散列值的處理,這是因為M2TS文件的大小是很大的;然而,在採用具有足夠高的處理能力的重放裝置的情況下,將M2TS文件的散列值添加到籤名中也是可以接受的。另外,以下安排也是可以接受的其中,對其他文件進行加密、解密,例如CLPI文件、BDMV文件和MPLS文件,從而使得這些文件的散列值計算處理也如同M2TS文件一樣被忽略。
應該注意的是,在本實施例中,當將文件寫入到本地存儲器中生成籤名數據;然而,也可接受的是,當構建虛擬包時下載籤名數據本身,並且指定所下載的籤名數據。
在本實施例中,將對於該光碟而言唯一的密鑰信息用作加密/解密的密鑰;然而,也可接受的是,使用對於該光碟而言唯一的密鑰信息和從對於終端裝置而言唯一的密鑰信息中生成的信息,作為加密/解密的密鑰。
如迄今所述,根據本實施例,當通過將記錄在多個記錄介質上的文件進行合併來構建虛擬包時,採用對於該光碟而言唯一的密鑰來對在作為可寫/可讀記錄介質的本地存儲器中記錄的文件進行加密。可以防止,例如,在本地存儲器中的實體文件被另一光碟上的應用程式所重寫,或者防止通過將該本地存儲器插入到諸如個人計算機的另一裝置中進行的竄改。此外,由於採用對於該光碟而言唯一的密鑰對籤名數據進行加密並將其存儲,因此可以檢測對本地存儲器中的文件的竄改,並可以防止採用這些文件構建虛擬包。因此,可以防止由於已經被非法竄改的文件的使用導致的故障,和防止提供商不期望的非法使用。
第六實施例第六實施例討論了當正在構建虛擬包時,將文件從本地存儲器移動到另一記錄區域中的方法。
圖45示出了根據第六實施例,由虛擬文件系統單元38所執行的虛擬包構建的示例。在該圖的左上方,是在BD-ROM中的目錄-文件結構。在該圖的左下方是在構建虛擬包之前的本地存儲器中的目錄-文件結構。
在本實施例中的虛擬文件系統單元38將由更新請求方法的自變量所指定的目錄(在圖中的示例中為「ROOT/organization#1/disc#1/contsID#1」)下的文件移動到ACTIVE目錄下,並從BD-ROM和ACTIVE目錄中構建虛擬包。在該圖的右下方是在移動所述文件之後在本地存儲器中的目錄-文件結構。
ACTIVE目錄是與由更新請求方法的自變量所指定的光碟ID標識的BD-ROM一起構建虛擬包的目錄。應用程式不能直接將數據寫入到ACTIVE目錄中。
以下描述根據第六實施例的重放裝置的操作。首先,描述構建虛擬包的處理過程。
圖46是示出根據第六實施例,構建虛擬包的處理過程的流程圖。
在該流程圖與圖36所示流程圖之間的差異在於,分別將步驟S98和S99改變為步驟S151和S152。在步驟S151,執行用於將在本地存儲器中由自變量指定的目錄下的文件移動到ACTIVE目錄中的處理。在步驟S152,從ACTIVE目錄中和BD-ROM中的內容構建虛擬包。因此完成對構建虛擬包的處理過程的描述。
以下描述在步驟S151中的處理的細節。圖47是示出將文件移動到ACTIVE目錄中的處理過程的流程圖。
在該流程圖中,判斷在更新請求方法的自變量所指定的本地存儲器中的目錄下是否存在一個或多個文件(步驟S161),如果存在一個或多個文件(步驟S161是),則使用在所指定目錄中的所述一個或多個文件作為處理目標,執行步驟S162到S164的處理。
在步驟S162,判斷在目標文件的文件名中的第一個字符是否為「_」。在第一個字符為「_」的情況下(步驟S162是),將具有通過從該目標文件的文件名中提取出第一個字符「_」而獲得的文件名的文件,從ACTIVE目錄中刪除,並且將該目標文件本身也從所指定目錄中刪除(步驟S163)。在第一個字符不是「_」的情況下(步驟S162否),將該目標文件從所指定目錄移動到ACTIVE目錄中(步驟S164)。
對在所指定目錄下存在的所有文件執行步驟S162到步驟S164的處理,並且當在所指定目錄下不存在文件時(步驟S161否),終止處理。從而完成對將在本地存儲器中的指定目錄下的文件移動到ACTIVE目錄中的處理的細節描述。
應該注意的是,替代根據目標文件的文件名是否為「_」來從ACTIVE目錄中刪除文件,也可以接受的是,提供進行刪除預定(deletion reservation)的API。進行刪除預定的API用於使得Java應用程式能夠對在ACTIVE目錄中的文件進行刪除預定;然而,即使是該API進行了刪除預定,也不會立即刪除在ACTIVE目錄中的文件。虛擬文件系統單元38將文件刪除預定的內容存儲到存儲器中,並且當執行在AV目錄中的文件的移動處理時,通過刪除由所述刪除預定所指定的ACTIVE目錄中的文件,來執行步驟S162和S163中的替換處理。
以下描述由Java應用程式進行的寫入文件訪問的處理過程。
圖48是示出控制對文件的寫入訪問的API的處理過程的流程圖。當Java應用程式使用本地存儲器定位器的指定來請求寫入訪問時,判斷該寫入訪問是否是對在ACTIVE目錄下的文件之一進行的寫入訪問(步驟S171)。
當該寫入訪問是對在ACTIVE目錄下的文件之一進行的寫入訪問時(步驟S171是),將指示不允許對文件進行寫入的異常返回給Java應用程式,然後處理終止(步驟S172)。在其他情況中(步驟S171否),過程進入步驟S173。
在步驟S173,對本地存儲器中的文件進行寫入訪問。因此完成對文件的寫入訪問的處理過程的描述。
根據上述處理過程,在作為訪問目標的文件是構成虛擬包的文件,並且如果當作出訪問請求時正在構建虛擬包的情況下,將不會允許對該文件的訪問。
應該注意的是,以下安排也是可以接受的其中,在虛擬包構建處理過程中允許Java應用程式將數據寫入到ACTIVE目錄中,以便Java應用程式執行將文件移動到ACTIVE目錄中的處理。更具體而言,在圖47的流程圖中,虛擬文件系統單元38將在由Java應用程式指定的目錄下的文件移動到ACTIVE目錄中;然而,以下安排也是可接受的其中,在虛擬包構建處理過程中允許Java應用程式寫入ACTIVE目錄,以便將開始把文件移動到ACTIVE目錄的處理的事件通知給Java應用程式,並且Java應用程式自己將文件移動到ACTIVE目錄。
如迄今所述,根據本實施例,在通過將記錄在多個記錄介質中的文件進行合併來構建虛擬包的情況下,將在作為可讀/可寫記錄介質的本地存儲器中存儲的一個或多個文件移動到ACTIVE目錄中,應用程式不允許對ACTIVE目錄進行寫入訪問;因此,可以防止當正在構建虛擬包時,採用來自該應用程式本身或者其他應用程式的非法文件來改變文件。
第七實施例第七實施例描述了在來自相同提供商的BD-ROM之間共享本地存儲器中的內容的方法。在第七實施例的描述中,與在第六實施例中的相同部分的描述將被省略。
圖49示出了根據第七實施例的虛擬包的構建的示例。在該圖的左上方是在BD-ROM上的目錄-文件結構,在該圖的左下方是通過將構建虛擬包的文件移動到ACTIVE目錄中以便構建虛擬包,而獲得的在本地存儲器中的目錄-文件結構。
圖49與圖48的不同之處在於,ACTIVE目錄不僅存在於ROOT/organization#1/disc#1下,還存在於ROOT/organization#1/SHARED下。
SHARED目錄是能夠由任何被驗證的並且具有公共組織ID的應用程式從中讀出數據和將數據寫入的目錄。
在需要將從伺服器下載的文件作為公共使用的文件,來用於為具有不同光碟ID的多個BD-ROM構建虛擬包的情況下,將所下載文件保存在ROOT/organization#1/SHARED目錄下而不是ROOT/organization#1/disc#1目錄下。在SHARED目錄下的目錄結構與disc ID目錄下的目錄結構相同。對ACTIVE目錄的操作也與第六實施例中所述相同。然而,應該注意的是,當要構建虛擬包時,不僅僅將在disc#1目錄下的ACTIVE目錄中的文件,而且將在SHARED目錄下的ACTIVE目錄下的文件合併來構建虛擬包。
本實施例的虛擬文件系統單元38將同時存在於本地存儲器的SHARED目錄下和本地存儲器的disc ID目錄下的一個或多個文件,作為在虛擬包中使用的文件記載到虛擬包信息中。另外,在具有相同名稱的文件存在於以下的任意組合的情況下(i)BD-ROM上,(ii)本地存儲器的SHARED目錄下,以及(iii)本地存儲器的disc ID目錄下,(例如,0002.CLPI同時存在於BD-ROM上和本地存儲器的disc#1目錄下),虛擬文件系統單元38使用本地存儲器中的文件作為用於虛擬包構建的文件。在具有相同名稱的文件存在於以下全部中的情況下(i)BD-ROM上,(ii)本地存儲器的SHARED目錄下,以及(iii)本地存儲器的disc ID目錄下,虛擬文件系統單元38使用在discID目錄下的文件進行虛擬包構建。遞歸地對每個子目錄重複進行這種合併處理。
圖50示意性地示出了如何使用在SHARED目錄下的ACTIVE目錄和在disc#1目錄下的ACTIVE目錄來構建虛擬包。當虛擬包被構建時,將在SHARED目錄下的ACTIVE目錄中的文件與在BD-ROM上的文件進行合併,從而生成中間文件結構。該合併操作與在第四實施例中所述相同。隨後,將該中間文件結構與在disc#1目錄下的ACTIVE目錄中的文件進行合併。從而通過將BD-ROM、在SHARED目錄下的ACTIVE目錄中的文件、以及在disc#1目錄下的ACTIVE目錄中的文件進行合併來構建虛擬包。該中間文件結構與在disc#1目錄下的ACTIVE目錄中的文件進行合併,是通過在將該中間文件結構看作BD-ROM的同時執行第四實施例中的合併操作來實現的。換而言之,在具有相同名稱的文件同時存在於中間文件結構和discID下的ACTIVE 錄中的情況下,disc#1目錄下的ACTIVE目錄具有最終優先級別。因此,優先級別按以下順序升高BD-ROM、在SHARED目錄下的ACTIVE目錄、以及在disc#1目錄下的ACTIVE目錄。
可替換地,也可接受的是,將SHARED目錄下的ACTIVE目錄的優先級別降低,來構建虛擬包;即,優先級別按以下順序升高在SHARED目錄下的ACTIVE目錄、BD-ROM、以及在disc#1目錄下的ACTIVE目錄。這意味著在具有相同的名稱的文件同時存在於BD-ROM上和在本地存儲器的SHARED目錄下的情況下,使用在BD-ROM上的文件。參考圖49進行解釋,儘管00002.JAR和00002.CLPI同時存在於BD-ROM上和本地存儲器中,對於00002.JAR,由於其在本地存儲器中的SHARED目錄下的ACTIVE目錄中,因此使用在BD-ROM上的00002.JAR;對於00002.CLPI,因為其在本地存儲器中的disc#1目錄下的ACTIVE目錄中,因此使用在本地存儲器中的00002.CLPI。在對SHARED目錄下的ACTIVE目錄的訪問限制微弱,並且存在第三方企圖通過將惡意文件放置在SHARED目錄下來非法地替換在BD-ROM上的文件的情況下,採用這種方式設定優先級別是有效的。
通過將在SHARED目錄下的ACTIVE目錄的優先級別降低到BD-ROM之下,可以禁止BD-ROM上的文件被替換,從而僅僅允許添加新文件。因此,可以增強安全級別。
應該注意的是,也可以接受的是,在BD-ROM上或者在SHARED目錄下的ACTIVE目錄中,提供定義有關在SHARED目錄下的ACTIVE目錄的優先級別是高於還是低於BD-ROM的優先級別的優先級別信息的文件。
上述虛擬包的構建是通過發布更新請求方法來實現的,更新請求方法指定以下作為自變量(i)其中記錄有要在多個BD-ROM的虛擬包之間進行共享的文件的目錄路徑(在圖49的示例中為「ROOT/organization#1/SHARED/contsID#3」),(ii)其中記錄有對於由光碟ID所標識的BD-ROM的虛擬包而言唯一的文件的目錄路徑(在圖49中的示例中為「ROOT/organization#1/disc#1/contsID#1」),以及(iii)光碟ID。
以下描述根據本發明的第七實施例的重放裝置的操作。首先,解釋構建虛擬包的處理過程。
圖51是示出根據第七實施例的構建虛擬包的處理過程的流程圖。圖51的流程圖與圖36的流程圖之間的差異在於,將步驟S98和S99改變為步驟S181到S184。
在步驟S181,執行以下處理,將在由自變量指定的、作為要在多個BD-ROM之間進行共享的文件的文件記錄目的地的本地存儲器中的目錄下所存儲的文件,移動到在SHARED目錄下的ACTIVE目錄中。採用與圖47所示的過程相同的方式執行移動文件的處理。在步驟S182,使用在SHARED目錄下的ACTIVE目錄中和BD-ROM中的內容構建中間文件結構。在步驟S183,執行以下處理,將由自變量指定的、作為唯一性文件的文件記錄目的地的目錄下所存儲的文件,移動到在discID目錄下的ACTIVE目錄中。採用與圖47所示的過程相同的方式執行移動文件的處理。在步驟S184,將在discID目錄下的ACTIVE目錄中所存儲的內容與在步驟S182中構建的中間文件結構進行合併,從而構建虛擬包。因此完成對虛擬包創建的處理過程的描述。
應該注意的是,以下的順序可以顛倒(i)在步驟S182中的使用在SHARED目錄下的ACTIVE目錄和BD-ROM構建中間文件結構的步驟,以及(ii)在步驟S183中的將文件移動到discID目錄下的ACTIVE目錄中的步驟。
接下來,以下參考圖52詳細描述圖51所示的步驟S182中的處理。當將在SHARED目錄下的ACTIVE目錄中的文件與在BD-ROM上的文件進行合併時,則首先在步驟S191,將或者存儲在BD-ROM上或者存儲在discID目錄中,並且在其中寫入優先級別信息的文件讀出,以便檢查SHARED目錄和BD-ROM的優先級別。在SHARED目錄的優先級別較高的情況下(步驟S191是),過程進入步驟S192,獲得示出在SHARED目錄下的ACTIVE目錄中的文件的文件列表。隨後,對在BD-ROM上記錄的所有文件中的每一個重複執行步驟S193到S195的循環處理。
在步驟S194,將記錄在BD-ROM上的、還沒有被處理的文件中的一些的文件名作為處理目標進行檢查,判斷在步驟S192中獲得的文件列表是否包含與每個處理目標具有相同文件名的文件(步驟S193)。在文件列表不包含與處理目標具有相同文件名的文件的情況下(步驟S193否),將該處理目標文件的文件名添加到文件列表(步驟S195)。對在BD-ROM上記錄的所有文件中的每一個都進行在步驟S194和S195中的處理,並且當檢查完所有文件時(步驟S193是),將所獲得的文件列表作為中間文件結構,完成處理。
另一方面,在步驟S191中BD-ROM的優先級別比SHARED目錄高的情況下,過程進入步驟S196,獲得記錄在BD-ROM上的文件的列表。隨後,對在SHARED目錄下的ACTIVE目錄中的所有文件的每一個都重複執行在步驟S197到S199中的循環處理。
在步驟S198中,在SHARED目錄下的ACTIVE目錄中的文件中,將還沒有被處理的文件中的一些的文件名作為處理目標進行檢查,判斷在步驟S196中獲得的文件列表是否包含與每個處理目標具有相同文件名的文件。在文件列表不包含與處理目標具有相同文件名的文件的情況下(步驟S198否),將該處理目標文件的文件名添加到文件列表(步驟S199)。對在SHARED目錄下的ACTIVE目錄中所記錄的所有文件中的每一個都進行在步驟S198和S195中的處理,並且當檢查完所有文件時(步驟S197是),將所獲得的文件列表作為中間文件結構,完成處理。因此完成用於構建中間文件結構的過程。
應該注意的是,也可接受的是,預先確定預設優先順序,從而如果不存在指示優先級別信息的文件時,使用該預設優先順序。
圖53是更詳細地示出圖51的步驟S184中執行的處理的流程圖。首先,在步驟S201,獲得在discID目錄下的ACTIVE目錄中的文件的文件名列表。在步驟S203,檢查在圖51中的步驟S182中獲得的中間文件結構的文件列表中所包含的文件名。在沒有具有相同文件名的文件的情況下,將中間文件結構中的文件的文件名添加到步驟S204中的列表中。對在中間文件結構中的所有文件中的每一個進行步驟S203和S204的處理,當在步驟S202判定檢查完所有文件時,將所獲得的文件列表作為虛擬包的文件結構列表,然後處理結束。因此完成對採用中間文件結構構建虛擬包的處理過程的描述。
如迄今所述,根據本實施例,在通過將記錄在多個記錄介質上的文件進行合併來構建虛擬包的情況下,將記錄在作為可讀/可寫記錄介質的HDD上的文件移動到ACTIVE目錄中;因此,就不會存在以下可能性在正在構建虛擬包時,由於該應用程式本身或者其他應用程式進行的非法文件訪問,導致在本地存儲器中所存儲的實體文件被改變。此外,通過在屬於同一提供商的Java應用程式能夠公共訪問的位置處提供ACTIVE目錄,就可以使得不同BD-ROM能夠共享在本地存儲器中所存儲的內容。因此,本地存儲器不需要存儲具有很大文件大小的、相同實體的多個AV流等等。因此,就可以在BD-ROM之間有效地共享和利用數據。
第八實施例第八實施例描述了在本地存儲器中所存儲的用於構建虛擬包的文件被竄改的情況,用於檢測竄改的一種方法。在第八實施例中,與第三實施例相同部分的描述被省略。將僅僅描述與第三實施例不同的部分。
當要用於構建虛擬包的本地存儲器中的文件被竄改時,存在當重放虛擬包時執行提供商不期望的操作的可能性。因此,必須檢測竄改。
為了檢測竄改,根據本實施例的重放裝置在將要構建虛擬包時,檢查合併管理信息文件是否被竄改,並且當讀出文件時,檢查在HDD上的文件是否被竄改。
在構建虛擬包之後,在虛擬包的重放過程中,虛擬文件系統單元38有時可能提供存儲在本地存儲器中的一些文件用於DVD-like模塊29a、Java平臺29b、重放控制引擎32等等。因為這些文件存儲在本地存儲器中,因此在所述文件被所述模塊使用之前,必須檢查其是否未被竄改。可以將構建虛擬包的本地存儲器中的文件按照竄改檢查的必要性分為兩種類型。
第一種類型是每個都具有小的文件大小的數據文件,其通常在響應重放裝置時不會造成任何問題,即使是對整個文件檢查竄改也是如此。例如,通常將「合併管理信息文件」分類到這種類型。
第二種類型是每個都具有很大文件大小的數據文件,其在響應重放裝置時可能造成問題,這是因為對整個文件進行檢查需要很長時間。例如,通常將MPEG流中的「AV數據(M2TS文件)」分類到這種類型。
以下描述在被分類到第一種類型的文件中的竄改檢查。在結尾,將描述與對分類到第二種類型的文件執行檢查的情況之間的差異。
圖54是示出虛擬文件系統單元38將在本地存儲器中的文件提供給另一模塊的流程圖。在步驟S211,檢查所請求文件是否存在於本地存儲器中。在所請求文件在本地存儲器中時(步驟S211是),在步驟S212中從本地存儲器中獲得該文件。隨後,在步驟S213中,檢查目標文件的散列值是否被寫入到合併管理信息文件中。在散列值被寫入到合併管理信息文件中的情況下(步驟S213是),在步驟S214計算該文件的散列值,並將所計算的值與在合併管理信息文件中所寫入的值進行比較,以判斷所述值是否彼此相等。
在所計算的值與在合併管理信息文件中所寫入的值不相等的情況下(步驟S214否),在實際中將不執行該文件的加載。在步驟S211的判斷結果是該文件不存在於本地存儲器中時(步驟S211否),在步驟S215從BD-ROM獲得該文件。隨後,實際在步驟S216中加載該文件,從而使得其他模塊能夠使用該文件。類似地,在散列值沒有寫入合併管理信息文件(步驟S213否)和所計算的值等於在合併管理信息文件中所寫入的值的情況下(步驟S214),實際在步驟S216中加載該文件,從而使得其他模塊能夠使用該文件。
應該注意的是,在虛擬文件系統單元38多次從本地存儲中讀出文件的情況下,可能在每次讀出該文件時都執行竄改檢查。還可以接受的是,在執行竄改之後,鎖定該文件,從而使得在本地存儲器中的信息不會被改變。
此外,以下安排也是可以接受的其中,虛擬文件系統單元38對要被其他模塊所使用的一些或者全部文件預先執行竄改檢查,並將被檢查的文件存儲在虛擬文件系統單元38或者鎖定被檢查文件。只要作出如下安排在從本地存儲器中讀出文件之後,在其他模塊使用該文件之前計算該文件的散列值以檢查竄改,就可以接受以任何方式實現該安排。
當檢測到要被其他模塊所使用的文件已經被竄改時,虛擬文件系統單元38暫停重放,從而使得將不會發生故障。在該情況下,可以接受的是,除了暫停重放之外,還通知用戶或者通過Java平臺29b通知Java應用程式,或者僅僅使用BD-ROM再次執行重放。可替換地,將這些處理中任意處理進行組合也是可以接受的。
對於每一個都具有很大文件大小,並且在響應重放裝置時由於對整個文件進行檢查需要很長時間的文件而言,使用一種方法來加密整個文件,從而使得在該文件被竄改之後不能被解密。在該情況下,以下安排也是可接受的其中,即使是將被加密文件的散列值寫入到合併管理信息文件中,虛擬文件系統單元38也將其忽略,這是因為在被加密文件的一部分被竄改時,不可能將該文件解密為可靠文件。
可替換地,還可接受的是,僅僅對該文件的一部分檢查竄改,或者僅僅檢查該文件的大小。在對整個文件進行加密的情況下,存在整個文件可能被另一文件所替換的可能性。在這種情況下,通過檢查該文件的大小,可以容易地執行竄改檢查。還可以接受的是設定一種情況,在該情況下,虛擬文件系統單元38忽略所寫入的散列值。例如,在該文件的大小大於特定值的情況下,或者在合併管理信息文件中所包含的文件名中的擴展名是特定值,例如.M2TS,的情況下,或者在合併管理信息文件中所包含的文件名是在特定目錄下,例如STREAM目錄,的情況下,忽略所寫的散列值。
如迄今所述,根據本實施例,當通過對記錄在多個記錄介質上的文件進行合併來構建虛擬包時,如果在作為可讀/可寫記錄介質的本地存儲器中的實體文件已經被竄改,則可以判斷散列值是否正確並檢測實體文件的竄改,以便暫停重放。因此,可以在可能由於使用非法文件造成的故障發生之前,將其避免。
第九實施例第九實施例描述了用於在屏幕上顯示虛擬包構建處理的狀態的一種方法。在第九實施例的描述中,與第三實施例相同部分的描述被省略。將僅僅描述與第三實施例不同的部分。
圖55示意性地示出了根據第九實施例,在虛擬包構建處理過程中的顯示。
重放裝置610示意性地表示重放裝置的外部面貌。內置在重放裝置610中的BD-ROM驅動器611加載和退出BD-ROM以及訪問BD-ROM。在重放裝置610的前面提供了螢光管顯示設備612,其用於示出正在執行虛擬包構建處理,並且用作彩色顯示單元,並且其通過顯示顏色(例如,用橙色顯示)來指示正在執行虛擬包構建處理。在重放裝置610的前面提供了螢光管顯示設備613,其用於通過改變所顯示區域的比例來示出在與虛擬包構建相關的處理中,例如在驗證處理中,的進度,並且其通過改變由來自螢光管的光所顯示的區域的比例來指示虛擬包構建處理的進度。通過有線等等將諸如TV之類的顯示裝置614的輸入單元(圖中未示出)連接到重放裝置610的輸出單元(圖中未示出),並在屏幕上顯示從重放裝置610輸出的圖像。重放裝置610將指示正在執行虛擬包構建的屏幕顯示615輸出到顯示裝置614,作為彈出消息面板等等,從而將其覆蓋在內容重放顯示屏幕上來進行顯示。
作為彈出顯示的屏幕顯示615包括屏幕顯示616,其通過改變所顯示區域的比例,來顯示與虛擬包構建有關的處理,例如驗證處理,的進度,所述所顯示區域通過改變在顯示裝置614的屏幕上的條形的比例,來視覺性地指示虛擬包構建處理的進度。
圖56示意性地示出根據第九實施例,在虛擬包構建處理中的一個失敗的顯示。與圖55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在重放裝置610的前面提供了螢光管顯示617,其用於指示在虛擬包構建處理中的失敗,並且通過顯示顏色(例如,用紅色顯示)來指示虛擬包構建處理已經失敗。在虛擬包構建處理已經失敗的情況下,重放裝置610將指示虛擬包構建處理失敗的屏幕顯示618輸出到顯示裝置614,作為彈出消息面板等等,從而將其覆蓋在內容重放顯示屏幕上來進行顯示。
圖57示意性地示出了根據第九實施例,在虛擬包構建處理中的成功的顯示。與圖55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在重放裝置610的前面提供了螢光管顯示619,其用於指示在虛擬包構建處理中的成功,並且通過顯示顏色(例如,用綠色顯示)來指示虛擬包構建處理已經成功。在虛擬包構建處理已經成功的情況下,重放裝置610將指示虛擬包構建處理成功的屏幕顯示620輸出到顯示裝置614,作為彈出消息面板等等,從而將其覆蓋在內容重放顯示屏幕上來進行顯示。
以下描述當正在構建虛擬包時,在屏幕上顯示構建處理的狀態的過程。圖32是示出對與虛擬包構建處理相關的顯示進行更新的處理過程的流程圖。
該流程圖是通過從圖44所示的流程圖中取出在步驟S131到S135中的處理過程,並加入在步驟S222和S223中的處理過程而獲得的。
在步驟S221,將顯示轉換到圖55所示的正在執行虛擬包處理的顯示。在步驟S222,將顯示轉換到圖56所示的虛擬包處理已經失敗的顯示。在步驟S223,將顯示切換到圖27所示的虛擬包處理已經成功的顯示。還可以接受的是,在執行步驟S222中的處理或者在步驟S223中的處理之後,在指示虛擬包構建的狀態的屏幕顯示的輸出完成之前,將該顯示在屏幕上示出一段預定時間,並且執行正常的內容重放。
圖59示出了根據第九實施例,在本地存儲器中所存儲的內容的列表的顯示。與圖55相同的部分的描述將省略。將僅僅描述與圖55不同的部分。在本地存儲器中所存儲的內容列表的屏幕顯示621,是用於在顯示裝置614上顯示在虛擬包管理表中所管理的本地存儲器中的內容列表的圖像。示出了在該內容列表的虛擬包構建處理中已經失敗的內容的屏幕顯示622是用於通過在屏幕顯示621中的圖標,來向用戶指示在籤名驗證中內容已經失敗,所述屏幕顯示621用於本地存儲器中的內容列表的屏幕顯示。屏幕顯示623示出了在該內容列表的虛擬包構建處理中已經成功的內容,所述屏幕顯示623是用於通過在屏幕顯示621中的圖標,來向用戶指示在籤名驗證中內容已經成功,所述屏幕顯示621用於本地存儲器中的內容列表的屏幕顯示。
應該注意的是,在本實施例中,將在虛擬包構建處理中已經失敗的內容通知給用戶;然而,以下安排也是可以接受的其中,系統自動刪除這種內容。
其他修改示例迄今已經根據上述實施例示例描述了本發明。然而,不言而喻,本發明並不局限於上述實施例示例。本發明包括如下所述的其他示例。
(1)本發明可以構建為上述的方法。可替換地,本發明可以構建為電腦程式,所述電腦程式使用從這種電腦程式轉換的計算機或者數位訊號來實現所述方法。
另外,可接受的是,本發明構建為計算機可讀記錄介質,例如軟盤、硬碟、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(藍光光碟)或者半導體存儲器,所述計算機可讀記錄介質上記錄有這種電腦程式和這種數位訊號;或者本發明構建為所述記錄介質上所記錄的這種電腦程式或者這種數位訊號。
此外,可以通過經由通信網、無線或有線通信線、諸如網際網路之類的網絡等等傳輸這種電腦程式或者這種數位訊號,來實現本發明。
此外,可接受的是,認為本發明是包括微處理器和存儲器的計算機系統,其中,所述存儲器中存儲上述電腦程式,並且所述微處理器根據所述電腦程式工作。
此外,可接受的是,通過輸送記錄在所述記錄介質上的程序或者數位訊號,或者經由上述網絡等等進行輸送,來基於計算機系統執行所述程序或數位訊號。
(2)在第一到第九實施例中,將Java(註冊商標)用作虛擬機的程式語言。然而,採用用作UNIXTM的OS的B-shell、Perl腳本、ECMA腳本等等來取代JavaTM程式語言也是可以接受的。換而言之,本發明並不局限於JavaTM。
(3)在第一到第九實施例中,在用於存儲文件的本地存儲器中的結構具有與BD-ROM上相同的目錄結構;然而,只要清晰地表示文件之間的對應關係,本發明就不局限於採用相同的目錄結構的情況。
(4)在第一到第九實施例中,將HDD用作可讀/可寫記錄介質;然而,使用快閃記憶體等等作為可讀/可寫記錄介質也是可接受的。
(5)在第一到第九實施例中,描述了具有對記錄介質進行重放功能的重放裝置;然而,不言而喻,本發明可以應用於不僅僅具有重放功能還具有記錄功能的重放裝置。
(6)在第一到第九實施例中,描述了重放BD-ROM的重放裝置;然而,不言而喻,在以上實施例所述的記錄在BD-ROM上的必要數據被記錄在可寫光學記錄介質上的情況下,也能夠實現相同的效果。
此外,不言而喻,在以上實施例所述的記錄在BD-ROM上的必要數據被記錄在取代光學記錄介質的可攜式記錄介質(例如,諸如SD卡、或者小型快閃記憶體(CF)之類的半導體存儲器)上的情況下,也能夠實現相同的效果。
(7)可以接受的是,將任意所述實施例和修改示例進行組合。
工業適用性能夠應用本發明的示例包括,諸如BD-ROM播放器之類的重放裝置,在所述重放裝置上安裝了HDD,並且所述重放裝置通過採用記錄在可讀/可寫記錄介質上的內容對記錄在只讀記錄介質上的內容進行擴展,來執行重放。
權利要求
1.一種用於重放相互結合的應用程式和數字流的重放裝置,所述重放裝置包括讀出單元,其用於讀出在安放於所述重放裝置上的只讀記錄介質上記錄的文件;存儲單元,其中存儲(i)多個文件,(ii)合併管理信息,其從所述多個文件中指定要與在所述只讀記錄介質上記錄的內容組合使用的文件,以及(iii)籤名信息,其用於判斷所述合併管理信息的可靠性;判斷單元,其用於根據所述籤名信息判斷所述合併管理信息的可靠性;包管理單元,其用於(a)在所述合併管理信息被判斷為可靠的情況下,生成包信息,所述包信息指示通過將所述合併管理信息所指定的文件加入到所述只讀記錄介質的文件結構中而獲得的新文件結構,以及(b)在所述合併管理信息被判斷為不可靠的情況下,不生成指所述新文件結構的所述包信息;重放單元,其用於根據由所述包管理單元生成的所述包信息,重放記錄在所述只讀記錄介質上或者存儲在所述存儲單元中的所述數字流;以及執行單元,其用於根據由所述包管理單元生成的所述包信息,執行記錄在所述只讀記錄介質上或者存儲在所述存儲單元中的所述應用程式。
2.如權利要求1所述的重放裝置,其中一旦將所述只讀記錄介質安放到所述重放裝置上,就執行由所述判斷單元進行的判斷和由所述包管理單元進行的所述包信息的生成。
3.如權利要求2所述的重放裝置,其中所述合併管理信息包括指示所指定文件的散列值的散列信息,並且(a)在由所指定文件計算得到的散列值等於在所述散列信息中指示的所述散列值的情況下,所述重放單元和所述執行單元訪問所指定文件,反之(b)在從所指定文件計算得到的所述散列值不等於在所述散列信息中指示的所述散列值的情況下,所述重放單元和所述執行單元不訪問所指定文件。
4.如權利要求1所述的重放裝置,其中當由所述執行單元執行的所述應用程式請求應該更新所述包信息時,執行由所述判斷單元進行的判斷。
5.如權利要求4所述的重放裝置,其中所述合併管理信息包括指示所指定文件的散列值的散列信息,以及(a)在從所指定文件計算得到的散列值等於在所述散列信息中指示的所述散列值的情況下,所述重放單元和所述執行單元訪問所指定文件,反之(b)在從所指定文件計算得到的所述散列值不等於在所述散列信息中指示的所述散列值的情況下,阻止所述重放單元和所述執行單元訪問所指定文件。
6.如權利要求1所述的重放裝置,其中所述籤名信息包括通過使用預定密鑰對所述合併管理信息的第一散列值進行加密而獲得的加密散列值,所述第一散列值預先使用預定算法被計算,以及所述判斷單元採用用於對使用所述預定密鑰加密的信息進行解密的公鑰來對所述加密散列值進行解密,使用所述預定算法計算所述合併管理信息的第二散列值,並在從所述解密中得到的所述第一散列值等於從所述計算中得到的所述第二散列值的情況下,判定所述合併管理信息是可靠的。
7.如權利要求1所述的重放裝置,其中在所述合併管理信息被判定為不可靠的情況下,所述包管理單元還生成指示所述只讀記錄介質的所述文件結構的包信息。
8.如權利要求1所述的重放裝置,其中在生成所述包信息之前,所述包管理單元將由所述合併管理信息指定的所述文件的屬性設定為只讀屬性。
9.如權利要求1所述的重放裝置,其中(a)在所述合併管理信息包括指示由所述合併管理信息指定的預定文件的散列值的散列信息的情況下,如果從所述預定文件中計算得到的散列值不等於由所述散列信息指示的所述值,則阻止所述重放單元和所述執行單元訪問所述預定文件;以及(b)在所述合併管理信息不包括指示所述預定文件的散列值的所述散列信息的情況下,不阻止所述重放單元和所述執行單元訪問所述預定文件。
10.如權利要求1所述的重放裝置,還包括彩色顯示單元,其用於在所述包管理單元正在生成所述包信息時,採用一種或多種顏色進行顯示。
11.如權利要求1所述的重放裝置,包括輸出單元,其用於將信息輸出到顯示裝置,其中在所述包管理單元正在生成所述包信息時,所述重放裝置發出信號,以將所期望的信息輸出到所述顯示裝置的顯示屏幕。
12.如權利要求11所述的重放裝置,其中所期望的信息指示由所述包管理單元進行的所述包信息生成的進度。
13.一種用於重放相互結合的應用程式和數字流的重放方法,其中只讀記錄介質上記錄有第一組文件;可讀/可寫記錄介質上記錄有第二組文件、合併管理信息、以及用於判斷所述合併管理信息的可靠性的籤名信息,所述合併管理信息從所述第二組文件中指定要與記錄在所述只讀記錄介質上的內容組合使用的文件,並且所述重放方法包括判斷步驟,其根據所述籤名信息判斷所述合併管理信息的可靠性;包生成步驟,其(a)在所述合併管理信息被判斷為可靠的情況下,生成包信息,所述包信息指示通過將所述合併管理信息指定的所述文件加入到所述只讀記錄介質的文件結構中而獲得的新文件結構,以及(b)在所述合併管理信息被判斷為不可靠的情況下,不生成指示所述新文件結構的所述包信息;重放步驟,其根據所生成的包信息,重放記錄在所述只讀記錄介質上或者記錄在所述可讀/可寫記錄介質上的所述數字流;以及執行步驟,其根據所生成的包信息,執行記錄在所述只讀記錄介質上或者記錄在所述可讀/可寫記錄介質上的所述應用程式。
全文摘要
在本地存儲器(18)中,有多個文件,合併管理信息從所述多個文件中指定要與記錄在只讀記錄記錄介質上的內容結合使用的文件,以及籤名信息用於判斷所述合併管理信息的可靠性。虛擬文件系統單元(38)根據所述籤名信息判斷所述合併管理信息的可靠性。在所述合併信息被判斷為是可靠的情況下,虛擬文件系統單元(38)生成包信息,所述包信息指示通過將所述合併管理信息所指定的文件加入到所述只讀記錄介質的文件結構中而獲得的新文件結構。
文檔編號G11B20/00GK1998048SQ20058002456
公開日2007年7月11日 申請日期2005年7月19日 優先權日2004年7月22日
發明者大蘆雅弘, 田中敬一, 大戶英隆, 傑爾馬諾·萊克森林 申請人:松下電器產業株式會社