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

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

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

      再現(xiàn)設(shè)備、再現(xiàn)方法、再現(xiàn)程序、記錄介質(zhì)和數(shù)據(jù)結(jié)構(gòu)的制作方法

      文檔序號(hào):7949224閱讀:264來(lái)源:國(guó)知局
      專利名稱:再現(xiàn)設(shè)備、再現(xiàn)方法、再現(xiàn)程序、記錄介質(zhì)和數(shù)據(jù)結(jié)構(gòu)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及當(dāng)從大容量記錄介質(zhì)中再現(xiàn)節(jié)目時(shí)允許適當(dāng)?shù)睾妥詣?dòng)地選擇音頻流和字幕流的再現(xiàn)設(shè)備、再現(xiàn)方法、再現(xiàn)程序、記錄介質(zhì)和數(shù)據(jù)結(jié)構(gòu)。
      背景技術(shù)
      作為可隨機(jī)存取的、可附連-可拆卸(attachable-detachable)記錄介質(zhì),數(shù)字多功能盤(DVD)已經(jīng)被使用多年了。近年來(lái),已經(jīng)開發(fā)了具有比DVD更大的記錄容量的盤形記錄介質(zhì)和比DVD更小的另一種盤形記錄介質(zhì)。
      已經(jīng)將包含諸如電影、戲劇、音樂會(huì)之類的視頻和音頻內(nèi)容的這種記錄介質(zhì)作為銷售包(sell package)進(jìn)行銷售。在這些單元包中,可以將不同語(yǔ)言的多個(gè)音頻和字幕流記錄作為一個(gè)節(jié)目?jī)?nèi)容。例如,在DVD視頻標(biāo)準(zhǔn)中,將視頻流、不同語(yǔ)言的多個(gè)音頻流和不同語(yǔ)言的多個(gè)字幕流復(fù)用作為一個(gè)運(yùn)動(dòng)圖像專家組2(MPEG)節(jié)目流。
      在外國(guó)(例如,美國(guó))創(chuàng)作的電影內(nèi)容可以包含不同語(yǔ)言的多個(gè)音頻流,例如作為原始語(yǔ)言的英語(yǔ)的音頻和作為日語(yǔ)配音音頻流(Japanese dubbed audiostream)的日語(yǔ)音頻流,以及作為英語(yǔ)字幕流和日語(yǔ)字幕流的多個(gè)字幕流。
      在DVD視頻標(biāo)準(zhǔn)中,當(dāng)電影內(nèi)容包含不同語(yǔ)言的多個(gè)音頻流和不同語(yǔ)言的多個(gè)字幕流時(shí),用戶可以選擇要被再現(xiàn)的流。例如,用戶可以有能力選擇日語(yǔ)配音版本的音頻流和英語(yǔ)版本的字幕流。作為另一個(gè)例子,用戶可以有能力選擇日語(yǔ)配音版本的音頻流而不選擇字幕流。
      DVD播放器設(shè)備具有自動(dòng)選擇功能,該功能允許將優(yōu)先的語(yǔ)言初始設(shè)置為語(yǔ)言預(yù)設(shè)信息,并且根據(jù)語(yǔ)言預(yù)設(shè)信息自動(dòng)地選擇字幕流而不需要用戶的選擇。此外,DVD播放器帶有這樣的功能根據(jù)除了初始設(shè)置之外的內(nèi)容的再現(xiàn)歷史和再現(xiàn)路徑來(lái)選擇要被再現(xiàn)的下一個(gè)流。
      隨后,將簡(jiǎn)要描述基于DVD視頻標(biāo)準(zhǔn)的現(xiàn)存音頻流選擇功能。如上所述,使用DVD播放器設(shè)備,可以初始設(shè)置所選擇并且優(yōu)先再現(xiàn)的音頻。當(dāng)例如有日語(yǔ)用戶使用DVD播放器設(shè)備時(shí),通常將音頻初始設(shè)置到“日語(yǔ)”。在裝置設(shè)置中,當(dāng)DVD播放器設(shè)備再現(xiàn)例如美國(guó)電影或者法語(yǔ)電影時(shí),只要已經(jīng)記錄了日語(yǔ)音頻流,就優(yōu)先地自動(dòng)選擇日語(yǔ)配音版本的音頻流。
      相反,某些用戶想要聽到創(chuàng)作內(nèi)容的原始語(yǔ)言的音頻。例如,好像用戶可能想要觀看帶有創(chuàng)作內(nèi)容的原始語(yǔ)言的音頻的電影內(nèi)容以及用戶的母語(yǔ)的翻譯版本的字幕。例如,當(dāng)日語(yǔ)用戶觀看在美國(guó)創(chuàng)作的電影內(nèi)容時(shí),用作為創(chuàng)作內(nèi)容的原始語(yǔ)言的英語(yǔ)的音頻和作為用戶的母語(yǔ)的日語(yǔ)的字幕來(lái)再現(xiàn)電影內(nèi)容。當(dāng)用戶觀看通過(guò)以這種方式選擇音頻和語(yǔ)言的內(nèi)容時(shí),他或者她可以在接近原創(chuàng)的氛圍中享受該內(nèi)容。
      日本專利申請(qǐng)公開No.2003-46951公開了具有這些模式的再現(xiàn)裝置選擇要被再現(xiàn)的音頻的語(yǔ)言并且不顯示字幕的模式、默認(rèn)地設(shè)置要被再現(xiàn)的音頻并且選擇字幕語(yǔ)言的模式、和選擇音頻、字幕和菜單的語(yǔ)言以便可以容易地設(shè)置語(yǔ)言的模式。
      然而,現(xiàn)存的DVD視頻標(biāo)準(zhǔn)不具有表示所記錄的音頻流的語(yǔ)言是否為創(chuàng)作內(nèi)容的原始語(yǔ)言的機(jī)制。因此,當(dāng)再現(xiàn)盤的內(nèi)容時(shí)不能自動(dòng)地選擇原始語(yǔ)言。所以,作為現(xiàn)有技術(shù)的問(wèn)題,當(dāng)從盤再現(xiàn)內(nèi)容的任何時(shí)候,用戶都需要改變音頻的設(shè)置。
      當(dāng)從盤中再現(xiàn)作為原始語(yǔ)言的除了日語(yǔ)以外(例如,法語(yǔ))的內(nèi)容時(shí),用戶需要參照附連到盤上的包裝或小冊(cè)子來(lái)獲知在盤上記錄的內(nèi)容的原始語(yǔ)言。在用戶知道了原始語(yǔ)言之后,他或者她需要時(shí)間來(lái)幾次按下播放器設(shè)備的語(yǔ)言選擇按鈕,直到選擇原始語(yǔ)言為止。
      在這種情況下,當(dāng)將要被再現(xiàn)的音頻的優(yōu)先語(yǔ)言在播放器設(shè)備的初始設(shè)置中預(yù)設(shè)為例如法語(yǔ)時(shí),只有當(dāng)從盤中再現(xiàn)內(nèi)容時(shí),才自動(dòng)地選擇法語(yǔ)的音頻。然而,當(dāng)從原始語(yǔ)言是另一種語(yǔ)言(例如英語(yǔ))的盤中再現(xiàn)內(nèi)容時(shí),用戶需要改變播放器設(shè)備的初始設(shè)置。因此,用戶感到非常不方便。

      發(fā)明內(nèi)容
      因此,本發(fā)明的目的是提供允許當(dāng)從盤中再現(xiàn)內(nèi)容時(shí)適當(dāng)?shù)睾妥詣?dòng)地選擇音頻和字幕的再現(xiàn)設(shè)備、再現(xiàn)方法、再現(xiàn)程序、再現(xiàn)介質(zhì)和數(shù)據(jù)結(jié)構(gòu)。
      為了解決上述問(wèn)題,本發(fā)明是從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)設(shè)備,其包括讀取裝置,用于從其上已經(jīng)記錄了包含至少視頻流、與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)和用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序的記錄介質(zhì)中讀取數(shù)據(jù);播放器裝置,用于根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和第一模式設(shè)置裝置,用于將第一模式設(shè)置為播放器模式,以便當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)從一個(gè)或多個(gè)音頻流中自動(dòng)地選擇原始語(yǔ)言的音頻流。
      此外,本發(fā)明是從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)方法,該方法包括步驟從其上已經(jīng)記錄了包含至少視頻流、與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)和用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序的記錄介質(zhì)中讀取數(shù)據(jù);根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和將第一模式設(shè)置到內(nèi)容再現(xiàn)步驟,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)從該一個(gè)或多個(gè)音頻流中自動(dòng)地選擇原始語(yǔ)言的音頻流。
      此外,本發(fā)明是使得計(jì)算機(jī)設(shè)備執(zhí)行從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)方法的再現(xiàn)程序,該再現(xiàn)方法包括步驟從其上已經(jīng)記錄了包含至少視頻流、與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)和用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序的記錄介質(zhì)中讀取數(shù)據(jù);根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和將第一模式設(shè)置到內(nèi)容再現(xiàn)步驟,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)從該一個(gè)或多個(gè)音頻流中自動(dòng)地選擇原始語(yǔ)言的音頻流。
      此外,本發(fā)明是其上已經(jīng)記錄了包含至少視頻流、與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)和用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序以及流信息的記錄介質(zhì),所述流信息至少描述標(biāo)識(shí)該一個(gè)或多個(gè)音頻流中的每一個(gè)的信息,以便標(biāo)識(shí)用作原始語(yǔ)言的音頻流的信息首先到來(lái)。
      此外,本發(fā)明是數(shù)據(jù)結(jié)構(gòu),包括視頻流;包含與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù);用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序;和至少包含標(biāo)識(shí)該一個(gè)或多個(gè)音頻流中的每一個(gè)的信息的流信息,以便標(biāo)識(shí)用作原始語(yǔ)言的音頻流的信息首先到來(lái)。
      如上所述,根據(jù)本發(fā)明,至少已經(jīng)將包含視頻流和與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)和用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序記錄在記錄介質(zhì)上。當(dāng)再現(xiàn)設(shè)備根據(jù)從記錄介質(zhì)上再現(xiàn)的再現(xiàn)控制程序從其再現(xiàn)內(nèi)容數(shù)據(jù)時(shí),設(shè)置從一個(gè)或多個(gè)音頻流中自動(dòng)地選擇原始語(yǔ)言的音頻流的模式。用戶可以享受從盤中再現(xiàn)的原始語(yǔ)言的內(nèi)容而不必檢查內(nèi)容的原始語(yǔ)言和將原始語(yǔ)言設(shè)置到再現(xiàn)設(shè)備。
      此外,根據(jù)本發(fā)明,已經(jīng)以標(biāo)識(shí)原始語(yǔ)言的音頻流的信息在流信息中首先到來(lái)的方式,在記錄介質(zhì)上至少記錄了包含視頻流和與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)、用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序和至少表示標(biāo)識(shí)一個(gè)或多個(gè)音頻流的每一個(gè)的信息的流信息。因此,從盤中再現(xiàn)內(nèi)容的再現(xiàn)設(shè)備可以檢查在流信息中標(biāo)識(shí)音頻流和標(biāo)識(shí)原始語(yǔ)言的音頻流的信息的排列。
      此外,根據(jù)本發(fā)明的數(shù)據(jù)結(jié)構(gòu)至少包括包含視頻流和與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)、用其控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序和至少表示標(biāo)識(shí)該一個(gè)或多個(gè)音頻流中的每一個(gè)的信息的流信息,以便標(biāo)識(shí)原始語(yǔ)言的音頻流的信息在流信息中首先到來(lái)。因此,當(dāng)檢查在流信息中標(biāo)識(shí)音頻流的信息的排列時(shí),可以標(biāo)識(shí)原始語(yǔ)言的音頻流。
      在這點(diǎn)上,不需要將表示原始語(yǔ)言的信息添加到用作原始語(yǔ)言的音頻流或者標(biāo)識(shí)音頻流的信息中,就能夠標(biāo)識(shí)原始語(yǔ)言的音頻流。
      如上所述,作為本發(fā)明的效果,當(dāng)從盤中再現(xiàn)內(nèi)容時(shí),可以正確地和自動(dòng)地選擇不同語(yǔ)言的音頻流和字幕流。
      此外,根據(jù)本發(fā)明的實(shí)施方式,作為播放器的音頻的初始設(shè)置,可以設(shè)置屬性“original language(原始語(yǔ)言)”??梢宰詣?dòng)地選擇創(chuàng)作內(nèi)容的語(yǔ)言。因此,作為本發(fā)明的效果,用戶可以在不破壞原始環(huán)境的情況下欣賞內(nèi)容。
      此外,根據(jù)本發(fā)明的實(shí)施方式,即使作為自動(dòng)選擇的結(jié)果已經(jīng)將相同的語(yǔ)言設(shè)置到音頻流和字幕流中,也自動(dòng)使得字幕流不被顯示。因此,用戶不需要手工操作該設(shè)備以不顯示不想要的字幕。因此,作為本發(fā)明的效果,提高了用戶友好性。


      圖1是示出根據(jù)UMD視頻標(biāo)準(zhǔn)的層結(jié)構(gòu)的示意圖;圖2是示出根據(jù)本發(fā)明的實(shí)施方式的播放器模型的例子的示意圖;圖3是示出電影播放器的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖4是描述電影播放器的三種狀態(tài)的示意圖;圖5是示出根據(jù)本發(fā)明的實(shí)施方式的電影播放器的事件模型的示意圖;圖6是示出當(dāng)正在再現(xiàn)播放列表時(shí)發(fā)生的事件的例子的示意圖;圖7是示出電影播放器對(duì)象的性質(zhì)的例子的列表的示意圖;圖8是示出電影播放器對(duì)象的方法的例子的列表的示意圖;圖9是示出作為用戶輸入的按鍵輸入的例子的示意圖;圖10是示出作為用戶輸入的按鍵輸入的例子的示意圖;圖11A、圖11B和圖11C是示出根據(jù)按鍵輸入的控制命令的例子的示意圖;圖12是示出根據(jù)按鍵輸入的事件的例子的示意圖;圖13是示出事件處理程序(handler)的例子的示意圖;圖14是事件處理程序的例子的示意圖;圖15是示出根據(jù)用戶輸入事件執(zhí)行預(yù)定程序的過(guò)程的例子的流程圖;圖16是示出將盤裝載到UMD視頻播放器直到從其中彈出盤為止所執(zhí)行的過(guò)程的流程圖;圖17是示出腳本文件的結(jié)構(gòu)的例子的示意圖;圖18是示出執(zhí)行事件處理程序onAutoPlay()的過(guò)程的例子的流程圖;圖19是示出執(zhí)行事件處理程序onContinuePlay()的過(guò)程的例子的流程圖;圖20是示出當(dāng)完成再現(xiàn)時(shí)作執(zhí)行的過(guò)程的例子的流程圖;圖21是描述腳本程序的例子的示意圖;圖22是示出腳本程序的例子的示意圖;圖23是描述根據(jù)UMD視頻標(biāo)準(zhǔn)的文件管理結(jié)構(gòu)的示意圖;圖24是示出文件“PLAYLIST.DAT”的整個(gè)結(jié)構(gòu)的語(yǔ)法的例子的示意圖;圖25是示出塊PlayItem()的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖26是示出塊PlayListMark()的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖27是描述塊Mark()的字段mark_type的示意圖;圖28是描述在剪切片段(clip)AV流文件中的標(biāo)志時(shí)間的指定的示意圖;圖29是示出表示剪切片段AV流文件“XXXXX.CLP”的整個(gè)結(jié)構(gòu)的語(yǔ)法的例子的示意圖;圖30是描述塊StreamInfo()和基本流的相互關(guān)系的示意圖;圖31是示出塊StaticInfo()的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖32是示出塊DynamicInfo()的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖33是示出塊EP_map()的內(nèi)部結(jié)構(gòu)的例子的示意圖;圖34是示出根據(jù)本發(fā)明的盤再現(xiàn)設(shè)備的結(jié)構(gòu)的例子的框圖;圖35A和圖35B是詳細(xì)描述盤再現(xiàn)設(shè)備的操作的功能框圖;圖36是描述根據(jù)本發(fā)明的實(shí)施方式的音頻和字幕流的自動(dòng)選擇的示意圖;圖37是描述根據(jù)本發(fā)明的實(shí)施方式的音頻和字幕流的自動(dòng)選擇的示意圖;圖38是描述根據(jù)本發(fā)明的實(shí)施方式的音頻和字幕流的自動(dòng)選擇的示意圖;圖39是示出屬性audioFlag的值的例子的示意圖;圖40是示出屬性subtitleFlag的值的例子的示意圖;圖41A和41B是示出方法play()的參量的例子的列表的示意圖;圖42是示出從多個(gè)類型的音頻流和字幕流中自動(dòng)地選擇音頻流和字幕流的流程的流程圖;圖43是詳細(xì)描述自動(dòng)地選擇音頻流的過(guò)程的例子的流程圖;圖44是詳細(xì)描述自動(dòng)地選擇音頻流的過(guò)程的例子的流程圖;圖45是詳細(xì)描述自動(dòng)地選擇字幕流的過(guò)程的例子的流程圖;圖46是詳細(xì)描述自動(dòng)地設(shè)置屬性subtitleFlag的過(guò)程的例子的流程圖;和圖47是描述自動(dòng)地設(shè)置屬性subtitleFlag的過(guò)程的另一個(gè)例子的流程圖。
      具體實(shí)施例方式
      在下面,將用以下順序來(lái)描述本發(fā)明的實(shí)施方式。
      1.UMD視頻標(biāo)準(zhǔn)2.根據(jù)UMD視頻標(biāo)準(zhǔn)的播放器模型3.電影播放器的事件模型4.電影播放器對(duì)象5.腳本程序的例子6.文件管理結(jié)構(gòu)7.盤再現(xiàn)設(shè)備8.音頻的字幕流的自動(dòng)選擇1.UMD視頻標(biāo)準(zhǔn)為了便于理解本發(fā)明,將描述根據(jù)本發(fā)明的實(shí)施方式的系統(tǒng)。根據(jù)本發(fā)明的實(shí)施方式,用被稱為ECMA腳本的腳本語(yǔ)言來(lái)描述播放器模型。ECMA腳本是基于JavaScript(注冊(cè)商標(biāo))并且由歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)進(jìn)行標(biāo)準(zhǔn)化的跨平臺(tái)(cross platform)腳本語(yǔ)言。ECMA腳本具有與HTM文檔的較高的兼容性。此外,由于ECMA腳本允許定義原始對(duì)象,所以可以根據(jù)本發(fā)明將ECMA腳本適當(dāng)?shù)赜糜诓シ牌髂P汀?br> 在下面的描述中,將使用基于ECMA腳本的腳本語(yǔ)言并且根據(jù)本發(fā)明的實(shí)施方式的標(biāo)準(zhǔn)稱為UMD(Universal Media Disk,通用媒體盤注冊(cè)商標(biāo))視頻標(biāo)準(zhǔn)。將UMD視頻標(biāo)準(zhǔn)的腳本部分稱為UMD視頻腳本標(biāo)準(zhǔn)。
      下面,將簡(jiǎn)要描述UDM視頻標(biāo)準(zhǔn)。圖1示出UMD視頻標(biāo)準(zhǔn)的層結(jié)構(gòu)。UMD視頻標(biāo)準(zhǔn)定義由腳本層、播放列表層和剪切片段層組成的三層結(jié)構(gòu)。根據(jù)這種層結(jié)構(gòu)來(lái)管理流。
      根據(jù)UDM視頻標(biāo)準(zhǔn),將數(shù)字編碼的視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)當(dāng)作已經(jīng)根據(jù)MPEG2(運(yùn)動(dòng)圖像專家組2)系統(tǒng),將它們復(fù)用為基本流的MPEG2流。將已經(jīng)將視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)的基本流進(jìn)行復(fù)用的MPEG2流稱為剪切片段AV流。將剪切片段AV流存儲(chǔ)在剪切片段AV流文件中。當(dāng)記錄剪切片段AV流文件時(shí),以1對(duì)1的關(guān)系根據(jù)剪切片段AV文件來(lái)創(chuàng)作剪切片段信息文件。將剪切片段信息文件和與其對(duì)應(yīng)的剪切片段AV流文件對(duì)稱為剪切片段。
      剪切片段是盤的記錄單元。將以比剪切片段層更高的播放列表層管理剪切片段的再現(xiàn)順序。播放列表層是指定剪切片段的再現(xiàn)路徑的層。播放列表層包含一個(gè)和多個(gè)播放列表。播放列表由一組播放項(xiàng)目組成。播放項(xiàng)目包含表示剪切片段的再現(xiàn)范圍的IN點(diǎn)和OUT點(diǎn)對(duì)。當(dāng)放置播放項(xiàng)目時(shí),可以用任何順序來(lái)再現(xiàn)剪切片段。播放項(xiàng)目可以冗余地指定剪切片斷。用時(shí)間戳(剪切片段之間的時(shí)間)來(lái)指定剪切片段AV流的IN點(diǎn)和OUT點(diǎn)。根據(jù)剪切片段信息文件的信息將時(shí)間戳轉(zhuǎn)換為剪切片段AV流文件的比特位置。
      播放列表具有再現(xiàn)以預(yù)定順序表示所有或者全部剪切片段的播放列表的結(jié)構(gòu)。僅僅用播放列表,不能改變剪切片段的再現(xiàn)順序。此外,播放列表不將交互功能提供給用戶。根據(jù)本發(fā)明的實(shí)施方式,將多個(gè)播放列表一并存儲(chǔ)在一個(gè)文件“PLAYLIST.DAT”中。
      腳本層是由作為語(yǔ)言規(guī)約(specification)的ECMA腳本的擴(kuò)展的UMD視頻腳本組成。UMD視頻腳本是基于UMD視頻標(biāo)準(zhǔn)將ECMA腳本進(jìn)行擴(kuò)展以實(shí)現(xiàn)特殊功能的腳本。
      腳本層是播放列表層的上層。腳本層由指定播放列表的再現(xiàn)并且設(shè)置播放器的命令序列組成。在腳本層中的命令完成包括條件分支的播放列表再現(xiàn),可以選擇根據(jù)多個(gè)語(yǔ)言的流之一或者可以根據(jù)以預(yù)定條件選擇的播放列表來(lái)再現(xiàn)流。使用包括條件分支的播放列表再現(xiàn)的應(yīng)用的示例包括多故事(multi-story)內(nèi)容。腳本層將交互功能提供給用戶。
      根據(jù)本發(fā)明的實(shí)施方式,腳本層由一個(gè)文件“SCRIPT.DAT”組成。將文件“SCRIPT.DAT”作為源進(jìn)行管理。文件“SCRIPT.DAT”包含根據(jù)實(shí)際ECMA腳本描述的腳本數(shù)據(jù)、在按鈕操作中的用于聲音效果等的聲音數(shù)據(jù)、菜單屏幕中由用于背景圖像等的圖像數(shù)據(jù)組成的屏幕設(shè)計(jì)、和諸如按鈕圖像之類的用于GUI部分的圖像數(shù)據(jù)(位圖數(shù)據(jù))。
      2.根據(jù)UMD視頻標(biāo)準(zhǔn)的播放器模型下面,將描述再現(xiàn)根據(jù)UMD視頻標(biāo)準(zhǔn)的數(shù)據(jù)的再現(xiàn)設(shè)備(播放器)的模型,即播放器模型。播放器從盤中讀取腳本程序、播放列表和剪切片段信息文件。之后,播放器根據(jù)這些文件以再現(xiàn)順序讀取剪切片段AV流文件,并且再現(xiàn)視頻數(shù)據(jù)、音頻數(shù)據(jù)、字幕數(shù)據(jù)等。
      在腳本程序的語(yǔ)言規(guī)約中,將再現(xiàn)播放列表的功能塊實(shí)現(xiàn)為腳本程序中的對(duì)象。根據(jù)UMD視頻標(biāo)準(zhǔn),將再現(xiàn)播放列表的對(duì)象稱作電影播放器對(duì)象。指定播放列表的再現(xiàn)并且設(shè)置播放器的命令是電影播放器對(duì)象的方法。由腳本層的方法來(lái)控制電影播放器對(duì)象。在該點(diǎn)上,電影播放器對(duì)象需要將狀態(tài)改變、再現(xiàn)位置等通知給腳本層的功能。該功能與電影播放器對(duì)象將事件發(fā)布給腳本程序的操作對(duì)應(yīng)。將與該事件對(duì)應(yīng)的過(guò)程描述為事件處理程序。
      當(dāng)作出這樣的模型電影播放器對(duì)象將信息作為事件傳送給腳本程序而腳本程序用一方法控制電影播放器對(duì)象時(shí),腳本程序可以控制剪切片段AV流的再現(xiàn)。
      圖2示意地示出根據(jù)本發(fā)明的實(shí)施方式的播放器模型的例子。電影播放器300是根據(jù)UMD視頻標(biāo)準(zhǔn)再現(xiàn)視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)的模塊。電影播放器對(duì)象是腳本程序中的對(duì)象,從而腳本程序操作電影對(duì)象。換句話說(shuō),電影播放器對(duì)象是完成電影播放器的功能的腳本程序。
      由于認(rèn)為電影播放器300和電影播放器對(duì)象基本上相同,所以在下面的描述中,用相同的附圖標(biāo)記來(lái)表示它們。
      在圖2中,電影播放器300根據(jù)播放列表的數(shù)據(jù)庫(kù)或者帶有作為用戶輸入310等的較低層(在圖2中所示的例子中的本地實(shí)施平臺(tái)301)的方法、或作為較高層的腳本層302的方法的剪切片段信息來(lái)讀取AV流文件,并且解碼和顯示剪切片段AV流。
      電影播放器對(duì)象200的內(nèi)部依賴于從UMD視頻盤再現(xiàn)數(shù)據(jù)的UMD視頻播放器的實(shí)施方式。腳本層302提供作為方法和屬性的API(應(yīng)用編程接口)作為黑盒子對(duì)象。在這種情況下,UMD視頻播放器表示實(shí)施電影播放器的實(shí)際裝置。所有UMD視頻播放器根據(jù)UMD視頻標(biāo)準(zhǔn)來(lái)實(shí)施電影播放器并且具有與其他UMD視頻播放器的再現(xiàn)兼容性。
      如圖2中所示,電影播放器300具有三個(gè)輸入/輸出路徑通過(guò)其從本地實(shí)施平臺(tái)301接收控制命令311的路徑、通過(guò)其將事件312通知給腳本層302的路徑和通過(guò)其從腳本層302接收方法313的路徑。
      控制命令311是從本地實(shí)施平臺(tái)301接收的、并且控制電影播放器對(duì)象300的操作的命令。本地實(shí)施平臺(tái)301是作為實(shí)際裝置的UMD視頻播放器的原始部分和電影播放器300之間的接口。事件312是從電影播放器300發(fā)送到腳本層302的腳本事件。方法313是腳本層302的腳本程序指定到電影播放器300的方法。
      電影播放器對(duì)象300具有根據(jù)UMD視頻標(biāo)準(zhǔn)的用于播放列表和剪切片段信息的數(shù)據(jù)庫(kù)320。電影播放器對(duì)象300將用戶的輸入310屏蔽(mask)。此外,電影播放器對(duì)象300執(zhí)行例如這樣的過(guò)程用數(shù)據(jù)庫(kù)320將由事件指定的再現(xiàn)位置轉(zhuǎn)換為剪切片段AV流的字節(jié)位置。
      電影播放器對(duì)象300的回放模塊321將作為已經(jīng)將視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)復(fù)用的MPEG2 PS(節(jié)目流)的剪切片段AV流解碼?;胤拍K321具有三種狀態(tài)播放、停止和暫停?;胤拍K312用控制命令和方法在這些狀態(tài)之間變化(見圖3)。
      腳本層302是根據(jù)UMD視頻腳本標(biāo)準(zhǔn)執(zhí)行腳本程序、控制電影播放器對(duì)象300和在顯示器上顯示數(shù)據(jù)的層。腳本層302完成內(nèi)容創(chuàng)作者端想要的情節(jié)(scenario)。腳本層302將方法313發(fā)布給電影播放器對(duì)象300。腳本層302從電影播放器對(duì)象300接收事件312。腳本層302與本地實(shí)施平臺(tái)301交換根據(jù)用戶輸入310的按鍵事件314和使得本地實(shí)施平臺(tái)301在顯示器上顯示數(shù)據(jù)的方法315。
      例如,由本地實(shí)施平臺(tái)301根據(jù)從腳本層302的腳本程序提供到本地實(shí)施平臺(tái)301的方法315來(lái)產(chǎn)生在菜單屏幕上的按鈕。當(dāng)用戶執(zhí)行諸如針對(duì)一個(gè)按鈕的選擇或者決定之類的操作時(shí),將根據(jù)用戶輸入310的按鍵事件314從本地實(shí)施平臺(tái)301發(fā)送到腳本層302。腳本層302的腳本程序用根據(jù)用戶輸入310的按鍵事件314來(lái)執(zhí)行處理。
      因此,電影播放器300執(zhí)行針對(duì)視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)的解碼和顯示控制。另一方面,腳本層302執(zhí)行用于組成諸如按鈕之類的圖形用戶界面的部分圖像(下面,將這部分圖像稱為GUI部分)的排列和顯示處理、以及針對(duì)GUI部分的選擇和決定操作的處理。
      本地實(shí)施平臺(tái)301是用于電影播放器對(duì)象300和腳本程序的操作的平臺(tái)。當(dāng)實(shí)際UMD視頻播放器是硬件時(shí),將本地實(shí)施平臺(tái)301實(shí)施為硬件,從而本地實(shí)施平臺(tái)301中介于硬件和播放器模型之間。
      本地實(shí)施平臺(tái)301從用戶接收用戶輸入310,并且確定所接收到的用戶輸入310是用于電影播放器300的命令還是用于在腳本播放器302中所產(chǎn)生和顯示的按鈕的命令。當(dāng)確定結(jié)果表示用戶輸入310是用于電影播放器300的命令時(shí),本地實(shí)施平臺(tái)301將用戶輸入310轉(zhuǎn)換為作為針對(duì)電影播放器300的內(nèi)部控制命令的控制命令311,并且將控制命令發(fā)布給電影播放器300。
      當(dāng)所確定的結(jié)果表示用戶輸入310是在腳本層302中產(chǎn)生和顯示的GUI部分的命令時(shí),本地實(shí)施平臺(tái)301根據(jù)用戶命令310將按鍵事件314通知給腳本層302。例如,本地實(shí)施平臺(tái)301可以根據(jù)腳本層302根據(jù)按鍵事件314指定的方法315在顯示器上顯示例如按鈕圖像。換句話說(shuō),本地實(shí)施平臺(tái)301和腳本層302可以直接交換事件和方法而不通過(guò)電影播放器300。
      下面,將詳細(xì)描述電影播放器300。圖3示出電影播放器300的內(nèi)部結(jié)構(gòu)的例子。如上所述,電影播放器300由數(shù)據(jù)庫(kù)320和回放模塊321組成。數(shù)據(jù)庫(kù)320是存儲(chǔ)從盤讀取的播放列表的信息和剪切片段的信息(即剪切片段信息)的區(qū)域。
      回放模塊321由解碼器引擎322和屬性323組成。屬性323是表示回放模塊321的狀態(tài)的值。屬性323具有兩種類型屬性323A(只讀參數(shù)),其值依賴于類似于語(yǔ)言代碼的電影播放器300的初始設(shè)置;和屬性323B(播放器狀態(tài)),其值依賴于回放模塊321的狀態(tài)。
      由例如實(shí)際裝置的本地裝置來(lái)設(shè)置其值依賴于初始設(shè)置的屬性323A的值。因此,不由播放列表、剪切片段信息和腳本程序來(lái)改變屬性323A的值??梢詮哪_本程序中讀取屬性323A的值。相反,可以從腳本程序中讀取表示回放模塊321的狀態(tài)的屬性323B的值。此外,可以從一些腳本程序?qū)憣傩?23B的值。
      在這種操作模式中,假設(shè)在再現(xiàn)剪切片段AV流之前從盤預(yù)先裝載播放列表和剪切片段信息。替代地,可以在另一種實(shí)施方式中完成電影播放器模型的操作。
      電影播放器對(duì)象300再現(xiàn)由腳本層302或者本地實(shí)施平臺(tái)301所指定的播放列表。例如,電影播放器300參照數(shù)據(jù)庫(kù)320,根據(jù)所指定的播放列表獲得作為文件的字節(jié)位置的剪切片段AV流的再現(xiàn)位置。在回放模塊321中,解碼器引擎322根據(jù)再現(xiàn)位置的信息來(lái)控制剪切片段AV流的解碼。
      如圖4中所示,電影播放器300根據(jù)播放列表的再現(xiàn)狀態(tài)而具有三種狀態(tài)播放、停止和暫停。播放狀態(tài)表示正在再現(xiàn)播放列表并且已經(jīng)經(jīng)過(guò)了一段時(shí)間。播放狀態(tài)包括普通再現(xiàn)、諸如兩倍速再現(xiàn)和1/2速度再現(xiàn)之類的可變速度再現(xiàn)、快進(jìn)和快退(fast reverse)。暫停狀態(tài)表示正在再現(xiàn)播放列表并且時(shí)間軸停止。前進(jìn)和后退再現(xiàn)幀的所謂幀再現(xiàn)是重復(fù)暫停狀態(tài)和播放狀態(tài)的狀態(tài)。停止?fàn)顟B(tài)表示不是正在被再現(xiàn)播放列表的狀態(tài)。
      電影播放器300的狀態(tài)依賴于電影播放器300的解碼器引擎322的播放、暫停和停止之間的狀態(tài)變化。根據(jù)解碼器引擎322的狀態(tài)變化來(lái)更新屬性323B的值。
      恢復(fù)信息324存儲(chǔ)在停止?fàn)顟B(tài)發(fā)生之前緊接著存在的狀態(tài)。在電影播放器300解碼播放列表之后,當(dāng)電影播放器300處于播放狀態(tài)時(shí),如果電影播放器300的狀態(tài)改變到停止?fàn)顟B(tài),則恢復(fù)信息324存儲(chǔ)在停止?fàn)顟B(tài)發(fā)生之前緊接著存在的狀態(tài)。此外,將針對(duì)盤的每個(gè)標(biāo)題的恢復(fù)信息324存儲(chǔ)在作為硬件的播放器的非易失存儲(chǔ)器中。盤具有針對(duì)盤的每個(gè)標(biāo)題的唯一標(biāo)識(shí)信息(稱為標(biāo)題ID)?;謴?fù)信息324和標(biāo)識(shí)信息相關(guān)地存儲(chǔ)。因此,當(dāng)具有根據(jù)標(biāo)識(shí)信息的標(biāo)題的盤的狀態(tài)從停止?fàn)顟B(tài)改變?yōu)椴シ艩顟B(tài)時(shí),可以從停止?fàn)顟B(tài)發(fā)生的位置再現(xiàn)數(shù)據(jù)。
      3.電影播放器的事件模型下面,將描述電影播放器300的事件模型。在播放狀態(tài)中,電影播放器300再現(xiàn)播放列表并且產(chǎn)生各種事件。事件執(zhí)行被描述被腳本并且稱為事件處理程序的處理程序。事件處理程序是在事件發(fā)生時(shí)調(diào)用的方法。將事件發(fā)生時(shí)開始執(zhí)行處理程序的程序執(zhí)行模型稱為事件驅(qū)動(dòng)模型。在事件驅(qū)動(dòng)模型中,發(fā)生不規(guī)則事件。當(dāng)事件發(fā)生時(shí),執(zhí)行預(yù)定的程序。根據(jù)本發(fā)明的實(shí)施方式,腳本程序用事件處理程序組來(lái)控制電影播放器對(duì)象300的操作。
      圖5示意示出根據(jù)本發(fā)明的實(shí)施方式的電影播放器300的事件模型。在圖5中,事件處理程序onEventA()、onEventB()和onEventC()是接口。將事件處理程序的內(nèi)容描述為腳本。由例如內(nèi)容創(chuàng)作者端來(lái)創(chuàng)作和實(shí)施事件處理程序的內(nèi)容。在UMD視頻腳本標(biāo)準(zhǔn)中,針對(duì)電影播放器對(duì)象300通知給腳本程序的每個(gè)事件提供事件處理程序。在圖5所示的例子中,確定當(dāng)事件A發(fā)生時(shí)所執(zhí)行的處理程序是事件處理程序onEventA()。將這種方式應(yīng)用于事件B和事件C。因此,當(dāng)事件B發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件處理程序onEventB()。當(dāng)事件C發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件處理程序onEventC()。
      由于系統(tǒng)端選擇在事件發(fā)生時(shí)調(diào)用的事件處理程序,所以內(nèi)容創(chuàng)作者端不需要在腳本程序中描述確定發(fā)生了什么事件的處理。
      圖6示出當(dāng)正在再現(xiàn)播放列表時(shí)發(fā)生的事件的例子。由于在播放列表PlayList的開始處描述章(chaper)標(biāo)志ChapterMark,所以當(dāng)從開始再現(xiàn)播放列表時(shí),發(fā)生與章標(biāo)志對(duì)應(yīng)的事件Chapter。當(dāng)該章改變?yōu)榱硪徽碌娜魏螘r(shí)候,將事件Chapter通知給腳本層302并且執(zhí)行對(duì)應(yīng)的事件處理程序onChapter。當(dāng)經(jīng)過(guò)針對(duì)事件標(biāo)志EventMark的再現(xiàn)事件時(shí),發(fā)生對(duì)應(yīng)的標(biāo)志事件。在播放列表的結(jié)尾,電影播放器300暫停播放列表的再現(xiàn)并且將事件PlalyListEnd通知給腳本層302。腳本層302端使得電影播放器300開始再現(xiàn)在對(duì)應(yīng)事件處理程序onPlayListEnd()中的另一個(gè)播放列表。以這種方式,電影播放器300以內(nèi)容創(chuàng)作者端希望的順序連續(xù)再現(xiàn)播放列表序列。
      以這種方式,當(dāng)操作播放器時(shí),發(fā)生各種事件。當(dāng)將事件的發(fā)生通知給上層程序時(shí),較上層程序可以抓取播放器的狀態(tài)。當(dāng)上層程序提供根據(jù)其被通知的事件所執(zhí)行的程序(事件處理程序),其可以處理各種事件。將在后面描述事件和事件處理程序。
      當(dāng)內(nèi)容創(chuàng)作者端沒有描述事件處理程序時(shí),上層程序執(zhí)行內(nèi)置在播放器中并且在標(biāo)準(zhǔn)中定義的操作(默認(rèn)事件處理程序)或者忽略該事件。當(dāng)不需要處理時(shí),如果不描述根據(jù)該事件的事件處理程序,則可以互動(dòng)地忽略該事件。
      作為事件模型,可能存在事件收聽者模型、單方法模型等。在事件收聽者模型中,對(duì)象將根據(jù)預(yù)定事件的收聽者注冊(cè)到播放器對(duì)象。當(dāng)在播放器對(duì)象中發(fā)生的事件是已經(jīng)被注冊(cè)的事件時(shí),播放器對(duì)象將事件傳送到已經(jīng)注冊(cè)了該事件的對(duì)象。該對(duì)象執(zhí)行對(duì)應(yīng)的方法。在單方法模型中,只要事件發(fā)生就調(diào)用一個(gè)方法。
      根據(jù)本發(fā)明的實(shí)施方式的事件模型比需要諸如事件注冊(cè)處理和事件刪除處理之類的處理的事件收聽者模型簡(jiǎn)單。單個(gè)方法模型需要知道發(fā)生了什么事件,并且在方法中描述根據(jù)發(fā)生的每個(gè)事件改變處理例程的預(yù)先處理。由于由內(nèi)容創(chuàng)作者端實(shí)施方法,所以即使模型是簡(jiǎn)單的,內(nèi)容創(chuàng)作者端的負(fù)擔(dān)也增加。此外,在事件發(fā)生的任何時(shí)候,由于調(diào)有一個(gè)大的處理程序(方法),所以將使用大的存儲(chǔ)器區(qū)域并且執(zhí)行速度將變慢。因此,由于根據(jù)本發(fā)明的實(shí)施方式的模型提供根據(jù)獨(dú)立事件的處理程序(事件處理程序),所以該模型從這些方面來(lái)說(shuō)比其他模型優(yōu)越。
      4.電影播放器對(duì)象下面,將描述電影播放器對(duì)象300的外部規(guī)約。通常,根據(jù)ECMA腳本語(yǔ)言規(guī)約所定義的對(duì)象具有屬性和方法。與這種對(duì)象類似,如圖2和圖3中所示,根據(jù)本發(fā)明的實(shí)施方式的電影播放器對(duì)象300也具有屬性和方法。當(dāng)外部對(duì)象指定對(duì)象名稱和屬性名稱時(shí),對(duì)象可以直接讀取和寫屬性。替代地,當(dāng)定義設(shè)置屬性值的方法setXXX()(其中“XXX”表示屬性名稱)和讀取屬性值的方法getXXX()時(shí),方法可以讀取和寫其他對(duì)象的屬性。
      圖7示出電影播放器對(duì)象300具有的屬性的例子的列表。這些屬性對(duì)應(yīng)于圖3中所示的屬性323。屬于圖3中所示的只讀參數(shù)323A的屬性如下。屬性scriptVersion表示UMD視頻腳本的版本。屬性languageCode表示被設(shè)置到UMD視頻播放器的菜單顯示語(yǔ)言的語(yǔ)言代碼。屬性audioLanguageCode表示被設(shè)置到UDM視頻播放器的音頻語(yǔ)言的語(yǔ)言代碼。屬性subtitleLanguagecod表示被設(shè)置到UMD視頻播放器的字幕語(yǔ)言的語(yǔ)言代碼。
      當(dāng)將盤裝載到電影播放器300中時(shí),根據(jù)在只讀參數(shù)323A中設(shè)置的屬性languangeCode所表示的語(yǔ)言代碼來(lái)決定從盤讀取的腳本文件。當(dāng)被裝載到電影播放器300中的盤不具有根據(jù)該語(yǔ)言的腳本文件時(shí),從盤中讀取默認(rèn)的腳本文件。例如,讀取在多個(gè)腳本文件的開始處記錄的文件作為默認(rèn)腳本文件。
      屬于圖3中所示的播放器狀態(tài)323b的屬性如下。屬性playListNumber表示當(dāng)前正在被再現(xiàn)的播放列表的播放列表號(hào)碼。屬性chaperNumber表示當(dāng)前正在被再現(xiàn)的章的章號(hào)碼。屬性videoNumber表示當(dāng)前正在被再現(xiàn)的視頻流的視頻流號(hào)碼。屬性audioNumber表示當(dāng)前正在被再現(xiàn)的音頻流的音頻流號(hào)碼。屬性subtitleNumber表示當(dāng)前正在被再現(xiàn)的字幕流的字幕流號(hào)碼。屬性playListTime表示當(dāng)播放列表的開始為0時(shí)的播放列表的時(shí)間。屬性audioFlag指定音頻再現(xiàn)和雙單聲道(dual monaural)LR的ON/OFF(開/關(guān))。屬性subtitleFlag表示字幕指示的ON/OFF。
      雙單聲道是將立體聲音頻的左和右(L、R)聲道獨(dú)立用于單聲道音頻聲道的模式。
      當(dāng)電影播放器300處于播放狀態(tài)或者暫停狀態(tài)時(shí),屬于播放器狀態(tài)323B的每個(gè)屬性表示這些信息。當(dāng)將電影播放器300改變到停止?fàn)顟B(tài)時(shí),將屬于播放器狀態(tài)323B的每個(gè)屬性備份作為恢復(fù)信息324。在該點(diǎn)上,可以清除播放器狀態(tài)323B的內(nèi)容。
      圖8示出電影播放器對(duì)象300具有的方法的例子的列表。這些方法對(duì)應(yīng)于圖3中所示的方法313。方法play()再現(xiàn)視頻數(shù)據(jù)。方法playChapter()指定章并且再現(xiàn)所指定的章的視頻數(shù)據(jù)。方法stop()停止再現(xiàn)視頻數(shù)據(jù)。方法pause()暫停視頻數(shù)據(jù)的再現(xiàn)。方法playStep()按步地再現(xiàn)視頻數(shù)據(jù)。方法changeStream()改變視頻流、音頻流和/或字幕流。方法gePlayerStatus()獲得電影播放器300的播放狀態(tài)、停止?fàn)顟B(tài)或者暫停狀態(tài)等。方法reset()停止視頻數(shù)據(jù)的再現(xiàn)并且清除恢復(fù)信息342的內(nèi)容。
      根據(jù)UMD視頻標(biāo)準(zhǔn),可以在顯示屏幕的一部分上顯示視頻數(shù)據(jù)。下面四個(gè)方法是在顯示屏幕的一部分上顯示視頻數(shù)據(jù)的方法。方法setPos()設(shè)置視頻數(shù)據(jù)的顯示位置。方法getPos()獲得視頻數(shù)據(jù)的顯示位置。方法setSize()設(shè)置視頻數(shù)據(jù)的顯示大小。方法getSize()獲得視頻數(shù)據(jù)的顯示大小。
      在實(shí)際中,集成電影播放器300和本地實(shí)施平臺(tái)301。換句話說(shuō),將電影播放器300UMD和本地實(shí)施平臺(tái)301關(guān)聯(lián)為硬件,裝載盤并且從盤再現(xiàn)視頻數(shù)據(jù)的UMD播放器,和控制UMD播放器的軟件。哪個(gè)部分是硬件以及哪個(gè)部分是軟件依賴于實(shí)施的結(jié)構(gòu)。例如,當(dāng)UMD播放器是個(gè)人計(jì)算機(jī)等的時(shí)候,除了盤驅(qū)動(dòng)器以外的其他部分由軟件組成。當(dāng)使用單個(gè)UMD播放器的時(shí)候,除了盤驅(qū)動(dòng)器以外,例如視頻解碼器、音頻解碼器等也可以由硬件組成。因此,在電影播放器300和本地實(shí)施平臺(tái)301之間交換的方法、命令和事件不限于在圖2中明確示出的那些。
      另一方面,關(guān)于用戶的按鍵輸入,如圖2中所示,首先由本地實(shí)施平臺(tái)301接收用戶輸入310。換句話說(shuō),本地實(shí)施平臺(tái)301將用戶的按鍵輸入作為用戶輸入310來(lái)接收。本端實(shí)施平臺(tái)301確定用戶輸入310是對(duì)電影播放器300的命令還是對(duì)腳本層302的腳本程序的事件。根據(jù)所確定的結(jié)果,本地實(shí)施平臺(tái)301產(chǎn)生控制命令311或者按鍵事件314,并且將所產(chǎn)生的控制命令311或者按鍵事件314通知給對(duì)應(yīng)上層(電影播放器300或者腳本層302)。
      圖9和圖10示出用戶輸入310的按鍵輸入的例子。在圖9和圖10中,具有前綴“VM”的按鍵是不依賴于實(shí)施的抽象按鍵。圖9示出關(guān)于電影播放器300的操作的按鍵輸入的例子。按鍵VK_POWER提供與電源按鍵對(duì)應(yīng)的功能。按鍵VK_POWER_ON提供與電源開(ON)按鍵對(duì)應(yīng)的功能。按鍵VK_POWER_OFF提供與電源關(guān)(OFF)按鍵對(duì)應(yīng)的功能。按鍵VK_MENU提供與顯示菜單的菜單按鍵對(duì)應(yīng)的功能。按鍵VK_ENTER提供與結(jié)束命令或者數(shù)據(jù)輸入的回車(enter)按鍵對(duì)應(yīng)的功能。按鍵KV_RETURN提供通過(guò)一個(gè)步驟返回處理的功能。
      按鍵VK_PLAY提供與開始再現(xiàn)操作的播放按鍵對(duì)應(yīng)的功能。按鍵VK_STOP提供與停止再現(xiàn)操作的停止按鍵對(duì)應(yīng)的功能。按鍵VK_PAUSE提供與暫停再現(xiàn)操作的暫停按鍵對(duì)應(yīng)的功能。按鍵VK_FAST_FORWARD提供與執(zhí)行快進(jìn)再現(xiàn)操作的快進(jìn)按鍵對(duì)應(yīng)的功能。按鍵VK_FAST_REVERSE提供與執(zhí)行快退再現(xiàn)操作對(duì)應(yīng)的快退按鍵對(duì)應(yīng)的功能。按鍵VK_SLOW_FORWARD提供與執(zhí)行慢再現(xiàn)操作的慢(前進(jìn))按鍵對(duì)應(yīng)的功能。按鍵VK_SLOW_REVERSE提供與執(zhí)行慢退再現(xiàn)操作的慢(后退)按鍵對(duì)應(yīng)的功能。按鍵VK_STEP_FORWARD提供與執(zhí)行按步前進(jìn)再現(xiàn)操作的步進(jìn)(前進(jìn))按鍵對(duì)應(yīng)的功能。按鍵VK_STEP_REVERSE提供與執(zhí)行按步后退再現(xiàn)操作的幀(后退)按鍵對(duì)應(yīng)的功能。
      圖10示出關(guān)于菜單操作的按鍵輸入。按鍵VK_NEXT提供與輸入表示“next(下一個(gè))”的值的下一個(gè)指定按鍵對(duì)應(yīng)的功能。按鍵VK_PREVIOUS提供與輸入表示“previous(前一個(gè))”的值的前一個(gè)指定按鍵對(duì)應(yīng)的功能。使用按鍵VK_NEXT和VK_PREVIOUS,用戶可以分別指定例如到下一章和前一章的移動(dòng)。
      按鍵VK_UP提供與輸入表示“up(上)”的值的上方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_DOWN提供與輸入表示“down(下)”的值的下方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_RIGHT提供與輸入表示“right(右)”的值的右方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_LEFT提供與輸入表示“l(fā)eft(左)”的值的左方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_UP_RIGHT提供與輸入表示“upper right(右上)”的值的右上方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_UP_LEFT提供與輸入表示“upper left(左上)”的值的左上方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_DOWN_RIGHT提供與輸入表示“down right(右下)”的值的右下方向指定按鍵對(duì)應(yīng)的功能。按鍵VK_DOWN_LEFT提供與輸入表示“down left(左下)”的值的左下方向指定按鍵對(duì)應(yīng)的功能。使用這些方向按鍵,用戶可以指定例如在顯示器上的光標(biāo)的移動(dòng)。
      按鍵VK_ANGLE提供與指定用于多角度(multi-angle)視頻數(shù)據(jù)的角度改變操作的角度改變按鍵對(duì)應(yīng)的功能。按鍵VK_SUBTITILE提供與指定英語(yǔ)字幕、日語(yǔ)字幕和字幕開/關(guān)(ON/OFF)的字幕改變按鍵對(duì)應(yīng)的功能。按鍵VK_AUDIO提供與指定諸如環(huán)繞模式或者雙語(yǔ)模式之類的音頻模式的音頻改變按鍵對(duì)應(yīng)的功能。按鍵VK_VIDEO_ASPECT提供與改變視頻數(shù)據(jù)的寬高比的寬高比改變按鍵對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_1提供與彩色功能按鍵1對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_2提供與彩色功能按鍵2對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_3提供與彩色功能按鍵3對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_4提供與彩色功能按鍵4對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_5提供與彩色功能按鍵5對(duì)應(yīng)的功能。按鍵VK_COLORED_KEY_6提供與彩色功能按鍵6對(duì)應(yīng)的功能。
      由于圖9中所示的按鍵輸入的功能在它們的角色方面與圖10中所示的按鍵輸入的那些不同,所以本地實(shí)施平臺(tái)301需要選擇將按鍵輸入通知到的目的地。如上所述,圖9中所示的按鍵輸入指定視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)的再現(xiàn)操作。當(dāng)本地實(shí)施平臺(tái)301接收?qǐng)D9中所示的按鍵輸入之一作為用戶輸入310時(shí),本地實(shí)施平臺(tái)301將所接收到的按鍵輸入轉(zhuǎn)換為圖11A、圖11B和圖11C中所示的命令,并且將所轉(zhuǎn)換的命令通知給電影播放器300。
      在另一方面,由于圖10中所示的按鍵輸入是對(duì)GUI的用戶輸入310,所以需要將這些輸入通知給構(gòu)成屏幕和產(chǎn)生按鈕的腳本層302。當(dāng)本地實(shí)施平臺(tái)301接收作為用戶輸入的圖10所示的按鍵輸入之一時(shí),本地實(shí)施平臺(tái)301將按鍵輸入轉(zhuǎn)換為圖2中所示的事件314,并且將事件314通知給腳本層302。圖12示出根據(jù)按鍵輸入的按鍵事件314的例子。
      圖9和圖10還示出諸如按鍵VK_ANGLE、按鍵VK_SUBTITLE和按鍵VK_AUDIO的關(guān)于流改變操作的按鍵輸入。這些按鍵輸入是完成與腳本程序?qū)﹄娪安シ牌?00執(zhí)行的流改變方法相同的功能的按鍵輸入。
      下面,將詳細(xì)描述圖11A、圖11B和圖11C中所示的命令。命令uo_timeSearch(playListTime)指定正在從指定的時(shí)間再現(xiàn)的播放列表的再現(xiàn)。參量playListTime表示當(dāng)播放列表的開始為0時(shí)播放列表的時(shí)間。由于該命令不指定播放列表號(hào)碼,所以由參量playListTime所表示的時(shí)間是在正在被再現(xiàn)的播放列表的范圍中的指定時(shí)間。命令uo_play()指定以諸如正常再現(xiàn)速率之類的預(yù)定再現(xiàn)速度的再現(xiàn)的開始。根據(jù)恢復(fù)信息324來(lái)決定播放列表的開始位置。當(dāng)不存在與恢復(fù)信息324對(duì)應(yīng)的信息時(shí),使得用戶的操作無(wú)效。該命令對(duì)應(yīng)于執(zhí)行方法play()而不是指定的播放列表號(hào)碼。使用該命令,用戶不能指定播放列表號(hào)碼。
      命令uo_playChapter(chapterNumber)開始再現(xiàn)從參量chapterNumber所指定的章再現(xiàn)的播放列表。不用指定章的號(hào)碼,該命令從正在被再現(xiàn)的章的開始處開始再現(xiàn)播放列表。這個(gè)命令對(duì)應(yīng)于方法playChapter()而不是指定的章號(hào)碼。命令uo_playPrevChapter()從之前緊鄰的章開始再現(xiàn)播放列表。命令uo_playNextChapter()從緊鄰之后的章開始再現(xiàn)播放列表。命令uo_stop()停止再現(xiàn)播放列表。
      命令uo_jumpToEnd()跳到播放列表的結(jié)尾。該命令對(duì)應(yīng)于使得電影播放器300停止再現(xiàn)并且產(chǎn)生事件playListEnd的用戶操作。根據(jù)該命令,腳本層302執(zhí)行事件處理程序onPlayListEnd。命令uo_forwardScan(speed)以參量speed所指定的再現(xiàn)速度向前再現(xiàn)播放列表。命令uo_backwardScan(speed)以參量speed所指定的再現(xiàn)速度向后再現(xiàn)播放列表。這些命令uo_forwardScan(speed)和uo_backwardScan(speed)的參量speed依賴于UMD視頻播放器的實(shí)施。
      命令uo_playStep(forward)按步地向前再現(xiàn)播放列表。命令uo_playStep(backward)按步地向后再現(xiàn)播放列表。命令uo_pauseOn()根據(jù)用戶的操作暫停播放列表的再現(xiàn)。命令uo_pauseOff()根據(jù)用戶的操作取消播放列表的再現(xiàn)的暫停狀態(tài)。
      命令uo_changeAudioChannel(value)改變音頻數(shù)據(jù)的聲道或者雙單聲道再現(xiàn)的一個(gè)聲道。當(dāng)執(zhí)行該命令時(shí),需要相應(yīng)地改變標(biāo)記audioFlag的值。命令uo_setAudioEnabled(Boolean)打開/關(guān)閉音頻流。當(dāng)執(zhí)行該命令時(shí),需要相應(yīng)地改變標(biāo)記audioFlag的值。命令uo_setSubtitleEnabled(Boolean)打開/關(guān)閉字幕流。當(dāng)執(zhí)行該命令時(shí),需要相應(yīng)地改變標(biāo)記subtitleFlag的值。命令uo_angleChange()改變顯示角度。當(dāng)將針對(duì)該命令的用戶操作通知給電影播放器300時(shí),電影播放器300將事件angleChange通知給腳本層302。命令uo_audiochange(audioStreamNumber)改變要被再現(xiàn)的音頻流。命令uo_subtitleChange(subtitleStreamNumber)改變要被再現(xiàn)的字幕流。
      下面,將詳細(xì)描述圖12中示出的事件和電影播放器300的方法之間的關(guān)系。事件menu(菜單)跳到一菜單。本地實(shí)施平臺(tái)301將該事件通知給腳本層302而不是電影播放器300。當(dāng)腳本層302接收到事件menu時(shí),腳本層302執(zhí)行事件處理程序onMenu。事件exit(退出)是當(dāng)本地實(shí)施平臺(tái)301完成UMD視頻應(yīng)用程序時(shí)其發(fā)布的事件。當(dāng)腳本層302接收到事件exit時(shí),腳本層302執(zhí)行事件處理程序onExit。
      事件up(上)、事件down(下)、事件left(左)、事件right(右)、事件focusIn、事件focousOut、事件push(推)和事件cancel(取消)是當(dāng)選中在屏幕上作為GUI部分的按鈕圖像時(shí)發(fā)生的事件。本地實(shí)施平臺(tái)301將這些事件通知給腳本層302而不是電影播放器300。當(dāng)選中按鈕圖像時(shí),例如在屏幕上顯示的光標(biāo)表示按鈕圖像的坐標(biāo),從而可以選擇該按鈕圖像時(shí)。當(dāng)分別選中上按鈕圖像、下按鈕圖像、左按鈕圖像和右按鈕圖像時(shí),事件up、事件down、事件left和事件right發(fā)生。當(dāng)選中任何按鈕圖像時(shí)事件focusIn都發(fā)生。當(dāng)去選中任何被選中的按鈕圖像時(shí)事件focusOut都發(fā)生。當(dāng)針對(duì)任何被選中的按鈕圖像執(zhí)行按下操作時(shí)事件push發(fā)生。當(dāng)針對(duì)任何按鈕圖像的按下操作執(zhí)行取消操作時(shí)事件cancel發(fā)生。
      事件autoPlay和事件continuePlay是使得腳本層302開始執(zhí)行腳本的事件。事件autoPlay是當(dāng)裝載盤時(shí)使得腳本自動(dòng)開始執(zhí)行的事件。事件continuePlay當(dāng)裝載盤時(shí)使得腳本根據(jù)例如恢復(fù)信息324從腳本停止的位置恢復(fù)執(zhí)行。
      存在有當(dāng)圖12中所示的事件發(fā)生時(shí)所執(zhí)行的程序。將與這些事件對(duì)應(yīng)的這些程序稱為事件處理程序。使用例如名稱將事件和事件處理程序關(guān)聯(lián)。例如,通過(guò)將前綴“on”添加到事件名稱中來(lái)創(chuàng)作事件處理程序名稱。圖13和圖14示出事件處理程序的例子。當(dāng)內(nèi)容創(chuàng)作者描述事件處理程序的內(nèi)容時(shí),UMD視頻播放器可以執(zhí)行內(nèi)容創(chuàng)作者想要的各種操作。
      圖13示出電影播放器200具有的事件的例子和對(duì)應(yīng)的事件處理程序。在圖13中所示的事件與圖12中所示的事件312對(duì)應(yīng)。電影播放器300將圖13中所示的事件通知給腳本層302。事件處理程序是某種接口。由內(nèi)容創(chuàng)作者使用腳本語(yǔ)言來(lái)實(shí)施事件處理程序的內(nèi)容。由于事件處理程序具有這種結(jié)構(gòu),所以當(dāng)事件發(fā)生時(shí),可以完成內(nèi)容創(chuàng)作者想要的操作。
      當(dāng)檢測(cè)到事件mark(標(biāo)志)時(shí)執(zhí)行事件mark和事件處理程序onMark()。將事件mark嵌入在例如播放列表中。當(dāng)電影播放器300正在再現(xiàn)播放列表時(shí),電影播放器300從播放列表中檢測(cè)播放列表。當(dāng)電影播放器300檢測(cè)到事件mark時(shí),電影播放器300將事件mark通知給腳本層302。腳本層302執(zhí)行與事件mark對(duì)應(yīng)的事件處理程序onMark()。類似地,當(dāng)完成播放列表的再現(xiàn)時(shí),執(zhí)行事件playListEnd和事件處理程序onPlayListEnd()。當(dāng)檢測(cè)到章標(biāo)記時(shí)執(zhí)行事件chapter(章)和事件處理程序onChapter()。將章標(biāo)記嵌入在例如播放列表中,并且當(dāng)電影播放器300正在再現(xiàn)播放列表時(shí)電影播放器300檢測(cè)章標(biāo)記。
      當(dāng)通過(guò)用戶操作指定角度改變時(shí),執(zhí)行事件angleChange和事件處理程序onAngleChange()。例如,當(dāng)通過(guò)作為用戶輸入310的用戶操作將按鍵輸入VK ANGLE輸入到本地實(shí)施平臺(tái)301時(shí),本地實(shí)施平臺(tái)301將用戶輸入310轉(zhuǎn)換為命令uo_angleChange()并且將其提供給電影播放器300。電影播放器300產(chǎn)生與命令uo_angleChange對(duì)應(yīng)的事件angleChange,并且將事件angleChange提供該腳本層302。腳本層302執(zhí)行與事件angleChange對(duì)應(yīng)的事件處理程序onAngleChange()。類似地,當(dāng)通過(guò)用戶操作執(zhí)行音頻改變時(shí),執(zhí)行事件audioChange和事件處理程序onAudioChange()。當(dāng)通過(guò)用戶操作指定字幕改變時(shí),執(zhí)行事件subtitleChange和事件處理程序onSubtitleChange()。
      圖14示出系統(tǒng)對(duì)象具有的事件處理程序的例子。在圖14中所示的事件處理程序是本地實(shí)施平臺(tái)301事先具有的事件處理程序。本地實(shí)施平臺(tái)301將事件處理程序通知給腳本層302。
      事件menu和事件處理程序onMenu()跳到菜單。事件menu是當(dāng)通過(guò)用戶操作按下菜單按鍵時(shí)本地實(shí)施平臺(tái)301通知給腳本層302的事件。腳本層302接收該事件,執(zhí)行對(duì)應(yīng)的事件處理程序onMenu(),并且用事件處理程序onMenu()排列和顯示組成菜單屏幕的GUI部分。事件exit和事件處理程序onExit()是當(dāng)本地實(shí)施平臺(tái)301完成UMD視頻應(yīng)用程序時(shí)其產(chǎn)生的事件和事件處理程序。
      當(dāng)用戶操作等指定UMD視頻播放器的操作的完成時(shí),本地實(shí)施平臺(tái)301將事件exit通知給腳本層302。當(dāng)腳本層302接收到事件exit時(shí),腳本用事件處理程序onExit()來(lái)執(zhí)行退出處理。事件autoPlay、事件處理程序onAutoPlay()、事件continuePlay和事件處理程序onContinuePlay()開始執(zhí)行對(duì)應(yīng)的腳本。
      除了系統(tǒng)對(duì)象的事件處理程序之外,還存在用于按鈕的事件處理程序。然而,用于按鈕的事件處理程序不與本發(fā)明緊密地相關(guān),所以將省略對(duì)它們的描述。
      隨后,將參照?qǐng)D15中所示的流程圖,簡(jiǎn)要描述當(dāng)用戶輸入事件發(fā)生時(shí)執(zhí)行所提供的程序的處理的例子。圖15示出這樣的例子在UMD視頻播放器從盤中正在正常再現(xiàn)數(shù)據(jù)的時(shí),當(dāng)用戶按下“next(下一個(gè))”按鍵使得UMD視頻播放器再現(xiàn)下一章時(shí),UDM視頻播放器根據(jù)該按鍵輸入跳到下一章,開始再現(xiàn)下一章,并且在屏幕上顯示準(zhǔn)備好的消息。
      在UMD視頻播放器從盤中正在正常再現(xiàn)數(shù)據(jù)的時(shí),當(dāng)用戶按下UMD視頻播放器的遙控器上的按鍵“next”時(shí)(在步驟S10),將按鍵VK_NEXT作為用戶輸入310提供給本地實(shí)施平臺(tái)301。本地實(shí)施平臺(tái)301產(chǎn)生與用戶輸入310對(duì)應(yīng)的用戶命令uo_playNextChapter()(在步驟S11)。本地實(shí)施平臺(tái)301將用戶命令uo_playNextChapter()通知給電影播放器300。
      當(dāng)電影播放器300接收到命令uo_playNextChapter()時(shí),電影播放器300搜索數(shù)據(jù)庫(kù)320以根據(jù)與播放列表信息對(duì)應(yīng)的當(dāng)前再現(xiàn)位置尋找下一章標(biāo)記(在步驟S12)。在步驟S13,確定是否存在下一章標(biāo)記。當(dāng)確定結(jié)結(jié)果表示下一章標(biāo)記不存在時(shí),電影播放器300不執(zhí)行章跳轉(zhuǎn)操作,而是繼續(xù)當(dāng)前的再現(xiàn)操作。
      相反,當(dāng)在步驟S13的確定結(jié)果表示存在下一章標(biāo)記時(shí),流程前進(jìn)到步驟S14。在步驟S14,電影播放器300停止當(dāng)前再現(xiàn)操作并且從數(shù)據(jù)庫(kù)320的剪切片段信息文件的特征點(diǎn)信息中獲得剪切片段AV流文件的下一章標(biāo)記的字節(jié)位置。在步驟S15,電影播放器300存取所獲得的文件的字節(jié)位置,并且開始從該位置再現(xiàn)流。
      在步驟S16之后,執(zhí)行在屏幕上顯示消息的處理,該消息通知用戶章改變了。當(dāng)改變章并且從該章的開始處開始再現(xiàn)時(shí),事件chapter(章)發(fā)生(在步驟S16)。例如,電影播放器300在章的開始處檢測(cè)章標(biāo)記,事件chapter發(fā)生。電影播放器300將事件chapter通知給腳本層302。在該事件之外,電影播放器300還將要被跳過(guò)的章的章號(hào)碼通知給腳本層302。腳本層302開始執(zhí)行與所通知的事件對(duì)應(yīng)的事件處理程序,例如事件處理程序onChapter()(在步驟S17)。
      在本例中,假設(shè)在事件處理程序中描述顯示消息的操作,該消息表示章改變了。腳本層302的腳本執(zhí)行事件處理程序,獲得當(dāng)事件發(fā)生時(shí)電影播放器300通知給腳本層302的章號(hào)碼(在步驟S18),并且使得本地實(shí)施平臺(tái)301在屏幕上顯示預(yù)定的消息,該消息表示例如所獲得的章號(hào)碼的開始。根據(jù)命令,本地實(shí)施平臺(tái)301在屏幕上顯示消息(在步驟S19),并且完成事件處理程序的處理(在步驟S20)。
      在上述處理中,當(dāng)用戶操作按鍵“next”使得電影播放器300開始再現(xiàn)下一章時(shí),電影播放器300執(zhí)行章跳轉(zhuǎn)操作并且當(dāng)電影播放器300開始再現(xiàn)要被跳轉(zhuǎn)的下一章時(shí)在屏幕上顯示表示該章的開始的消息。
      因此,用戶輸入事件使得電影播放器300的狀態(tài)改變。此外,用戶輸入事件使得新事件發(fā)生。使用新事件,電影播放器300可以執(zhí)行各種處理。
      圖16示出將盤裝載到UMD視頻播放器之后直到將盤從其彈出為止的處理。在圖17中,陰影的步驟表示正在執(zhí)行腳本的狀態(tài)。
      當(dāng)用戶將盤放到UMD視頻播放器的預(yù)定位置中時(shí),其根據(jù)預(yù)定操作裝載盤以便UMD視頻播放器可以從該盤再現(xiàn)視頻數(shù)據(jù)(在步驟S30)。當(dāng)裝載盤時(shí),本地實(shí)施平臺(tái)301參照恢復(fù)信息324并且從恢復(fù)信息324中裝載與盤對(duì)應(yīng)的連續(xù)再現(xiàn)信息(在步驟S31)。
      之后,參照與盤對(duì)應(yīng)的恢復(fù)信息324。確定是否存在連續(xù)再現(xiàn)信息(在步驟S32)。當(dāng)存在連續(xù)再現(xiàn)信息時(shí),本地實(shí)施平臺(tái)301將事件continuePlay通知給腳本層。腳本層302執(zhí)行與所通知的事件continuePlay對(duì)應(yīng)的事件處理程序onContinuePlay(在步驟S33)。當(dāng)在步驟S32的所確定的結(jié)果表示不存在與盤對(duì)應(yīng)的連續(xù)再現(xiàn)信息時(shí),流程前進(jìn)到步驟S34。在步驟S34,本地實(shí)施平臺(tái)301將事件autoPlay通知給腳本層302。腳本層302執(zhí)行與事件autoPlay對(duì)應(yīng)的事件處理程序onAutoPlay。
      在步驟S35,根據(jù)事件處理程序onAutoPlay和事件處理程序onContinuePlay的內(nèi)容來(lái)執(zhí)行用于盤的再現(xiàn)操作和其他操作。執(zhí)行與用于盤的再現(xiàn)操作對(duì)應(yīng)發(fā)生的事件和與該事件對(duì)應(yīng)的事件處理程序。
      當(dāng)本地實(shí)施平臺(tái)301產(chǎn)生事件exit時(shí),流程前進(jìn)到步驟S36。在步驟S36,腳本層302執(zhí)行與事件exit對(duì)應(yīng)的事件處理程序onExit。事件處理程序onExit執(zhí)行完成UMD視頻應(yīng)用程序的處理。本地實(shí)施平臺(tái)301根據(jù)在例如遙控器上的、作為預(yù)定操作的用戶輸入310來(lái)產(chǎn)生事件exit。
      當(dāng)完成根據(jù)事件處理程序onExit的腳本處理時(shí),本地實(shí)施平臺(tái)301進(jìn)行操作。在步驟S37,電影播放器300執(zhí)行停止再現(xiàn)操作的處理。在該點(diǎn)處,將電影播放器300停止再現(xiàn)操作之前緊鄰著存在的狀態(tài)存儲(chǔ)在恢復(fù)信息324中作為連續(xù)再現(xiàn)信息。完成盤的再現(xiàn)操作(在步驟S38)。在沒有完成針對(duì)相同盤的再現(xiàn)操作時(shí)(在步驟S39),流程前進(jìn)到步驟S40。在步驟S40,本地實(shí)施平臺(tái)301彈出盤并且完成處理步驟的序列。當(dāng)執(zhí)行針對(duì)相同盤的再現(xiàn)操作時(shí),流程返回到步驟S31。
      圖17示出腳本文件的結(jié)構(gòu)的例子。如圖1中所示,腳本文件是由腳本層302組成的文件“SCRIPT.DAT”。腳本文件由事件處理程序組和主處理部分組成。事件處理程序組由一個(gè)和多個(gè)事件處理程序組成。當(dāng)將事件的發(fā)生通知給腳本層302的任何時(shí)候,取回和執(zhí)行與所通知的事件對(duì)應(yīng)的事件處理程序。主處理部分描述在事件處理程序中所使用的全局變量的定義。初始地執(zhí)行主處理部分一次。
      圖18示出執(zhí)行事件處理程序onAutoPlay()的過(guò)程的例子。當(dāng)用戶將盤裝載到UMD視頻播放器300并且使得其從開始執(zhí)行盤的再現(xiàn)操作時(shí)(在步驟S50),電影播放器300執(zhí)行該過(guò)程。在步驟S51,本地實(shí)施平臺(tái)301確定腳本是否包含事件處理程序onAutoPlay()。該腳本包含事件處理程序onAutoPlay()時(shí),本地實(shí)施平臺(tái)301將事件autoPlay通知給腳本層302(在步驟S52)。在步驟S54,腳本層302執(zhí)行事件處理程序onAutoPlay()。因此,電影播放器300自動(dòng)開始從所裝載的盤再現(xiàn)數(shù)據(jù)。
      相反地,當(dāng)在步驟S51的確定結(jié)果表示腳本不包含事件處理程序onAutoPlay()時(shí),流程前進(jìn)到步驟S53。本地實(shí)施平臺(tái)301將事件exit通知給腳本層302。在這種情況下,當(dāng)用戶操作在本地實(shí)施平臺(tái)301中實(shí)施的菜單屏幕上的用于再現(xiàn)操作的菜單按鍵時(shí),電影播放器300開始從盤再現(xiàn)數(shù)據(jù)。當(dāng)腳本層302具有事件處理程序onExit()時(shí),腳本層302執(zhí)行事件處理程序onExit()。
      圖19示出執(zhí)行事件處理程序onContinuePlay()的過(guò)程的例子。當(dāng)用戶將盤裝載到UMD視頻播放器中并且使得電影播放器300執(zhí)行連續(xù)的再現(xiàn)操作時(shí)(在步驟S60),電影播放器300執(zhí)行該過(guò)程。在步驟S61,本地實(shí)施平臺(tái)301確定是否存在與所裝載的盤對(duì)應(yīng)的恢復(fù)信息324。當(dāng)恢復(fù)信息324不存在時(shí),流程前進(jìn)到步驟S62。在步驟S62,電影播放器300從開始執(zhí)行盤的再現(xiàn)操作。
      當(dāng)存在與所裝載的盤對(duì)應(yīng)的恢復(fù)信息324時(shí),流程前進(jìn)到步驟S63。在步驟S63,本地實(shí)施平臺(tái)01確定腳本是否包含事件處理程序onContinuePlay()。當(dāng)腳本包含事件處理程序onContinuePlay()時(shí),本地實(shí)施平臺(tái)301將事件處理程序onContinuePlay()通知給腳本層302。因此,腳本層302執(zhí)行事件處理程序onContinuePlay()(在步驟S64)。因此,電影播放器300根據(jù)事件處理程序onContinuePlay()恢復(fù)所裝載的盤的再現(xiàn)。
      相反,當(dāng)在步驟S63所確定結(jié)果表示腳本不包含事件處理程序onContinuePlay()時(shí),流程前進(jìn)槽步驟S65。在步驟S65,本地實(shí)施平臺(tái)301執(zhí)行默認(rèn)事件處理程序onContinuePlay()。默認(rèn)事件處理程序onContinuePlay()根據(jù)例如恢復(fù)信息324簡(jiǎn)單地從最后的再現(xiàn)結(jié)束位置開始再現(xiàn)操作。
      事件處理程序onAutoPlay和事件處理程序onContinuePlay的用戶接口不限于這些例子。替代地,可以使用各種方法。例如,在圖19中,在步驟S60,在用戶使得電影播放器300執(zhí)行連續(xù)再現(xiàn)操作之后,本地實(shí)施平臺(tái)301確定是否存在與所裝載的盤對(duì)應(yīng)的恢復(fù)信息324。替代地,相反,本地實(shí)施平臺(tái)301可以首先確定是否存在與所裝載的盤對(duì)應(yīng)的恢復(fù)信息324。當(dāng)存在恢復(fù)信息324時(shí),本地實(shí)施平臺(tái)301可以詢問(wèn)用戶是否要執(zhí)行連續(xù)再現(xiàn)操作。
      圖20示出當(dāng)完成再現(xiàn)操作時(shí)所執(zhí)行的過(guò)程的例子。在電影播放器300正在執(zhí)行盤的再現(xiàn)操作的情況下,當(dāng)用戶使得電影播放器300停止再現(xiàn)操作時(shí)(在步驟S70),電影播放器300執(zhí)行該處理。當(dāng)將使得電影播放器300停止再現(xiàn)操作的用戶輸入310輸入到本地實(shí)施平臺(tái)301時(shí),其開始退出處理(在步驟S71)。退出處理由例如下面三個(gè)步驟組成(1)限制新事件發(fā)生(2)丟棄已經(jīng)被排隊(duì)的事件處理器程序;和(3)將控制命令uo_stop()發(fā)布給電影播放器300。
      本地實(shí)施平臺(tái)301在步驟S71執(zhí)行退出處理。在本地實(shí)施平臺(tái)301停止當(dāng)前事件處理程序的執(zhí)行之后(在步驟S72),流程前進(jìn)到步驟S73。在步驟S73,本地實(shí)施平臺(tái)301將事件exit通知給腳本層302。因此,腳本層302執(zhí)行onExit()(在步驟S74)。事件處理程序onExit()執(zhí)行例如當(dāng)完成再現(xiàn)操作時(shí)所執(zhí)行的預(yù)定后續(xù)(post)處理和存儲(chǔ)用戶設(shè)置數(shù)據(jù)的方法setUserData。
      在步驟S75,本地實(shí)施平臺(tái)301執(zhí)行退出處理。在退出處理中,本地實(shí)施平臺(tái)301將連續(xù)信息存儲(chǔ)到例如非易失存儲(chǔ)器中(即,將完成再現(xiàn)操作之前緊鄰著存在的狀態(tài)備份到恢復(fù)信息324中)并且使得系統(tǒng)菜單顯示在屏幕上。
      播放器模型可以再現(xiàn)視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)。由于內(nèi)容創(chuàng)作者期望的事件在他或者她所期望的再現(xiàn)時(shí)間發(fā)生并且執(zhí)行他或者她所期望的對(duì)應(yīng)事件處理程序,所以可以完成他或者她所期望的操作。此外,當(dāng)用戶操作正在執(zhí)行盤的再現(xiàn)操作的UMD視頻播放器時(shí),本地實(shí)施平臺(tái)301將與用戶操作對(duì)應(yīng)的命令通知給電影播放器300,以便將播放器的狀態(tài)改變到用戶所期望的狀態(tài)。此外,本地實(shí)施平臺(tái)301將對(duì)應(yīng)于用戶輸入的事件通知給腳本層302,結(jié)果,腳本層302可以完成與用戶操作對(duì)應(yīng)的、內(nèi)容創(chuàng)作者所期望的操作。當(dāng)播放器模型具有這種結(jié)構(gòu)時(shí),用戶可以互動(dòng)地操作視頻播放器來(lái)再現(xiàn)視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)。
      5.腳本程序的例子隨后,將描述腳本層302的腳本程序的例子。假設(shè)內(nèi)容創(chuàng)作者創(chuàng)作如圖21中所示的內(nèi)容再現(xiàn)的流程。在圖21中所示的內(nèi)容具有播放列表400和401、頂部菜單402和消息403作為顯示部件。播放列表400用于顯示當(dāng)裝載盤時(shí)所自動(dòng)顯示的警告消息。播放列表401是作為內(nèi)容的例子的電影的主要部分。頂部菜單402具有諸如按鈕的GUI部件,用戶使用按鈕使得播放列表401進(jìn)行再現(xiàn)。在播放列表401的任何再現(xiàn)時(shí)間顯示消息403。
      此外,在圖21中所示的結(jié)構(gòu)中,提供幾個(gè)事件處理程序。當(dāng)將盤裝載到UMD視頻播放器中時(shí),事件處理程序onAutoPlay()自動(dòng)地從盤再現(xiàn)播放列表400并且將警告消息顯示在屏幕上。事件處理程序onPlayListEnd()是當(dāng)完成播放列表的再現(xiàn)時(shí)被調(diào)用的事件處理程序。在圖21中所示的例子中,當(dāng)完成播放列表400和播放列表401的再現(xiàn)時(shí),調(diào)用事件處理程序onPlayListEnd()。換句話說(shuō),事件處理程序onPlayListEnd()確定哪個(gè)播放列表的再現(xiàn)完成了。當(dāng)完成了播放列表400的再現(xiàn)時(shí),事件處理程序onPlayListEnd()開始播放列表401的再現(xiàn)。當(dāng)完成播放列表401的再現(xiàn)時(shí),事件處理程序onPlayListEnd調(diào)用頂部菜單402。
      當(dāng)用戶操作菜單按鍵時(shí)調(diào)用事件處理程序onMenu()。事件處理程序onMenu()調(diào)用頂部菜單402并且將其顯示在屏幕上。當(dāng)經(jīng)過(guò)標(biāo)志Mark(標(biāo)志)所指定的再現(xiàn)時(shí)間時(shí)執(zhí)行事件處理程序onMark()。在圖21中所示的例子中,將標(biāo)志Mark設(shè)置在播放列表401中。當(dāng)再現(xiàn)播放列表401并且由標(biāo)志Mark所指定的再現(xiàn)事件經(jīng)過(guò)時(shí),將消息403顯示在屏幕上。
      在圖21中所示的例子中,當(dāng)將盤裝載到UDM視頻播放器中時(shí),調(diào)用事件處理程序onAutoPlay。事件處理程序onAutoPlay再現(xiàn)播放列表400并且顯示警告消息。在播放列表400的再現(xiàn)事件已經(jīng)過(guò)去之后,在播放列表400的結(jié)尾處,調(diào)用事件處理程序onPlayListEnd。事件處理程序onPlayListEnd確定已經(jīng)完成了再現(xiàn)播放列表400并且再現(xiàn)下一個(gè)播放列表401。在正在再現(xiàn)播放列表401的同時(shí)用戶操作菜單按鍵時(shí),調(diào)用事件處理程序onMenu。事件處理程序onMenu將頂部菜單402顯示在屏幕上。事件處理程序onMenu開始從與頂部菜單402上的預(yù)定位置對(duì)應(yīng)的開始處開始再現(xiàn)播放列表401。當(dāng)播放列表401的再現(xiàn)時(shí)間已經(jīng)經(jīng)過(guò)標(biāo)志Mark所指定的時(shí)間時(shí),調(diào)用事件處理程序onMark。事件處理程序onMark在屏幕上顯示消息403。當(dāng)已經(jīng)完成了再現(xiàn)播放列表401時(shí),調(diào)用事件處理程序onPlayListEnd。事件處理程序確定是否已經(jīng)完成了再現(xiàn)播放列表401并且將頂部菜單402顯示在屏幕上。
      圖22示出完成圖21中所示的操作的腳本程序的例子。如上所述,腳本程序具有事件處理程序并且當(dāng)對(duì)應(yīng)事件發(fā)生時(shí)執(zhí)行它們。將腳本程序存儲(chǔ)在將在后面描述的文件“SCRIPT.DAT”中。
      方法“movieplayer.play()”使得電影播放器300再現(xiàn)播放列表。在括號(hào)()中描述要被再現(xiàn)的播放列表號(hào)碼作為參量。當(dāng)已經(jīng)再現(xiàn)了播放列表時(shí),事件playListEnd發(fā)生。當(dāng)事件playListEnd發(fā)生時(shí),腳本調(diào)用事件處理程序movieplayer.onPlayListEnd()。在該點(diǎn)上,在事件playListEnd之外,還將對(duì)象event_info提供給腳本。將已經(jīng)完成了再現(xiàn)的播放列表的播放列表號(hào)碼等存儲(chǔ)在對(duì)象event_info中。該腳本可以改變與對(duì)象event_info的內(nèi)容對(duì)應(yīng)的下一個(gè)操作。
      6.文件管理結(jié)構(gòu)下面,參照?qǐng)D23,將描述根據(jù)UMD視頻標(biāo)準(zhǔn)的文件管理結(jié)構(gòu)。將文件層級(jí)地管理在目錄結(jié)構(gòu)中并且存儲(chǔ)在盤上。可以使用由國(guó)際標(biāo)準(zhǔn)化組織(ISO)9660或者通用盤格式(UDF)所標(biāo)準(zhǔn)化的盤文件系統(tǒng)。
      將文件“TITLEID.DAT”和目錄“VIDEO”放置在根目錄下。將目錄“RESOURE”、目錄“CLIP”、目錄“STREAM”和文件“PLAYLIST.DAT”放置在目錄“VIDEO”下。
      文件“TITILEID.DAT”是存儲(chǔ)在每個(gè)標(biāo)題中不同的標(biāo)題標(biāo)識(shí)符(內(nèi)容的類型)的文件。一個(gè)盤具有一個(gè)文件“TITLEID.DAT”。
      將文件“SCRIPT.DAT”放置在目錄“RESOURCE”下面。如上所述,文件“SCRIPT.DAT”存儲(chǔ)組成腳本層302的腳本程序。通常,將作為一個(gè)文件的文件“SCRIPT.DAT”放置在目錄“RESOURCE”下面。替代地,可以將多個(gè)文件“SCRIPT.DAT”放置在目的“RESOURCE”下面。在這種情況下,改變文件名的某些部分使得它們變得唯一。多個(gè)文件“SCRIPT.DAT”用于不同的顯示語(yǔ)言。然而,在這種情況下,每次使用一個(gè)文件“SCRIPT.DAT”。
      將至少一個(gè)剪切片段信息文件放置在目錄“CLIP”下。剪切片段信息文件具有由下面部分組成的文件名諸如“00001”之類在具有幾個(gè)到五個(gè)字符的字符串部分(在本例中,是數(shù)字)、作為分界符的點(diǎn)和諸如“CLP”之類的擴(kuò)展部分。擴(kuò)展部分“CLP”表示文件是剪切片段信息文件。
      將至少一個(gè)剪切片段AV流文件放置在目錄“STREAM”下。剪切片段AV流文件具有由下面部分組成的文件名諸如“00001”之類在具有幾個(gè)到五個(gè)字符的字符串部分(在本例中,是數(shù)字)、作為分界符的點(diǎn)和諸如“PS”之類的擴(kuò)展部分。擴(kuò)展部分“PS”表示文件是剪切片段AV流文件。根據(jù)本發(fā)明的實(shí)施方式,剪切片段AV流文件是MPEG2(運(yùn)動(dòng)圖像專家組2)節(jié)目流,即將視頻流、音頻流和字幕流復(fù)用其中并且將其存儲(chǔ)在由擴(kuò)展部分“PS”所標(biāo)識(shí)的文件中。
      如上所述,剪切片段AV流文件是將視頻數(shù)據(jù)和音頻數(shù)據(jù)壓縮編碼和時(shí)分復(fù)用的文件。因此,當(dāng)讀取和解碼剪切片段AV流文件時(shí),獲得視頻數(shù)據(jù)和音頻數(shù)據(jù)。剪切片段信息文件時(shí)描述剪切片段AV流文件的特征的文件。因此,將剪切片段信息文件和剪切片段AV流文件相關(guān)聯(lián)。根據(jù)本發(fā)明的實(shí)施方式,由于剪切片段信息文件和剪切片段AV流文件的文件名的具有幾個(gè)到五個(gè)字符的字符串部分相同,所以可以容易地獲得它們之間的關(guān)系。
      文件“SCRIPT.DAT”是描述腳本程序的腳本文件。根據(jù)本發(fā)明的實(shí)施方式,文件“SCRIPT.DAT”存儲(chǔ)使得盤的再現(xiàn)狀態(tài)互動(dòng)地改變的程序。在讀取其他文件之前從盤中讀取文件“SCRIPT.DAT”。
      文件“PLAYLIST.DAT”是描述指定剪切片段AV流的再現(xiàn)順序的播放列表的播放列表文件。下面,將參照?qǐng)D24到26來(lái)描述文件“PLAYLIST.DAT”的內(nèi)部結(jié)構(gòu)。圖24示出表示文件“PLAYLIST.DAT”的整個(gè)結(jié)構(gòu)的語(yǔ)法的例子。在該例子中,以用作計(jì)算機(jī)設(shè)備的程序的描述性語(yǔ)言的C語(yǔ)言倆描述語(yǔ)法。這種情況也應(yīng)用于表示其他語(yǔ)法的表。
      字段name_length具有8比特的數(shù)據(jù)長(zhǎng)度并且表示分配給播放列表文件的名稱的長(zhǎng)度。字段name_string具有255字節(jié)的數(shù)據(jù)長(zhǎng)度并且表示分配給播放列表文件的名稱。在字段name_string中,將從開始由自動(dòng)name_length所表示的字節(jié)長(zhǎng)度的區(qū)域用作有效名稱。當(dāng)字段“name_length”的值為“10”時(shí),將從字段name_string的開始10個(gè)字節(jié)解釋為有效名稱。
      字段number_of_PlayList具有16比特的數(shù)據(jù)長(zhǎng)度并且表示其后跟隨的塊PlayList()的數(shù)量。字段number_of_PlayList之后跟隨著for循環(huán)。for循環(huán)描述與字段number_of_PlayList對(duì)應(yīng)的塊PlayList()。塊PlayList()是播放列表自身。
      下面,將描述塊PlayList()的內(nèi)部結(jié)構(gòu)。塊PlayList()以字段PlayList_data_length開始。字段PlayList_data_length具有32比特的數(shù)據(jù)長(zhǎng)度并且表示包括字段PlayList_data_length的塊PlayList()的數(shù)據(jù)長(zhǎng)度。字段PlayList_data_length之后跟隨著具有15比特?cái)?shù)據(jù)長(zhǎng)度的字段reserved_for_word_alignment和具有1比特的數(shù)據(jù)長(zhǎng)度的標(biāo)記capture_enable_flag_PlayList字段reserved_for_word_alignment和具有1比特?cái)?shù)據(jù)長(zhǎng)度的capture_enable_flag_PlayList在塊PlayList()中以16比特位置對(duì)準(zhǔn)數(shù)據(jù)。
      標(biāo)記capture_enable_flag_PlayList是表示是否允許輔助使用屬于包括標(biāo)記capture_enable_flag_PlayList的塊PlayList()的運(yùn)動(dòng)圖像。當(dāng)標(biāo)記capture_enable_flag_PlayList的值是例如“1”時(shí),其表示允許在播放器中輔助使用屬于PlayList()的運(yùn)動(dòng)圖像。
      在上面的例子中,標(biāo)記capture_enable_flag_PlayList具有1比特的數(shù)據(jù)長(zhǎng)度。替代地,標(biāo)記capture_enable_flag_PlayList可以具有描述多個(gè)輔助使用允許等級(jí)的多個(gè)比特的數(shù)據(jù)長(zhǎng)度。在這種情況下,當(dāng)該標(biāo)記的值為“0”時(shí),可能不能夠完全禁止輔助使用運(yùn)動(dòng)圖像。當(dāng)該標(biāo)記的值為“1”時(shí),在用諸如64像素×64線的預(yù)定分辨率或者更低的分辨率來(lái)壓縮編碼運(yùn)動(dòng)圖像的情況下,可以允許輔助使用運(yùn)動(dòng)圖像。當(dāng)該標(biāo)記值為“2”時(shí),可以在沒有任何限制的情況下允許完全輔助使用運(yùn)動(dòng)圖像。替代地,當(dāng)該標(biāo)志的比特0的值為“0”時(shí),可以允許在內(nèi)容再現(xiàn)應(yīng)用程序中輔助使用運(yùn)動(dòng)圖像。當(dāng)該標(biāo)記的比特1的值為“1”時(shí),可以允許在電影播放器中的另一個(gè)應(yīng)用程序(例如,墻紙圖像或者屏幕保護(hù)程序)中輔助使用運(yùn)動(dòng)圖像。在這種情況下,該標(biāo)志的比特0和1的值可以組合使用。
      字段PlayList_name_length具有8比特的數(shù)據(jù)長(zhǎng)度并且表示分配給塊PlayList()的名稱的長(zhǎng)度。字段PlayList_name_string具有255比特的數(shù)據(jù)長(zhǎng)度并且表示分配給塊PlayList()的名稱。在字段PlayList_name_string中,從開始起的、由字段PlayList_name_length表示的字節(jié)長(zhǎng)度的區(qū)域用作有效名稱。
      字段number_of_PlayItems具有16比特的數(shù)據(jù)長(zhǎng)度并且表示隨后的塊PlayItem()的數(shù)量。字段number_of_PlayItems之后跟隨著for循環(huán)。該for循環(huán)描述與字段number_of_PlayItems對(duì)應(yīng)的塊PlayItem()。塊PlayItem()是播放項(xiàng)目自身。
      塊PlayList的塊PlayItem()分配有標(biāo)識(shí)信息(ID)。例如,在塊PlayList()的開始處所描述的塊PlayItem()分配有例如0。塊PlayItem()以諸如1、2等出現(xiàn)的順序分配有序號(hào)。該序號(hào)用作塊PlayItem()的標(biāo)識(shí)信息。可以將針對(duì)塊PlayItem()重復(fù)的for循環(huán)的參量i用于塊PlayItem()的標(biāo)識(shí)信息。塊PlayItem()之后跟隨有塊PlayListMark()。
      下面,將參照?qǐng)D25來(lái)描述塊PlayItem()的內(nèi)部結(jié)構(gòu)。塊PlayItem()以字段length開始。字段length具有16比特的數(shù)據(jù)長(zhǎng)度并且表示塊PlayItem()的長(zhǎng)度。字段length之后跟隨有字段Clip_Information_file_name_length。字段Clip_Information_file name_length具有16比特的數(shù)據(jù)長(zhǎng)度并且表示與PlayItem()對(duì)應(yīng)的剪切片段信息文件的名稱的長(zhǎng)度。字段Clip_Information_file_name_length具有以字節(jié)計(jì)算的可變數(shù)據(jù)長(zhǎng)度并且表示與塊PlayItem()對(duì)應(yīng)的剪切片段信息文件的名稱。在字段Clip_Information_file_name中,從開始起的、由字段Clip_Information_file_name_length表示的字節(jié)長(zhǎng)度的區(qū)域用作有效名稱。當(dāng)由字段Clip_Information_file_name來(lái)指定剪切片段信息文件時(shí),可以根據(jù)文件名稱的上述關(guān)系來(lái)標(biāo)識(shí)與剪切片段信息文件對(duì)應(yīng)的剪切片段AV流文件。
      字段IN_time和字段OUT_time每個(gè)具有32比特的數(shù)據(jù)長(zhǎng)度。字段IN_time和字段OUT_time是指定與在塊PlayItem()中的字段Clip_Information_file_name所指定的剪切片段信息文件對(duì)應(yīng)的剪切片段AV流文件的再現(xiàn)開始位置和再現(xiàn)結(jié)束位置的時(shí)間信息。使用字段IN_time和OUT_time,可以指定除剪切片段AV流文件的開始之外的再現(xiàn)開始位置。類似地,使用字段IN_time和字段OUT_time,可以指定除剪切片段AV流文件的結(jié)尾之外的再現(xiàn)結(jié)束位置。
      下面,將描述塊PlayListMark()的內(nèi)部結(jié)構(gòu)的例子。塊PlayListMark()以字段length開始。字段length具有32比特的數(shù)據(jù)長(zhǎng)度并且表示塊PlayListMark()的長(zhǎng)度。字段length之后跟隨有字段number_of_PlayList_marks。字段number_of_PlayList_marks具有16比特的字節(jié)長(zhǎng)度并且表示塊Mark()的數(shù)量。字段number_of_PlayList_marks之后跟隨有for循環(huán)。該for循環(huán)描述與字段number_of_PlayList_marks對(duì)應(yīng)的塊Mark()。
      下面,將描述塊Mark()的內(nèi)部結(jié)構(gòu)。塊Mark()以字段mark_type開始。字段mark_type具有8比特的數(shù)據(jù)長(zhǎng)度并且表示包括字段mark_type的塊Mark()的類型。根據(jù)本實(shí)施方式,如圖27中所示,定義了三種標(biāo)志類型章標(biāo)志、索引標(biāo)志和事件標(biāo)志。章是分割播放列表(塊PlayList())的搜索單元。索引是分割章的搜索單元。章標(biāo)志和索引標(biāo)志分別表示章位置和索引位置作為時(shí)間信息。事件標(biāo)志是使得事件發(fā)生的標(biāo)志。
      字段mark_name_length具有8比特的數(shù)據(jù)長(zhǎng)度并且表示分配給塊Mark()的名稱的長(zhǎng)度。在塊Mark()的最后一行中的字段mark_name_string表示分配給塊Mark()的名稱。在字段mark_name_string中,從開始起的、由mark_name_length表示的字節(jié)長(zhǎng)度的區(qū)域用作有效名稱。
      字段ref_to_PlayItem_id、字段mark_time_stamp、字段entry_ES_stream_id和字段entry_ES_private_stream_id的四個(gè)部分將在塊PlayList()中所定義的塊Mark()與剪切片段AV流文件相關(guān)聯(lián)。換句話說(shuō),字段ref_to_PlayItem_id具有16比特的數(shù)據(jù)長(zhǎng)度并且表示塊PlayItem()的標(biāo)識(shí)信息。因此,字段ref_to_PlayItem_id標(biāo)識(shí)剪切片段信息文件和剪切片段AV流文件。
      字段mark_time_stamp具有32比特的數(shù)據(jù)長(zhǎng)度并且指定剪切片段AV流文件中的標(biāo)志的時(shí)間。下面,將參照?qǐng)D28簡(jiǎn)要描述字段mark_time_stamp。在圖28中,播放列表由分配為0、1和2的三個(gè)播放項(xiàng)目組成(PlayItem(#0)、PlayItem(#1)和PlayItem(#2))。播放列表的時(shí)間t0包括在播放項(xiàng)目1(PlayItem(#1))中。播放項(xiàng)目0、1和2通過(guò)剪切片段信息文件與剪切片段流文件的節(jié)目流A、B和C分別對(duì)應(yīng)。
      在這種情況下,當(dāng)將標(biāo)志指定給播放列表的時(shí)間t0時(shí),字段ref_to_PlayItem_id的值是“1”,其表示播放項(xiàng)目1包括時(shí)間t0。此外,在字段mark_time_stamp中描述在對(duì)應(yīng)的剪切片段AV流文件中與時(shí)間t0對(duì)應(yīng)的時(shí)間。
      返回到圖26的描述,字段mark_time_stamp之后跟隨由字段entry_ES_stream_id和字段entry_ES_private_stream_id。字段entry_ES_stream_id和字段entry_ES_private_stream_id每個(gè)具有8比特的數(shù)據(jù)長(zhǎng)度。當(dāng)將塊Mark()與預(yù)定的基本流相關(guān)聯(lián)時(shí),字段entry_ES_stream_id和entry_ES_private_stream_id標(biāo)識(shí)基本流。字段entry_ES_stream_id和字段entry_ES_private_stream_id分別表示其中復(fù)用基本流的分組(packet())的流ID(stream_id)和專用分組頭部(private_packet_header())的專用流ID(private_stream_id)。
      分組(packet())的流ID(stream_id)和專用分組頭部(private_packet_header())的專用分組頭部基于MPEG2系統(tǒng)的節(jié)目流的規(guī)定。當(dāng)剪切片段AV流#0的章結(jié)構(gòu)與剪切片段AV流#1的不同時(shí),使用字段entry_ES_stream_id和字段entry_ES_private_stream_id。當(dāng)不將塊Mark()與預(yù)定的基本流相關(guān)聯(lián)時(shí),這兩個(gè)字段的值為“0”。
      下面,參照?qǐng)D29到圖33來(lái)描述剪切片段信息文件的內(nèi)部結(jié)構(gòu)。如上所述,剪切片段信息文件“XXXXX.CLP”描述放置在目錄“STREAM”下的對(duì)應(yīng)剪切片段AV流文件“XXXXX.PS”的特征等。
      圖29示出表示剪切片段AV流文件“XXXXX.CLP”的整個(gè)結(jié)構(gòu)的語(yǔ)法的例子。剪切片段AV流文件“XXXXX.CLP”以字段presentation_start_time和字段presentation_end_time開始。字段presentation_start_time和字段presentation_end_time每個(gè)具有32比特的數(shù)據(jù)長(zhǎng)度,并且表示對(duì)應(yīng)剪切片段AV流文件的開始和結(jié)束的時(shí)間。作為時(shí)間信息,可以使用MPEG2系統(tǒng)的呈現(xiàn)時(shí)間戳(PTS)。PTS具有90kHz的準(zhǔn)確度。
      字段presentation_start_time和字段presentation_end_time之后跟隨有具有7比特的數(shù)據(jù)長(zhǎng)度的字段reserved_for_word_alignment和具有1比特的數(shù)據(jù)長(zhǎng)度的標(biāo)記capture_enable_flag_Clip。字段reserved_for_worrd_alignment和具有1比特的數(shù)據(jù)長(zhǎng)度的標(biāo)記capture_enable_flag_Clip在文件“XXXXX.CLP”中以16比特位置對(duì)準(zhǔn)數(shù)據(jù)。標(biāo)志capture_enable_flag_Clip是表示是否允許輔助使用與文件“XXXXX.CLP”對(duì)應(yīng)的剪切片段AV流文件中所包含的運(yùn)動(dòng)畫面的標(biāo)記。例如,當(dāng)標(biāo)記capture_enable_flag_Clip的值是例如“1”時(shí),其表示允許在視頻播放器中輔助使用與文件“XXXXX.CLP”對(duì)應(yīng)的剪切片段AV流文件的運(yùn)動(dòng)畫面。
      字段number_of_streams具有8比特的數(shù)據(jù)長(zhǎng)度并且表示隨后的塊StreamInfo()的數(shù)量。字段number_of_streams之后跟隨有for循環(huán)。該for循環(huán)描述與字段number_of_streams對(duì)應(yīng)的塊StreamInfo()。該for循環(huán)之后跟隨有塊EP_map()。
      隨后,將描述塊StreamInfo()的內(nèi)部結(jié)構(gòu)的例子。塊StreamInfo()以字段length開始。字段length具有16比特的數(shù)據(jù)長(zhǎng)度并且表示塊StreamInfo()的長(zhǎng)度。字段length之后跟隨有每個(gè)具有8比特的數(shù)據(jù)長(zhǎng)度的字段stream_id和字段private_stream_id。如圖30中所示,將塊StreamInfo()與基本流相關(guān)聯(lián)。在圖30中所示的例子中,當(dāng)塊StreamInfo()的字段stream_id在從“0xE0”到“0xEF”的范圍中時(shí),將塊StreamInfo()與視頻流相關(guān)聯(lián)。當(dāng)塊StreamInfo()的字段stream_id的值為“0xBD”時(shí),將塊StreamInfo()與自適應(yīng)變換聲音編碼(AdaptiveTransformAcoustic Coding,ATRAC)音頻流、線性脈沖碼調(diào)制(Linear Pulse CodeModulation,LPCM)或者字幕流相關(guān)聯(lián)。當(dāng)塊StreamInfo()的字段private_stream_id的值在從“0x00”到“0x0F”、從“0x10”到“0x1F”和從“0x80”到“0x90”的范圍中時(shí),將塊StreamInfo()與ATRAC音頻流、LPCM音頻流和字幕流分別相關(guān)聯(lián)。
      在圖30中,“0x”表示十六進(jìn)制記號(hào)。還將這種記號(hào)應(yīng)用下面的描述。
      塊StreamInfo()主要描述兩種類型的信息,第一種類型在流中不變化,第二種類型在流中變化。在塊StaticInfo()中描述在流中不變化的信息,而用時(shí)間信息所指定的變化點(diǎn)在塊DynamicInfo()中描述在流中變化的信息。
      塊StaticInfo()之后跟隨有具有8比特?cái)?shù)據(jù)長(zhǎng)度的字段reserved_for_word_alignment。字段reserved_for_word_alignment在塊StreamInfo()中以字節(jié)對(duì)準(zhǔn)數(shù)據(jù)。字段reserved_for_word_alignment之后跟隨有字段number_of_DynamicInfo。字段number_of_DynamicInfo具有8比特的數(shù)據(jù)長(zhǎng)度并且表示所跟隨的塊DynamicInfo()的數(shù)量。字段number_of_DynamicInfo之后跟隨有for循環(huán)。該for循環(huán)描述字段pts_change_point和與字段number_of_DynamicInfo對(duì)應(yīng)的塊DynamicInfo()。
      字段pts_change_point具有32比特的數(shù)據(jù)長(zhǎng)度并且以PTS表示塊DynamicInfo()的信息變?yōu)橛行У臅r(shí)間。每個(gè)流開始的時(shí)間由字段pts_change_point表示并且等于在文件“XXXXX.CLP”中所定義的字段presentation_start_time。
      下面,將參照?qǐng)D31來(lái)描述塊StaticInfo()的內(nèi)部結(jié)構(gòu)。塊StaticInfo()的內(nèi)容依賴于對(duì)應(yīng)基本流的類型??梢杂蓤D30中所示的字段stream_id和字段private_stream_id的值來(lái)標(biāo)識(shí)對(duì)應(yīng)基本流的類型。圖31示出其內(nèi)容依賴于基本流的類型而變化的塊StaticInfo(),使用if語(yǔ)句該基本流可以是視頻流、音頻流或者字幕流。下面,將根據(jù)基本流的類型來(lái)描述塊StaticInfo()。
      當(dāng)基本流是視頻流時(shí),塊StaticInfo()由字段picture_size、字段frame_rate和標(biāo)記cc_flag組成。字段picture_size和字段frame_rate每個(gè)具有4比特的數(shù)據(jù)長(zhǎng)度。標(biāo)記cc_flag具有1比特的數(shù)據(jù)長(zhǎng)度。字段picture_size和字段frame_size表示視頻流的畫面大小和幀頻率。標(biāo)記cc_flag表示視頻流是否包含閉路字幕(cloased caption)。當(dāng)標(biāo)記cc_flag的值例如是“1”時(shí),視頻流包含閉合字幕。字段reserved_for_word_alignment以16比特對(duì)準(zhǔn)數(shù)據(jù)。
      當(dāng)基本流是音頻流時(shí),塊StaticInfo()由基于16比特的數(shù)據(jù)長(zhǎng)度的字段audio_language_code、具有8比特的數(shù)據(jù)長(zhǎng)度的字段channel_configuration、具有1比特的數(shù)據(jù)長(zhǎng)度的標(biāo)記lfe_existence和具有4比特的數(shù)據(jù)長(zhǎng)度的字段sampling_frquency組成。字段audio_language_code表示在音頻流中所包含的語(yǔ)言代碼。字段channel_configuration表示諸如單聲道、立體聲、多聲道之類的音頻數(shù)據(jù)的屬性。字段lfe_existence表示音頻流是否包含重低音(low frequencyemphasis)聲道。當(dāng)字段lfe_existence的值是例如“1”時(shí),音頻流包含重低音聲道。字段sampling_frequency表示音頻數(shù)據(jù)的采樣頻率。字段reserved_for_word_alignment以16比特位置對(duì)準(zhǔn)。
      當(dāng)基本流是字幕流時(shí),塊StaticInfo()由具有16比特的數(shù)據(jù)長(zhǎng)度的字段subtitle_language_code和具有1比特的數(shù)據(jù)長(zhǎng)度的標(biāo)記configurable_flag組成。字段subtitle_language_code表示在字幕流中所包含的語(yǔ)言代碼。字段subtitle_language_code表示字幕流是正常字幕還是解說(shuō)字幕(例如,用于描述畫面的特殊字幕)。標(biāo)記configurable_flag表示是否允許改變所顯示的字幕流的字符的大小和位置。當(dāng)標(biāo)記configurable_flag的值是例如“1”時(shí),其表示允許改變所顯示的字幕流的字符的大小和位置。字段reserved_for_word_alignment以16比特位置對(duì)準(zhǔn)。
      下面,將參照?qǐng)D32來(lái)描述塊DynamicInfo()的內(nèi)部結(jié)構(gòu)的例子。塊DynamicInfo()以具有8比特的字段reserved_for_word_alignment開始。在字段reserved_for_word_alignment之后的組成部分依賴于基本流的類型。由圖30中所描述的字段stream_id和字段private_stream_id來(lái)標(biāo)識(shí)基本流的類型。在圖32中,塊DynamicInfo()的內(nèi)容依賴于基本流的類型而變化,使用if語(yǔ)句其可以是視頻流、音頻流或者字幕流。下面,將根據(jù)基本流的類型來(lái)描述塊DynamicInfo()。
      當(dāng)基本流是視頻流時(shí),塊DynamicInfo()由具有4比特的數(shù)據(jù)長(zhǎng)度的字段display_aspect_ratio組成。字段display_aspect_ratio表示視頻數(shù)據(jù)的顯示輸出寬高比是16∶9還是4∶3。字段reserved_for_word_alignment以16比特對(duì)準(zhǔn)數(shù)據(jù)。
      當(dāng)基本流是音頻流時(shí),塊DynamicInfo()由具有4比特的數(shù)據(jù)長(zhǎng)度的字段channel_assignment組成。當(dāng)音頻流由兩個(gè)聲道組成時(shí),字段channel_assignment表示輸出是立體聲還是雙單聲道。使用雙單聲道以例如兩種語(yǔ)言來(lái)再現(xiàn)音頻數(shù)據(jù)。字段reserved_for_word_alignment以16比特對(duì)準(zhǔn)數(shù)據(jù)。
      當(dāng)基本流是字幕流時(shí),塊DynamicInfo()由字段reserved_for_word_alignment組成。字段reserved_for_word_alignment以16比特對(duì)準(zhǔn)數(shù)據(jù)。換句話說(shuō),關(guān)于字幕流,塊DynamicInfo()不定義動(dòng)態(tài)變化的屬性。
      下面,將參照?qǐng)D33來(lái)描述塊EP_map()的內(nèi)部結(jié)構(gòu)的例子。塊EP_map()用時(shí)間信息和位置信息來(lái)表示每個(gè)基本流的比特流的有效解碼開始位置(進(jìn)入點(diǎn))。位置信息可以是用于在其上記錄基本流的記錄介質(zhì)的最小存取單元??梢詮膲KEP_map()所表示的位置解碼每個(gè)基本流。
      由于可以計(jì)算固定速率流的有效解碼開始位置。在另一方面,對(duì)于可變速率流和諸如根據(jù)MPEG視頻壓縮編碼系統(tǒng)的流之類的、其數(shù)據(jù)大小在每個(gè)存取單元中變化的流,塊EP_map()是用于隨機(jī)存取數(shù)據(jù)的信息。
      塊EP_map()以具有8比特?cái)?shù)據(jù)長(zhǎng)度的字段reserved_for_word_alignment開始。字段reserved_for_word_alignment以16比特對(duì)準(zhǔn)數(shù)據(jù)。字段reserved_for_word_alignment之后跟隨有字段number_of_sream_id_entries。字段number_of_sream_id_entries具有8比特的數(shù)據(jù)長(zhǎng)度并且表示在塊EP_map()中的基本流的數(shù)量。第一for循環(huán)描述與字段number_of_sream_id_entries對(duì)應(yīng)的字段stream_id、字段private_stream_id和字段number_of_EP_entries。在第一for循環(huán)中,第二for循環(huán)描述與字段number_of_EP_entries對(duì)應(yīng)的字段PTS_EP_start和字段RPN_EP_start。
      第一for循環(huán)描述每個(gè)具有8比特的數(shù)據(jù)長(zhǎng)度并且標(biāo)識(shí)基本流的類型的、如圖30所示的字段stream_id和字段private_stream_id。字段stream_id和字段private_stream_id之后跟隨有字段number_of_EP_entries。字段number_of_EP_entries具有32比特的數(shù)據(jù)長(zhǎng)度并且表示在基本流中所描述的進(jìn)入點(diǎn)的數(shù)量。第二for循環(huán)描述與字段number_of_EP_entries對(duì)應(yīng)的字段PTS_EP_start和字段RPN_EP_start。
      字段PTS_EP_start和RPN_EP_start每個(gè)具有32比特的數(shù)據(jù)長(zhǎng)度并且表示它們自己表示進(jìn)入點(diǎn)。字段PTS_EP_start用PTS表示在剪切片段AV流文件中的進(jìn)入點(diǎn)的時(shí)間。在另一方面,字段RPN_EP_start以2048字節(jié)的單位表示在剪切片段AV流文件中的進(jìn)入點(diǎn)的位置。
      根據(jù)本實(shí)施方式,作為盤存取單元的一個(gè)扇區(qū)是2048字節(jié)。因此,字段RPN_EP_start以扇區(qū)表示剪切片段AV流文件的進(jìn)入點(diǎn)的位置。
      視頻流的有效再現(xiàn)開始位置需要緊接這分組private_stream_2之后。分組private_stream_2是存儲(chǔ)可以被用于解碼視頻流的信息的分組。因此,視頻流的進(jìn)入點(diǎn)的位置是存儲(chǔ)分組private_stream_2的包pack()的位置。
      塊EP_map將剪切片段AV流的時(shí)間和剪切片段AV流文件的位置相關(guān)聯(lián)。因此,使用剪切片段AV流的存取點(diǎn)的時(shí)間信息(時(shí)間戳),可以容易地搜索剪切片段AV流文件以尋找從其讀取數(shù)據(jù)的數(shù)據(jù)地址。作為結(jié)果,可以流暢地對(duì)盤進(jìn)行隨機(jī)存取。
      根據(jù)本實(shí)施方式,在塊EP_map()中,以升序(降序)預(yù)先注冊(cè)針對(duì)每個(gè)基本流的時(shí)間信息和位置信息的組(在第二for循環(huán)中的字段PTS_EP_start和字段RPN_EP_start的組)。換句話說(shuō),已經(jīng)以預(yù)定的方向來(lái)重新排列時(shí)間信息和位置信息。因此,可以針對(duì)數(shù)據(jù)執(zhí)行二分搜索。
      根據(jù)本發(fā)明的本實(shí)施方式,如上所述,視頻流的基本流是基于MPEG2視頻標(biāo)準(zhǔn)的基本流。然而,本發(fā)明不限于這個(gè)例子。例如,視頻流的基本流可以是根據(jù)MPEG4-Visual(視覺)標(biāo)準(zhǔn)或者M(jìn)PEG4-AVC標(biāo)準(zhǔn)的基本流。類似地,根據(jù)本實(shí)施方式,如上所述,音頻流的基本流是基于ATRAC音頻流的基本流。然而,本發(fā)明不限于這樣的例子。替代地,音頻流的基本流可以是基于例如MPEG1/2/4音頻系統(tǒng)的基本流。
      7.盤再現(xiàn)設(shè)備下面,將描述根據(jù)本發(fā)明的實(shí)施方式的盤再現(xiàn)設(shè)備。圖34示出根據(jù)本發(fā)明的盤再現(xiàn)設(shè)備100的結(jié)構(gòu)的例子。連接到總線111的是中央處理單元(CPU)112、存儲(chǔ)器113、驅(qū)動(dòng)器接口114、輸入接口115、視頻解碼器116、音頻解碼器117、視頻輸出接口118和音頻輸出接口119。盤再現(xiàn)設(shè)備100的每個(gè)部分都可以通過(guò)總線111與其他部分交換視頻流、音頻流、各種命令、數(shù)據(jù)等。
      此外,將盤驅(qū)動(dòng)器102連接到驅(qū)動(dòng)器接口114。盤驅(qū)動(dòng)器102通過(guò)驅(qū)動(dòng)器接口114與總線111交換數(shù)據(jù)和命令。
      CPU 112具有只讀存儲(chǔ)器(ROM)和隨機(jī)存取存儲(chǔ)器(RAM)(未示出)。CPU 112根據(jù)在ROM中預(yù)先存儲(chǔ)的程序和數(shù)據(jù)通過(guò)總線111與盤再現(xiàn)設(shè)備100的每個(gè)部分交互數(shù)據(jù)和命令,并且控制整個(gè)盤再現(xiàn)設(shè)備100。RAM用作CPU 112的工作存儲(chǔ)器。
      提供到輸入接口115的是從用戶用其執(zhí)行輸入操作的輸入裝置輸入的輸入信號(hào)。輸入裝置例如是用戶使用其利用例如紅外線信號(hào)來(lái)遠(yuǎn)程操作盤再現(xiàn)設(shè)備100的遙控器和安置在盤再現(xiàn)設(shè)備100上的按鍵。輸入接口115將從輸入裝置提供來(lái)的輸入信號(hào)轉(zhuǎn)換為用于CPU 112的控制信號(hào)并且輸出該控制信號(hào)。
      以圖23到圖33所示的格式記錄在盤101上的是播放列表、腳本程序、剪切片段信息文件、剪切片段AV流文件等。當(dāng)將盤101裝載到盤驅(qū)動(dòng)器102中時(shí),其自動(dòng)地或者根據(jù)用戶的輸入操作從盤101中再現(xiàn)數(shù)據(jù)。將從盤101讀取的腳本文件、播放列表文件和剪切片段信息文件提供給CPU 112并且存儲(chǔ)在例如CPU 112的RAM中。CPU 112根據(jù)在RAM中所存儲(chǔ)的數(shù)據(jù)和腳本程序從盤101中讀取剪切片段AV流文件。
      將從盤101中讀取的剪切片段AV流文件臨時(shí)存儲(chǔ)在存儲(chǔ)器113中。視頻解碼器116根據(jù)從CPU 112接收來(lái)的命令對(duì)存儲(chǔ)器113中所存儲(chǔ)的剪切片段AV流文件的視頻流和字幕流進(jìn)行解碼。CPU 112執(zhí)行諸如用于所經(jīng)解碼的視頻數(shù)據(jù)和字幕數(shù)據(jù)的放大處理或者縮小處理、用于視頻流和字幕流的合成處理或者添加處理之類的圖像處理,并且獲得視頻數(shù)據(jù)的一個(gè)流。由視頻解碼器116和視頻輸出接口118來(lái)執(zhí)行圖像處理。視頻數(shù)據(jù)由存儲(chǔ)器113來(lái)緩存并且提供給視頻輸出接口118。視頻輸出接口118將所提供的視頻數(shù)據(jù)轉(zhuǎn)換為模擬視頻信號(hào),并且將模擬視頻信號(hào)提供給視頻輸出終端120。
      類似地,音頻解碼器117根據(jù)從CPU 112接收來(lái)的命令對(duì)存儲(chǔ)器113中所存儲(chǔ)的剪切片段AV流文件的音頻流進(jìn)行解碼。經(jīng)解碼的音頻數(shù)據(jù)在存儲(chǔ)器113中進(jìn)行緩存并且提供給音頻輸出接口119。音頻輸出接口119將所提供的音頻數(shù)據(jù)轉(zhuǎn)換為例如模擬音頻信號(hào),并且將該模擬音頻信號(hào)提供給音頻輸出終端121。
      在本例中,圖34中所示的每個(gè)部分由獨(dú)立的硬件組成。然而,本發(fā)明不限于這個(gè)示例。例如,視頻解碼器116和/和音頻解碼器117可以由在CPU 112上操作的軟件組成。
      圖35A和35B是詳細(xì)描述圖34中所示的盤再現(xiàn)設(shè)備100的操作的功能框圖。盤再現(xiàn)設(shè)備100主要由操作系統(tǒng)201和視頻內(nèi)容再現(xiàn)部分210組成。視頻內(nèi)容再現(xiàn)部分210基本上是在操作系統(tǒng)201上操作的軟件程序。替代地,視頻內(nèi)容再現(xiàn)部分210可以由集成操作的軟件和硬件組成。在下面的描述中,假設(shè)視頻內(nèi)容再現(xiàn)部分210是由軟件組成的。在圖35A和圖35B中,省略盤驅(qū)動(dòng)器102。
      當(dāng)將盤再現(xiàn)設(shè)備100通電時(shí),操作系統(tǒng)201初始地啟動(dòng)CPU 112并且執(zhí)行諸如用于每個(gè)部分的初始設(shè)置之類的必要處理,并且從ROM中讀取應(yīng)用程序(在本例中,視頻內(nèi)容再現(xiàn)部分210)。當(dāng)視頻內(nèi)容再現(xiàn)部分210正在操作時(shí),操作系統(tǒng)201提供諸如從盤101中讀取文件和為視頻內(nèi)容再現(xiàn)部分210解釋文件系統(tǒng)之類的基本服務(wù)。例如,操作系統(tǒng)201通過(guò)與從視頻內(nèi)容再現(xiàn)部分210提供來(lái)的文件讀取請(qǐng)求對(duì)應(yīng)的驅(qū)動(dòng)器接口114來(lái)控制盤驅(qū)動(dòng)器102,并且從盤101中讀取數(shù)據(jù)。在操作系統(tǒng)201的控制下,將從盤101中讀取的數(shù)據(jù)提供給視頻內(nèi)容再現(xiàn)部分210。
      操作系統(tǒng)201具有通過(guò)例如時(shí)分控制虛擬地并行控制多個(gè)軟件模塊的多任務(wù)處理功能。換句話說(shuō),組成圖35A和35B中所示的視頻內(nèi)容再現(xiàn)部分210的每個(gè)模塊都通過(guò)操作系統(tǒng)的多任務(wù)處理功能并行地進(jìn)行操作。
      下面,將更加具體地描述視頻內(nèi)容再現(xiàn)部分210的操作。視頻內(nèi)容再現(xiàn)部分210具有多個(gè)內(nèi)部模塊并且完成下面功能。
      (1)視頻內(nèi)容再現(xiàn)部分210確定所裝載的盤101是否為根據(jù)UMD視頻標(biāo)準(zhǔn)的盤(下面將這種盤稱為UMD視頻盤)。
      (2)當(dāng)確定的結(jié)果表示所裝載的盤101是UMD視頻盤時(shí),視頻內(nèi)容再現(xiàn)部分210從盤101中讀取腳本文件并且將該腳本文件提供給腳本控制模塊211。
      (3)當(dāng)確定的結(jié)果表示所裝載的盤101是UMD視頻盤時(shí),視頻內(nèi)容再現(xiàn)部分210還讀取組成數(shù)據(jù)庫(kù)的文件(即,播放列表文件、剪切片段信息文件等)并且將這些文件提供給播放器控制模塊212。
      下面,將描述視頻內(nèi)容再現(xiàn)部分210的模塊的操作。
      腳本控制模塊211解釋在腳本文件“SCRIPT.DAT”中所描述的腳本程序并且執(zhí)行它。如在播放器模型中所描述的,由根據(jù)腳本程序而控制的圖形處理模塊219來(lái)實(shí)現(xiàn)GUI,所述GUI創(chuàng)作和輸出菜單屏幕的圖像、與用戶輸入對(duì)應(yīng)地移動(dòng)光標(biāo)和改變菜單屏幕。通過(guò)執(zhí)行腳本程序,腳本控制模塊211可以控制播放器控制模塊212。
      播放器控制模塊212參照諸如從盤101中讀取的播放列表文件“PLAYLIST.DAT”和剪切片段信息文件“XXXXX.CLP”之類的文件中所存儲(chǔ)的數(shù)據(jù)庫(kù)信息,并且執(zhí)行下面控制來(lái)再現(xiàn)在盤101上記錄的視頻內(nèi)容。
      (1)播放器控制器模塊212分析諸如播放列表和剪切片段信息之類的數(shù)據(jù)庫(kù)信息。
      (2)播放器控制模塊212控制內(nèi)容數(shù)據(jù)提供模塊213、解碼控制模塊214和緩存器控制模塊215。
      (3)播放器控制模塊212根據(jù)從腳本控制模塊211或者輸入接口115接收來(lái)的命令執(zhí)行諸如再現(xiàn)、再現(xiàn)停止和再現(xiàn)暫停之類的狀態(tài)改變控制,和諸如流改變之類的再現(xiàn)控制處理。
      (4)播放器控制模塊212從解碼控制模塊214獲得正在被再現(xiàn)的視頻流的時(shí)間信息,顯示時(shí)間,并且產(chǎn)生標(biāo)志事件。
      內(nèi)容數(shù)據(jù)提供模塊213根據(jù)從播放器控制模塊212接收來(lái)的命令從盤101中讀取諸如剪切片段AV流文件之類的內(nèi)容數(shù)據(jù),并且將內(nèi)容數(shù)據(jù)提供給緩存器控制模塊215。緩存器控制模塊215將內(nèi)容數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器113中作為緩存器的內(nèi)容(substance)215A。內(nèi)容數(shù)據(jù)提供模塊213根據(jù)來(lái)自視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218的請(qǐng)求,控制緩存器控制模塊215以將存儲(chǔ)器113中所存儲(chǔ)的內(nèi)容數(shù)據(jù)提供給視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218。此外,內(nèi)容數(shù)據(jù)提供模塊213從盤101中讀取內(nèi)容數(shù)據(jù),從而在緩存器控制模塊215的控制下所存儲(chǔ)的內(nèi)容數(shù)據(jù)量變?yōu)轭A(yù)定量。
      解碼控制模塊214根據(jù)從播放器控制模塊212接收來(lái)的命令,控制視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218的操作。解碼器控制模塊214具有內(nèi)部時(shí)鐘功能,并且控制視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218的操作,從而同步示出視頻數(shù)據(jù)和音頻數(shù)據(jù)。
      緩存器控制模塊215排他地使用存儲(chǔ)器113的一部分作為緩存器的內(nèi)容215A。緩存器控制模塊215存儲(chǔ)數(shù)據(jù)開始指針和數(shù)據(jù)寫指針。緩存器控制模塊215還具有視頻讀取功能、音頻讀取功能和字幕讀取功能作為內(nèi)部模塊。視頻讀取功能具有視頻讀取指針。視頻讀取功能具有存儲(chǔ)信息au_information()作為存取單元信息的寄存器。音頻讀取功能具有音頻讀取指針。字幕讀取功能具有字幕讀取指針和字幕讀取功能標(biāo)記。字幕讀取功能標(biāo)記根據(jù)所寫的值控制字幕讀取功能的允許/禁止。當(dāng)將例如“1”寫到字幕讀取功能標(biāo)記中時(shí),字幕讀取功能變?yōu)楸辉试S。當(dāng)將例如“0”寫到字幕讀取功能標(biāo)記中時(shí),字幕讀取功能變?yōu)榻埂?br> 作為緩存器控制模塊215的內(nèi)部模塊的視頻讀取功能、音頻讀取功能和字幕讀取功能基于解復(fù)用器功能,其將已經(jīng)將視頻流、音頻流和字幕流復(fù)用到其中的經(jīng)復(fù)用的剪切片段AV流解復(fù)用為這些流。根據(jù)本發(fā)明的實(shí)施方式,根據(jù)視頻復(fù)用系統(tǒng)和MPEG2系統(tǒng)節(jié)目流格式來(lái)復(fù)用多個(gè)基本流,從而形成剪切片段AV流。因此,視頻讀取功能、音頻讀取功能和字幕讀取功能具有用于MPEG2系統(tǒng)節(jié)目流的解復(fù)用器功能。
      因此,視頻讀取功能讀取放置在視頻流的預(yù)定位置的字段stream_id(見圖30)的值,并且保存該值。類似地,音頻讀取功能和字幕讀取功能讀取字段stream_id和字段private_stream_id(見圖30)的值,并且保存該值。將字段stream_id和字段private_stream_id的值用于分析所提供的比特流。
      視頻解碼器控制模塊216使得緩存器控制模塊215的視頻讀取功能從存儲(chǔ)器113中讀取視頻流的一個(gè)視頻存取單元,并且將該視頻存取單元提供給視頻解碼器116。視頻解碼器控制模塊216控制視頻解碼器116對(duì)以視頻存取單元提供給視頻解碼器的視頻流進(jìn)行解碼,并且產(chǎn)生視頻數(shù)據(jù)。將該視頻數(shù)據(jù)提供給圖形處理模塊219。
      類似地,音頻解碼器控制模塊217使得緩存器控制模塊215的音頻讀取功能從存儲(chǔ)器113中讀取音頻流的一個(gè)音頻存取單元,并且將該音頻存取單元提供給音頻解碼器117。根據(jù)本發(fā)明的實(shí)施方式,組成音頻流的存取單元(音頻幀)具有預(yù)定的固定長(zhǎng)度。音頻解碼器控制模塊217控制音頻解碼器117對(duì)以存取單元提供給音頻解碼器117的音頻流進(jìn)行解碼,并且產(chǎn)生音頻數(shù)據(jù)。將音頻數(shù)據(jù)提供給音頻輸出模塊242。
      字幕解碼器控制模塊218使得緩存器控制模塊215的字幕讀取功能從存儲(chǔ)器113中讀取字幕流的一個(gè)字幕讀取單元,并且將字幕讀取單元提供給字幕解碼器控制模塊218。根據(jù)本發(fā)明的實(shí)施方式,組成字幕流的字幕存取單元在開始處包含長(zhǎng)度信息。字幕解碼器控制模塊218具有能夠解碼所提供的字幕流并且產(chǎn)生字幕圖像數(shù)據(jù)的字幕解碼功能。將字幕圖像數(shù)據(jù)提供給圖形處理模塊219。
      如上所述,將在視頻解碼器控制模塊216的控制下由視頻解碼器116解碼的視頻數(shù)據(jù)和在字幕解碼器控制模塊218所解碼的字幕圖像數(shù)據(jù)提供給圖形處理模塊219。圖形處理模塊219將字幕圖形數(shù)據(jù)添加到所提供的視頻數(shù)據(jù)中,并且產(chǎn)生作為輸出的視頻信號(hào)。圖形處理模塊219產(chǎn)生菜單圖像和與從腳本控制模塊211和播放器控制模塊212接收來(lái)的命令對(duì)應(yīng)的消息圖像,并且將它們與輸出的視頻信號(hào)重疊。
      例如,圖形處理模塊219執(zhí)行用于所提供的字幕圖像數(shù)據(jù)的放大處理和縮小處理,并且根據(jù)從腳本控制模塊211接收來(lái)的命令將經(jīng)處理的圖形數(shù)據(jù)添加到視頻數(shù)據(jù)中。
      此外,圖形處理模塊219根據(jù)預(yù)定輸出視頻裝置的寬高比和從盤101中再現(xiàn)的內(nèi)容中所指定的輸出寬高比,轉(zhuǎn)換輸出信號(hào)的寬高比。當(dāng)輸出視頻裝置的寬高比為16∶9并且輸出寬高比為16∶9時(shí),圖形處理模塊219直接輸出視頻數(shù)據(jù)。當(dāng)輸出寬高比為4∶3,圖形處理模塊219執(zhí)行將圖像的高度與輸出視頻裝置的屏幕的高度匹配的壓縮處理,將黑色部分插入到圖像的左側(cè)和右側(cè),并且輸出所產(chǎn)生的圖像。當(dāng)輸出視頻裝置的寬高比為4∶3并且輸出寬高比為4∶3時(shí),圖形處理模塊219直接輸出視頻數(shù)據(jù)。當(dāng)輸出寬高比為16∶9時(shí),圖形處理模塊219執(zhí)行將圖像的寬度與輸出視頻裝置的屏幕寬度匹配的壓縮處理,將黑色部分插入到圖像的上面和下面部分中,并且輸出所產(chǎn)生的圖像。
      圖形處理模塊219還根據(jù)來(lái)自播放器控制模塊212的請(qǐng)求執(zhí)行捕獲正在被再現(xiàn)的視頻信號(hào)的處理,并且將所請(qǐng)求的視頻信號(hào)向其輸出。
      視頻輸出模塊241排他地使用存儲(chǔ)器113的一部分作為先進(jìn)先出(FIFO)緩存器。視頻輸出模塊241將圖形處理模塊219所處理的視頻數(shù)據(jù)臨時(shí)存儲(chǔ)在該緩存器中,并且以預(yù)定的定時(shí)從其讀取視頻數(shù)據(jù)。從視頻輸出接口118輸出從該緩存器讀取的視頻數(shù)據(jù)。
      音頻輸出模塊242排他地使用存儲(chǔ)器113的一部分作為FIFO緩存器。音頻輸出模塊242將從音頻輸出接口119輸出的音頻輸出存儲(chǔ)到緩存器中,并且在預(yù)定的定時(shí)從其讀取音頻數(shù)據(jù)。從音頻輸出接口輸出從緩存器讀取的音頻數(shù)據(jù)。
      當(dāng)內(nèi)容的音頻模式為雙單聲道(例如,雙語(yǔ))時(shí),音頻輸出模塊242根據(jù)預(yù)定的音頻輸出模式輸出音頻數(shù)據(jù)。當(dāng)音頻輸出模式為“主音頻”時(shí),音頻輸出模塊242將在例如存儲(chǔ)器113中的左聲道的音頻數(shù)據(jù)進(jìn)行拷貝并且輸出左聲道的音頻數(shù)據(jù)和來(lái)自存儲(chǔ)器113的音頻數(shù)據(jù)。因此,音頻輸出模塊242僅僅輸出左聲道的音頻數(shù)據(jù)。當(dāng)音頻輸出模式為“副音頻”時(shí),音頻輸出模塊242拷貝在例如存儲(chǔ)器113中的右聲道的音頻數(shù)據(jù),并且輸出右聲道的音頻數(shù)據(jù)和來(lái)自存儲(chǔ)器113的音頻數(shù)據(jù)。因此,音頻輸出模塊242僅僅輸出右聲道的音頻數(shù)據(jù)。當(dāng)音頻輸出模式為“主和副音頻”或者內(nèi)容為立體聲時(shí),音頻輸出模塊242直接輸出音頻數(shù)據(jù)。
      用戶可以在例如視頻內(nèi)容再現(xiàn)部分210產(chǎn)生的菜單屏幕上互動(dòng)地設(shè)置音頻輸出模式。
      非易失存儲(chǔ)器控制模塊250將數(shù)據(jù)寫到在視頻內(nèi)容再現(xiàn)部分210的操作完成以后其數(shù)據(jù)不被擦除的區(qū)域(將該區(qū)域稱為非易失區(qū)域),并且根據(jù)從播放器控制模塊212接收的命令讀取數(shù)據(jù)。非易失存儲(chǔ)器控制模塊250具有用標(biāo)題ID(Title_ID)的關(guān)鍵字將數(shù)據(jù)Saved_Player_Status和數(shù)據(jù)Saved_Player_Data的多個(gè)組進(jìn)行存儲(chǔ)的功能。非易失存儲(chǔ)器控制模塊250存儲(chǔ)播放器控制模塊212具有的數(shù)據(jù)Backup_Player_Status作為Saved_Player_Status。數(shù)據(jù)Backup_Player_Status對(duì)應(yīng)于在完成播放器控制模塊212的操作之前緊鄰著存在的例如播放器狀態(tài)323B的數(shù)據(jù)。數(shù)據(jù)Saved_Player_Status對(duì)應(yīng)于恢復(fù)信息324。此外,非易失存儲(chǔ)器控制模塊250存儲(chǔ)播放器控制模塊212具有的User_Data作為數(shù)據(jù)Saved_User_Data。數(shù)據(jù)User_data是用戶設(shè)置到播放器控制模塊212的預(yù)定數(shù)據(jù)。
      當(dāng)盤再現(xiàn)設(shè)備100具有作為非易失存儲(chǔ)器的閃存等時(shí),非易失存儲(chǔ)器控制模塊250用盤101的標(biāo)題ID將數(shù)據(jù)Saved_Player_Status和數(shù)據(jù)Saved_User_Data的組存儲(chǔ)在閃存的預(yù)定區(qū)域中。非易失存儲(chǔ)器控制模塊250存儲(chǔ)數(shù)據(jù)的存儲(chǔ)介質(zhì)不限于閃存,還可以是硬盤等。
      8.音頻和字幕流的自動(dòng)選擇下面,將描述根據(jù)本發(fā)明的實(shí)施方式的音頻和字幕流的自動(dòng)選擇。根據(jù)本實(shí)施方式,當(dāng)已經(jīng)復(fù)用多個(gè)不同語(yǔ)言的音頻流和不同語(yǔ)言的多個(gè)字幕流時(shí),自動(dòng)地選擇適當(dāng)語(yǔ)言的音頻流。類似地,自動(dòng)地選擇適當(dāng)?shù)恼Z(yǔ)言的字幕流。
      根據(jù)本發(fā)明,在使用諸如“日語(yǔ)”和“英語(yǔ)”的語(yǔ)言名稱的普通音頻語(yǔ)言設(shè)置之外,還可以設(shè)置狀態(tài)“原始語(yǔ)言”。當(dāng)播放器的音頻語(yǔ)言設(shè)置已經(jīng)是“原始語(yǔ)言”時(shí),字段地選擇適當(dāng)語(yǔ)言的音頻流。此外,當(dāng)自動(dòng)地選擇字幕和音頻流時(shí),防止音頻和字幕流動(dòng)語(yǔ)言相同的情況。
      “原始語(yǔ)言”表示創(chuàng)作內(nèi)容的語(yǔ)言。例如,如果以日語(yǔ)創(chuàng)作內(nèi)容并且其語(yǔ)言主要是日語(yǔ),則原始語(yǔ)言是日語(yǔ)。可以在內(nèi)容創(chuàng)作者端設(shè)置原始語(yǔ)言。
      下面,參照?qǐng)D36到圖38,將簡(jiǎn)要描述根據(jù)本發(fā)明的本實(shí)施方式的音頻和字幕流的自動(dòng)選擇。在圖36到圖38中,假設(shè)在盤101中所包含的流501中,由(1)代表的音頻流是原始語(yǔ)言。在本例中,沒有定義字幕的原始語(yǔ)言。
      作為第一個(gè)例子,參照?qǐng)D36,將描述在播放器設(shè)置500中將音頻的語(yǔ)言設(shè)置為“原始語(yǔ)言”并且將字幕的語(yǔ)言設(shè)置為“日語(yǔ)”的情況。此外,假設(shè)在盤中所包含的內(nèi)容是在美國(guó)創(chuàng)作的電影,而且盤的流501是兩種類型的音頻流(1)英語(yǔ)(=原始語(yǔ)言)和(2)日語(yǔ)以及兩種類型的字幕流(1)英語(yǔ)和(2)日語(yǔ)。在這種情況下,在播放器從盤中再現(xiàn)內(nèi)容之后緊接著選擇的流502是原始語(yǔ)言(1)英語(yǔ)的音頻流和(2)日語(yǔ)的字幕流。在圖36中所示的例子中,由于適當(dāng)?shù)剡x擇了音頻流和字幕流,所以沒有發(fā)生問(wèn)題。
      作為第二個(gè)例子,如圖37中所示,在播放器設(shè)置500中,將音頻的語(yǔ)言設(shè)置到“原始語(yǔ)言”并且將字幕的語(yǔ)言設(shè)置到“日語(yǔ)”,這與第一個(gè)例子的那些相同。此外,假設(shè)在盤上所記錄的內(nèi)容是在日本創(chuàng)作的電影,而且盤的流501是兩種類型的音頻流(1)日語(yǔ)(=原始語(yǔ)言)和(2)音頻,以及兩種類型的字幕流(1)英語(yǔ)和(2)日語(yǔ)。在這種情況下,由播放器從盤中再現(xiàn)內(nèi)容之后緊鄰著選擇的流是作為原始語(yǔ)言(1)日語(yǔ)的音頻流和字幕流(2)日語(yǔ)。因此,選擇相同的語(yǔ)言。在這種情況下,由于不需要日語(yǔ)字幕,所以認(rèn)為這種選擇不是用戶友好的。
      為了解決第二例子的問(wèn)題,如圖38中所示,當(dāng)已經(jīng)在播放器設(shè)置500中將音頻的語(yǔ)言設(shè)置為“原始語(yǔ)言”時(shí),并且當(dāng)原始語(yǔ)言匹配字幕語(yǔ)言時(shí),關(guān)于所選擇的流502,可以完成關(guān)閉字幕的顯示的功能。
      換句話說(shuō),當(dāng)已經(jīng)將播放器設(shè)置500的音頻的語(yǔ)言設(shè)置為“原始語(yǔ)言”并且(作為自動(dòng)選擇的結(jié)果)音頻的語(yǔ)言匹配于字幕的語(yǔ)言時(shí),將使得字幕顯示或者不顯示的、在播放器的屬性信息中所包含的屬性subtitleFlag(屬性323的播放器狀態(tài)323B,見圖3)設(shè)置到表示字幕關(guān)閉的值。使用這種規(guī)則,當(dāng)選擇音頻和字幕的語(yǔ)言時(shí),可以防止輸出其語(yǔ)言與音頻的相同的字幕流。
      下面,將詳細(xì)描述根據(jù)本發(fā)明的實(shí)施方式的音頻和字幕流的自動(dòng)選擇。首先,將描述需要提供給播放器設(shè)備端以適當(dāng)和自動(dòng)地選擇音頻和字幕的信息。已經(jīng)參照?qǐng)D7描述了控制流的再現(xiàn)的、電影播放器300的屬性323(見圖3)。在屬性323中,用于音頻的屬性audioLanguageCode、屬性audioNumber和屬性audioFlag,以及用于字幕的屬性subtitleLanguageCode、屬性subtitleNumber和屬性subtitleFlag與本實(shí)施方式特別相關(guān)。
      如上所述,屬性audioLanguageCode表示已經(jīng)設(shè)置在UMD視頻播放器中的音頻語(yǔ)言的語(yǔ)言代碼。換句話說(shuō),屬性audioLanguageCode表示要為音頻選擇的語(yǔ)言。作為屬性audioLanguageCode的值,可以使用在例如國(guó)際標(biāo)準(zhǔn)化組織(ISO)639-1中所定義的語(yǔ)言代碼。在ISO639-1中,例如將英語(yǔ)縮寫為“en”而將日語(yǔ)縮寫為“jp”。根據(jù)本實(shí)施方式,作為屬性audioLanguageCode的值,添加沒有在ISO639-1中定義的“00”。使用值“00”表示“原始語(yǔ)言”。
      如上所述,屬性audioNumber表示正在被再現(xiàn)的音頻流的流號(hào)碼。屬性audioNumber是由音頻流ID(stream_ID)和專用流ID(private_stream_id)(見圖30)組成的16比特值。在16個(gè)比特中,將高位的8比特用于流ID,而將低位的8比特用于專用流ID??梢杂蛇@16比特值來(lái)唯一標(biāo)識(shí)剪切片段AV流文件的音頻流。
      屬性audioFlag表示音頻流的再現(xiàn)信息。圖39示出屬性audioFlag可以具有的值的例子。當(dāng)屬性audioFlag的值為“0“時(shí),關(guān)閉音頻的再現(xiàn),使得不將音頻進(jìn)行再現(xiàn)。當(dāng)該值為“1”時(shí),再現(xiàn)由屬性audioNumber所表示音頻流。在該點(diǎn)上,考慮由屬性audioNumber所表示的音頻流是雙單聲道的情況,即立體聲的左和右聲道的內(nèi)容不同的情況,當(dāng)該值為“2”時(shí),只再現(xiàn)雙單聲道的左聲道,而當(dāng)該值為“3”時(shí),只再現(xiàn)雙單聲道的右聲道。當(dāng)音頻流為雙單聲道而且屬性audioFlag的值為“1”時(shí),再現(xiàn)雙單聲道的左和右聲道。
      屬性subtitleLanguageCode表示已經(jīng)被設(shè)置到UMD視頻播放器中的字幕的語(yǔ)言的語(yǔ)言代碼。換句話說(shuō),屬性subtitleLanguageCode表示要為字幕選擇的語(yǔ)言。作為屬性subtitleLanguageCode的值,類似于音頻流的情況,可以使用例如國(guó)際標(biāo)準(zhǔn)化組織(ISO)639-1中所定義的語(yǔ)言代碼。
      如上所述,屬性subtitleNumber表示當(dāng)前正在被再現(xiàn)的字幕流的號(hào)碼。屬性subtitleNumber的值是由字幕流的流ID(stream_id)和專用流ID(private_stream_id)(見圖30)組成的16比特值。在這16個(gè)比特中,高位的八個(gè)比特用作流ID,而低位的八個(gè)比特用于專用流ID。可以由這16比特的值來(lái)唯一地標(biāo)識(shí)剪切片段AV流的字幕流。
      屬性subtitleFlag表示字幕流的再現(xiàn)狀態(tài)。圖40示出屬性subtitleFlag的值的例子。當(dāng)屬性subtitleFlag的值為“0”時(shí),將字幕顯示關(guān)閉,使得不對(duì)字幕進(jìn)行顯示。當(dāng)該值為“1”時(shí),打開字幕顯示,使得字幕被顯示。
      下面,將描述必須將其提供給內(nèi)容端以適當(dāng)和自動(dòng)地選擇音頻和字幕的信息。內(nèi)容端在剪切片段信息文件中描述音頻流的屬性信息和字幕流的屬性信息。如參照?qǐng)D29和圖31所述,剪切片段信息文件包含唯一地標(biāo)識(shí)在對(duì)應(yīng)AV流中所復(fù)用的每個(gè)基本流的字段stream_id和字段private_stream_id以及圖31中所示的屬性信息。在圖31所示的屬性信息中,用于音頻流的字段audio_language_code和用于字幕流的字段subtitile_language_code與本發(fā)明的這個(gè)實(shí)施方式特別相關(guān)。
      可以將多種語(yǔ)言的音頻流復(fù)用到剪切片段AV流文件中。因此,需要指示已經(jīng)被復(fù)用的多種語(yǔ)言的哪個(gè)音頻流是原始語(yǔ)言的音頻流。根據(jù)本實(shí)施方式,在圖29中所示的剪切片段信息文件中,將在for循環(huán)所排列的流中首先到來(lái)的音頻流的語(yǔ)言定義為原始語(yǔ)言。由與音頻流對(duì)應(yīng)的字段audio_language_code(見圖31)來(lái)表示原始語(yǔ)言的語(yǔ)言代碼。
      可以在腳本層302上用參照?qǐng)D8描述的方法來(lái)設(shè)置電影播放器300的屬性323(播放器狀態(tài)323B)。用方法play()、方法playChapter()和方法changeStream()來(lái)設(shè)置音頻流和字幕流。在這些方法中,方法changeStream()是將當(dāng)前流改變?yōu)樗枰牧鞯姆椒?,不是自?dòng)選擇流的機(jī)制。因此,將省略對(duì)方法changeStream()的描述。方法playChapter()等效于用參量chapterNumber替代作為方法play()的參量之一的參量playListTime,下面將僅僅描述method()。
      圖41A和圖41B列出了方法play()的參量的例子。當(dāng)以預(yù)定的方式將這些參量給予方法play()時(shí),可以開始與所指定的流號(hào)碼對(duì)應(yīng)的視頻流、音頻流和字幕流的再現(xiàn)。由例如公式(1)來(lái)表示method()的語(yǔ)法。換句話說(shuō),參量由定界符(在本例中,命令“,”)來(lái)定界并且以預(yù)定的順序排列。當(dāng)省略參量時(shí),僅僅描述定界符。
      Movie.play(playListNumber,playListTime,menuMode,pauseMode,video_strm,audio_strm,audio_status,subtitle_strm,subtitle_status)....(1)參量playListNumber表示要被再現(xiàn)的播放列表的播放列表號(hào)碼。參量playListTime表示從播放列表的開始的時(shí)間。當(dāng)從播放列表的開始再現(xiàn)內(nèi)容時(shí),將參量playListTime的值設(shè)置到“0”。參量menuMode的值是“真”或者“假”,其表示在菜單模式中再現(xiàn)內(nèi)容。當(dāng)參量menuMode的值為“真”時(shí),其表示在正常模式中再現(xiàn)內(nèi)容。參量pauseMode的值是“真”或者“假”。當(dāng)參量pauseMode的值為“真”時(shí),其表示備用作為暫停。當(dāng)參量pauseMode的值為“假”時(shí),其表示以正常速度開始再現(xiàn)。參量video_strm表示要被再現(xiàn)的視頻流。參量video_strm的值是“-1”或者“-2”。當(dāng)參量video_strm的值為“-1”時(shí),其表示由電影播放器300自動(dòng)地選擇要被再現(xiàn)的視頻流。當(dāng)參量video_strm的值為“-2”時(shí),其表示不改變要被再現(xiàn)的視頻流。
      包括參量audio_strm的聲音參量時(shí)用于音頻流和字幕流的再現(xiàn)的參量。這些參量與本發(fā)明的這個(gè)實(shí)施方式特別相關(guān)。參量audio_strm是用其將值設(shè)置為電影播放器300的屬性audioNumber(見圖7)的參量。使用參量audio_strm將16比特的流ID(stream_id)和專用流ID(private_stream_id)所表示的音頻流號(hào)碼設(shè)置到屬性audioNumber中。參量audio_strm的值是“-1”或者“-2”。當(dāng)參量audio_strm的值為“-1”時(shí),其表示在電影播放器300中自動(dòng)地選擇適當(dāng)?shù)囊纛l流,并且將所選擇的音頻流的音頻流號(hào)碼設(shè)置到屬性audioNumber中。當(dāng)參量audio_strm的值為“-2”時(shí),其表示再現(xiàn)以當(dāng)前所設(shè)置的屬性audioNumber的值開始,而不進(jìn)行改變。
      參量audio_status是用其設(shè)置電影播放器300的屬性auidoFlag(見圖7)的參數(shù)。當(dāng)參量audio_status的值為“0”、“1”或者“3”時(shí),將該值直接設(shè)置到屬性audioFlag中。當(dāng)參量audio_status的值為“-2”時(shí),其表示保留屬性audioFlag的當(dāng)前值。
      參量subtitle_strm是用其將值設(shè)置到電影播放器300的屬性subtitleNumber(見圖7)中的參量。使用參量subtitle_strm來(lái)將由16比特的流ID(stream_id)和專用流ID(private_stream_id)所表示的字幕流號(hào)碼設(shè)置到subtitleNumber中。參量subtitle_strm的值為“-1”或者“-2”。當(dāng)參量subtitle_strm的值為“-1”時(shí),其表示在電影播放器300中自動(dòng)地選擇適當(dāng)?shù)淖帜涣鳎⑶覍⑺x擇的字幕流的字幕流號(hào)碼設(shè)置到屬性subtitleNumber中。當(dāng)參量subtitle_strm的值為“-2”時(shí),其表示再現(xiàn)以當(dāng)前所設(shè)置的屬性subTitleNumber的值開始,而不進(jìn)行改變。
      參量subtitle_status是用其設(shè)置電影播放器300的屬性subtitleFlag(見圖7)的參數(shù)。當(dāng)參量subtitle_status的值為“0”或者“1”時(shí),將參量subtitle_status的值直接設(shè)置到屬性subtitleFlag中。當(dāng)參量subtitle_status的值為“-1”時(shí),在電影播放器300中將屬性subtitleFlag的值自動(dòng)地設(shè)置到適當(dāng)?shù)闹?。?dāng)參量subtitle_status的值為“-2”時(shí),保留屬性subtitleFlag的當(dāng)前值。
      屬性audioFlag不包含電影播放器300的自動(dòng)設(shè)置,而屬性subtitleFlag包含電影播放器300的自動(dòng)設(shè)置。這是因?yàn)楫?dāng)將音頻和字幕設(shè)置到相同的語(yǔ)言時(shí),自動(dòng)關(guān)閉字幕的顯示,使得不顯示字幕。
      下面,將更加具體地描述音頻流和字幕流的自動(dòng)選擇處理。圖42示出從多種類型的音頻流和字幕流中自動(dòng)選擇音頻流和字幕流的流程。當(dāng)將盤裝載到播放器設(shè)備中時(shí),用戶選擇要被再現(xiàn)的視頻流(在步驟S80)。在步驟S81自動(dòng)地選擇與所選擇的視頻對(duì)應(yīng)的音頻流。對(duì)應(yīng)于所選擇的結(jié)果,在步驟S82設(shè)置屬性audioFlag。參照屬性audioFlag,在步驟S83選擇字幕流。對(duì)應(yīng)于所選擇的結(jié)果,在步驟S84設(shè)置屬性subtitleFlag 。
      下面,將詳細(xì)參照?qǐng)D43和圖44中所示的流程圖來(lái)描述在圖42中所示的步驟S81自動(dòng)選擇音頻流的處理的例子。在音頻流的自動(dòng)選擇處理中,使用(1)語(yǔ)言代碼、(2)聲道數(shù)和(3)剪切片段信息文件中的音頻流的排列。在這些屬性信息中,(1)語(yǔ)言代碼的優(yōu)先級(jí)最高,(2)聲道數(shù)的優(yōu)先級(jí)次之,而(3)在剪切片段信息文件中的音頻流的排列的優(yōu)先級(jí)最低。
      在圖43和圖44中,附圖標(biāo)記A表示流程前進(jìn)到由相同的附圖標(biāo)記A表示的部分。
      當(dāng)開始音頻流的選擇處理時(shí)(在步驟S90),確定是否已經(jīng)將表示在方法play()中所再現(xiàn)的音頻流的流號(hào)碼的參量audio_strm的值是否設(shè)置到“-1”或者是否已經(jīng)省略了該值(在步驟S91)。如上所述,當(dāng)參量audio_strm的值為“-1”時(shí),指定音頻流的自動(dòng)選擇。
      當(dāng)所確定的結(jié)果表示已經(jīng)將出了值“-1”以外的值設(shè)置到參量audio_strm中時(shí),流程前進(jìn)到步驟S92。在步驟S92,將參量audio_strm的值設(shè)置到屬性audioNumber中。選擇由參量audio_strm所表示的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在步驟S82,在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式設(shè)置屬性audioFlag。當(dāng)所選擇的音頻流的音頻聲道數(shù)為5.1聲道時(shí),將屬性audioFlag的值設(shè)置為例如“1”,表示是否再現(xiàn)音頻流。當(dāng)已經(jīng)在步驟S92選擇音頻流時(shí),作為錯(cuò)誤終止該處理。
      當(dāng)已經(jīng)作為錯(cuò)誤終止該處理時(shí),UMD視頻播放器執(zhí)行的操作依賴于其實(shí)施方式。當(dāng)已經(jīng)作為錯(cuò)誤終止該處理時(shí),在保留屬性audioNumber的情況下執(zhí)行下一個(gè)處理。將這種錯(cuò)誤處理應(yīng)用于圖43和圖44中的其他錯(cuò)誤處理。
      當(dāng)在步驟S91的確定結(jié)果表示已經(jīng)將參量audio_strm的值設(shè)置為“-1”或者進(jìn)行省略時(shí),流程前進(jìn)到步驟S93。在步驟S93,確定是否不存在由電影播放器300的屬性audioNumber所標(biāo)識(shí)的音頻流或者沒有定義屬性audioNumber的值。當(dāng)存在由屬性audioNumber所標(biāo)識(shí)的音頻流時(shí),流程前進(jìn)到步驟S94。在步驟S94,選擇由屬性audioNumber所標(biāo)識(shí)的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式設(shè)置屬性audioFlag。當(dāng)還沒有選擇音頻流時(shí),作為錯(cuò)誤終止該處理。
      當(dāng)在步驟S93的確定結(jié)果表示不存在由電影播放器300的屬性audioNumber所標(biāo)識(shí)的音頻流或者沒有定義屬性audioNumber的值時(shí),流程前進(jìn)到步驟S95。在步驟S95之后,特別地執(zhí)行用于音頻流的自動(dòng)選擇處理。在圖42中所示的步驟S81中的音頻流的自動(dòng)選擇處理表示圖43中所示的流程圖整個(gè)流程。在圖43中所示的流程圖的步驟S95之后的處理是當(dāng)參量audio_strm的值為“1”(其表示自動(dòng)選擇)時(shí)所執(zhí)行的音頻流的自動(dòng)選擇處理。
      首先,執(zhí)行基于(1)語(yǔ)言代碼的自動(dòng)選擇處理。執(zhí)行該處理,從而優(yōu)先地選擇其語(yǔ)言與播放器的音頻語(yǔ)言設(shè)置的相同的音頻流。在步驟S96,確定在電影播放器300中的屬性audioLanguageCode的值是否為“00”。當(dāng)確定結(jié)果表示屬性audioLanguageCode的值表示“原始語(yǔ)言”時(shí),流程前進(jìn)到步驟S101。
      在從S101到S104的步驟中,確定在內(nèi)容端設(shè)置了哪種“原始語(yǔ)言”。在步驟S101,檢查剪切片段信息文件(見圖29)的塊StreamInfo()中的音頻流的排列,并且獲得在該排列中的首先到來(lái)的音頻流的語(yǔ)言代碼。之后,確定是否存在其語(yǔ)言代碼與所獲得的語(yǔ)言代碼相同并且其音頻聲道數(shù)等于或者小于已經(jīng)被設(shè)置到UMD視頻播放器中的音頻聲道數(shù)的音頻流。當(dāng)確定結(jié)果表示存在這種音頻流時(shí),流程前進(jìn)到步驟S102。當(dāng)確定結(jié)果表示不存在這種音頻流時(shí),流程前進(jìn)到步驟S103。
      在步驟S102,在滿足步驟S101中的條件的這些音頻流中選擇其音頻聲道數(shù)最大的音頻流。當(dāng)UMD視頻播放器的音頻聲道設(shè)置是例如5.1聲道而且存在其語(yǔ)言代碼與在塊StreamInfo()中首先到來(lái)的音頻流的語(yǔ)言號(hào)碼相同并且其音頻聲道數(shù)是2聲道和5.1聲道的兩個(gè)音頻流時(shí),選擇其聲道數(shù)為5.1聲道的音頻流。當(dāng)存在其音頻聲道數(shù)相同的多個(gè)音頻流時(shí),選擇在塊StreamInfo()中較早到來(lái)的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在步驟S82,在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式來(lái)設(shè)置屬性audioFlag。
      在步驟S103,確定是否存在其音頻聲道數(shù)等于或者小于已經(jīng)被設(shè)置到UMD視頻播放器中的音頻聲道數(shù)的音頻流。當(dāng)存在這種音頻流時(shí),選擇在這些音頻流中其音頻聲道數(shù)最大的音頻流(在步驟S104)。當(dāng)存在其音頻聲道數(shù)相同的多個(gè)音頻流時(shí),選擇在塊StreamInfo()中較早到來(lái)的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式來(lái)設(shè)置屬性audioFlag。
      當(dāng)在圖中S103的確定結(jié)果表示不存在這種音頻流時(shí),完成根據(jù)圖43和圖44所示的流程圖的處理。在這種情況下,雖然還沒有選擇音頻流,但是流程前進(jìn)到步驟S82。在步驟S82,以預(yù)定方式設(shè)置屬性audioFlag。
      當(dāng)在圖43中所示的步驟S96的確定結(jié)果表示電影播放器300的屬性audioLanguageCode的值不表示“原始語(yǔ)言”時(shí),流程前進(jìn)到步驟S97。在步驟S97,確定是否存在其語(yǔ)言代碼與電影播放器300的屬性audioLanguageCode的語(yǔ)言代碼相同并且其音頻聲道數(shù)等于或者小于已經(jīng)被設(shè)置到UMD視頻播放器的音頻聲道數(shù)的音頻流。當(dāng)確定結(jié)果表示存在這種音頻流時(shí),流程前進(jìn)到步驟S98。當(dāng)確定結(jié)果表示不存在這種音頻流時(shí),流程前進(jìn)到步驟S99。
      在步驟S98之后,與步驟S102類似,在滿足步驟S97中的條件的音頻流中選擇其音頻聲道數(shù)最大的音頻流。當(dāng)存在其音頻聲道數(shù)相同的多個(gè)音頻流時(shí),選擇在塊StreamInfo()中較早到來(lái)的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式設(shè)置屬性audioFlag。
      在步驟S99,類似于步驟S103,確定是否存在其音頻聲道數(shù)等于或者小于已經(jīng)被設(shè)置到UMD視頻播放器的音頻聲道數(shù)的音頻流。當(dāng)確定結(jié)果表示存在這種音頻流時(shí),在這些音頻流中選擇其音頻聲道數(shù)最大的音頻流(在步驟S100)。當(dāng)存在其音頻聲道數(shù)相同的多個(gè)音頻流時(shí),選擇在塊StreamInfo()中較早到來(lái)的音頻流。之后,流程前進(jìn)到圖42中所示的步驟S82。在電影播放器300中以與所選擇的音頻流對(duì)應(yīng)的預(yù)定方式來(lái)設(shè)置屬性audioFlag。
      當(dāng)步驟S99的確定結(jié)果表示不存在這種音頻流時(shí),完成根據(jù)圖43和圖44所示的流程圖的處理。在這種情況下,雖然還沒有選擇音頻流,但是流程前進(jìn)到步驟S82。在步驟S82,以預(yù)定的方式設(shè)置屬性audioFlag。
      下面,參照?qǐng)D45中所示的流程圖,詳細(xì)描述在圖42中所示的步驟S83中自動(dòng)選擇字幕流的處理的例子。當(dāng)選擇字幕流時(shí)(在步驟S110),流程前進(jìn)到步驟S111。在步驟S111,確定在方法play()中是否已經(jīng)將表示要被再現(xiàn)的字幕流的流號(hào)碼的參量subtitle_strm的值設(shè)置為“-1”或者是否已經(jīng)省略了該值。如上所述,當(dāng)將參量subtitle_strm的值設(shè)置為“-1”時(shí),指定字幕流的自動(dòng)選擇。
      當(dāng)所確定的結(jié)果表示已經(jīng)將參量subtitle_strm的值設(shè)置到除了“-1”之外的其他值時(shí),流程前進(jìn)到步驟S112。在步驟S112,將參量subtitle_strm的值設(shè)置到屬性subtitleNumber中并且選擇有參量subtitle_strm所標(biāo)識(shí)的字幕流。之后,流程前進(jìn)到圖84中所示的步驟S84。將屬性subtitleFlag設(shè)置在電影播放器300中。當(dāng)在步驟S112中沒有選擇字幕流時(shí),將作為錯(cuò)誤將處理終止。
      當(dāng)作為錯(cuò)誤將處理終止時(shí),UMD視頻播放器執(zhí)行的操作依賴于其實(shí)施。當(dāng)已經(jīng)作為錯(cuò)誤終止了處理時(shí),終止根據(jù)圖45中所示的流程圖的處理,而且雖然還沒有選擇字幕流,也執(zhí)行下一個(gè)操作。將該錯(cuò)誤處理應(yīng)用于圖45中的其他錯(cuò)誤處理。
      當(dāng)步驟S111中的確定結(jié)果表示參量subtitle_strm的值是“-1”或者已經(jīng)省略了該值時(shí),流程前進(jìn)到步驟S113。在步驟S113,確定是否不存在有電影播放器300的屬性subtitleNumber所標(biāo)識(shí)的字幕流或者沒有定義屬性subtitleNumber。當(dāng)存在由屬性subtitleNumber標(biāo)識(shí)的字幕流時(shí),流程前進(jìn)到步驟S114。在步驟S114,選擇由屬性subtitleNumber所標(biāo)識(shí)的字幕流。之后,流程前進(jìn)到圖42中所示的步驟S84。當(dāng)在步驟S114中還沒有選擇字幕流時(shí),作為錯(cuò)誤將處理終止。
      當(dāng)在步驟S113的確定結(jié)果表示不存在由電影播放器300的屬性subtitleNumber所標(biāo)識(shí)的字幕流或者沒有定義屬性subtitleNumber的值時(shí),流程前進(jìn)到步驟S115。在步驟S115之后的步驟是字幕流的自動(dòng)選擇處理。
      在步驟S116,檢查剪切片段信息的塊StreamInfo()字幕流,并且獲得字幕流的語(yǔ)言代碼。確定是否存在其語(yǔ)言代碼與電影播放器300的屬性subtitleLanguageCode的語(yǔ)言代碼相同的字幕流。當(dāng)所確定的結(jié)果表示存在這種字幕流時(shí),流程前進(jìn)到步驟S117。在步驟S117,選擇字幕流。當(dāng)存在滿足步驟S116中的條件的多個(gè)字幕流時(shí),選擇在剪切片段新文件中在塊StreamInfo()中較早到來(lái)的字幕流。之后,流程前進(jìn)到圖42中所示的步驟S84。
      當(dāng)在步驟S116中的確定結(jié)果表示不存在滿足該條件的字幕流時(shí),流程前進(jìn)到步驟S118。在步驟S118中,由于不存在可以被選擇的字幕流,所以將屬性subtitleFlag的值設(shè)置到“0”,其表示不顯示字幕。
      下面,將參照?qǐng)D46中所示的流程圖,詳細(xì)描述42中所示的步驟S84中自動(dòng)設(shè)置屬性subtitleFlag的處理的例子。當(dāng)開始屬性subtitleFlag的字幕設(shè)置時(shí)(在步驟S120),流程前進(jìn)到步驟S121。在步驟S121,確定是否已經(jīng)將表示方法play()的字幕的再現(xiàn)的狀態(tài)的參量subtitle_status的值設(shè)置到了表示自動(dòng)設(shè)置的“-1”,或者已經(jīng)省略了該值。當(dāng)已經(jīng)將參量subtitle_status的值設(shè)置到除了“-1”之外的值時(shí),流程前進(jìn)到步驟S122。在步驟S122中,將已經(jīng)被設(shè)置到參量subtitle_status中的值設(shè)置到屬性subtitleFlag中。
      當(dāng)已經(jīng)將參量subtitle_status的值設(shè)置到“-1”或者已經(jīng)省略了該值時(shí),流程前進(jìn)到步驟S123。在步驟S123,確定由電影播放器300的屬性subtitleLanguageCode所標(biāo)識(shí)的語(yǔ)言代碼是否匹配于當(dāng)前正在被選擇的音頻流的語(yǔ)言代碼(電影播放器300的屬性subtitleLanguageCode),以及是否已經(jīng)將屬性subtitleFlag的值設(shè)置到使得音頻流被再現(xiàn)的除了“0”以外的值。當(dāng)確定結(jié)果標(biāo)識(shí)在步驟S123中的條件被滿足時(shí),流程前進(jìn)到步驟S124。
      在步驟S124中,將屬性subtitleFlag的值設(shè)置到使得字幕不被顯示的“0”。換句話說(shuō),當(dāng)滿足步驟S123中的條件時(shí),其標(biāo)識(shí)由音頻流所再現(xiàn)的音頻的語(yǔ)言與由字幕流所顯示的字幕的語(yǔ)言相同。因此,將屬性subtitleFlag的值設(shè)置到使得字幕不被顯示的“0”。
      當(dāng)確定結(jié)果標(biāo)識(shí)不滿足步驟S123中的條件時(shí),流程前進(jìn)到步驟S125。在步驟S 125,將屬性subtitleFlag的值設(shè)置到使得字幕顯示的“1”。
      在圖46中,在步驟S123、S124和S125中,與字幕流的語(yǔ)言代碼對(duì)應(yīng)地打開或者關(guān)閉字幕的顯示。替代地,使用字幕流的屬性,可以打開和關(guān)閉字幕的顯示。例如,即使字幕的語(yǔ)言與音頻的語(yǔ)言匹配,當(dāng)字幕流的屬性表示諸如上述解說(shuō)字幕時(shí),可以(通過(guò)將屬性subtitleFlag的值設(shè)置到“1”)不壓縮字幕的顯示。當(dāng)字幕流用于解說(shuō)時(shí),不需要壓縮字幕的顯示。
      如參照?qǐng)D31所描述的那樣,由剪切片斷AV流文件“XXXXX.CLP”的塊StaticInfo()的字段subtitle_presentation_type的值來(lái)表示字幕流的屬性。下面,將描述帶有字幕流的屬性的字幕的顯示的設(shè)置打開/關(guān)閉的處理的例子。在圖47中,用相同的附圖標(biāo)記表示與圖46中的那些類似的部分,并且省略對(duì)它們的描述。當(dāng)在步驟S123的確定結(jié)果表示由電影播放器300的屬性subtitleLanguageCode所標(biāo)識(shí)的語(yǔ)言代碼匹配于當(dāng)前正在被選擇的音頻流的語(yǔ)言代碼而且已經(jīng)將屬性subtitleFlag的值設(shè)置到除了“0”以外的值時(shí),流程前進(jìn)到步驟S126。
      在步驟S126,確定字幕流的屬性是否代表正常字幕的屬性(正常)。當(dāng)確定結(jié)果表示字幕流的屬性代表正常字幕的屬性時(shí),流程前進(jìn)到步驟S124。在步驟S124中,將屬性subtitleFlag的值設(shè)置到使得字幕不被顯示的“0”。當(dāng)確定結(jié)果表示字幕流的屬性不代表正常字幕的屬性時(shí),流程前進(jìn)到步驟S125。在步驟S125,將屬性subtitleFlag的值設(shè)置到使得字幕被顯示的“1”。
      如上所述,根據(jù)本發(fā)明的實(shí)施方式適當(dāng)和自動(dòng)地選擇音頻和字幕。
      在上述例子中,復(fù)用多個(gè)不同語(yǔ)言的音頻流。然而,本發(fā)明不限于這種例子。例如,也可以復(fù)用其語(yǔ)言相同而內(nèi)容不同的音頻流。作為例子,可以復(fù)用其語(yǔ)言相同而內(nèi)容不同的音頻流A和音頻流B,并且可以將一個(gè)流(例如音頻流A)用作原始語(yǔ)言。
      權(quán)利要求
      1.一種從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)設(shè)備,包括讀取裝置,用于從記錄介質(zhì)中讀取數(shù)據(jù),在該記錄介質(zhì)上已經(jīng)記錄了至少包含視頻流、與該視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)以及用其來(lái)控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序;播放器裝置,用于根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和第一模式設(shè)置裝置,用于將第一模式設(shè)置到播放器裝置中,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)所述播放器裝置從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇原始語(yǔ)言的音頻流。
      2.根據(jù)權(quán)利要求1所述的再現(xiàn)設(shè)備,其中,所述內(nèi)容數(shù)據(jù)還包含一個(gè)或多個(gè)字幕流,和其中,該再現(xiàn)設(shè)備還包括第二模式設(shè)置裝置,用于將第二模式設(shè)置到播放器裝置中,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)該播放器裝置選擇是否再現(xiàn)字幕流。
      3.根據(jù)權(quán)利要求2所述的再現(xiàn)設(shè)備,還包括音頻流自動(dòng)選擇設(shè)置裝置,用于設(shè)置是否自動(dòng)地從該一個(gè)或多個(gè)音頻流中選擇一個(gè)音頻流;和字幕流自動(dòng)選擇設(shè)置裝置,用于設(shè)置是否從該一個(gè)或多個(gè)字幕流中自動(dòng)地選擇一個(gè)字幕流,其中,根據(jù)音頻流自動(dòng)選擇設(shè)置裝置的設(shè)置所自動(dòng)選擇的音頻流的語(yǔ)言匹配于根據(jù)字幕流自動(dòng)選擇設(shè)置裝置的設(shè)置所自動(dòng)選擇的字幕流的語(yǔ)言,自動(dòng)地設(shè)置第二模式裝置的第二模式使得不再現(xiàn)所選擇的字幕流。
      4.根據(jù)權(quán)利要求3所述的再現(xiàn)設(shè)備,其中,在音頻流自動(dòng)選擇設(shè)置裝置的自動(dòng)選擇中,當(dāng)已經(jīng)由模式設(shè)置裝置設(shè)置了第一模式時(shí),從該一個(gè)或多個(gè)音頻流中選擇原始語(yǔ)言的音頻流,而當(dāng)模式設(shè)置裝置沒有設(shè)置第一模式時(shí),從該一個(gè)或多個(gè)音頻流中選擇由播放器裝置所設(shè)置的語(yǔ)言的音頻流。
      5.根據(jù)權(quán)利要求3所述的再現(xiàn)設(shè)備,其中,在字幕流自動(dòng)設(shè)置裝置的自動(dòng)選擇中,從該一個(gè)或多個(gè)字幕流中選擇由播放器裝置所設(shè)置的語(yǔ)言的字幕流。
      6.根據(jù)權(quán)利要求1所述的再現(xiàn)設(shè)備,其中,也已經(jīng)將流信息記錄在了記錄介質(zhì)上,該流信息至少描述標(biāo)識(shí)該一個(gè)或多個(gè)音頻流中的每一個(gè)的信息,和其中,播放器裝置確定在該一個(gè)或多個(gè)音頻流的流信息中首先到來(lái)的位置處的音頻為原始語(yǔ)言的音頻流。
      7.根據(jù)權(quán)利要求6所述的再現(xiàn)設(shè)備,其中,流信息還描述表示音頻流的聲道數(shù)的信息,其中,播放器裝置從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇其語(yǔ)言與原始語(yǔ)言相同并且其聲道數(shù)最大的音頻流。
      8.根據(jù)權(quán)利要求7所述的再現(xiàn)設(shè)備,其中,存在其語(yǔ)言與原始語(yǔ)言相同并且其聲道數(shù)也相同的多個(gè)音頻流,播放器裝置從該一個(gè)或多個(gè)音頻流中選擇在流信息中首先到來(lái)的音頻流。
      9.根據(jù)權(quán)利要求2所述的再現(xiàn)設(shè)備,其中,也已經(jīng)將流信息記錄在了記錄介質(zhì)上,該流信息至少描述標(biāo)識(shí)該一個(gè)或多個(gè)字幕流中的每一個(gè)的信息,和其中,當(dāng)存在其語(yǔ)言相同的多個(gè)字幕流時(shí),播放器從該一個(gè)或多個(gè)字幕流中選擇在流信息中首先到來(lái)的字幕流。
      10.一種從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)方法,包括步驟從記錄介質(zhì)中讀取數(shù)據(jù),在該記錄介質(zhì)上已經(jīng)記錄了至少包含視頻流、與該視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)以及用其來(lái)控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序;根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和將第一模式設(shè)置到內(nèi)容再現(xiàn)步驟中,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇原始語(yǔ)言的音頻流。
      11.一種使得計(jì)算機(jī)設(shè)備執(zhí)行從盤形記錄介質(zhì)中再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)方法的再現(xiàn)程序,該再現(xiàn)方法包括步驟從記錄介質(zhì)中讀取數(shù)據(jù),在該記錄介質(zhì)上已經(jīng)記錄了至少包含視頻流、與該視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)以及用其來(lái)控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序;根據(jù)再現(xiàn)控制程序來(lái)再現(xiàn)內(nèi)容數(shù)據(jù);和將第一模式設(shè)置到內(nèi)容再現(xiàn)步驟中,使得當(dāng)再現(xiàn)內(nèi)容數(shù)據(jù)時(shí)從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇原始語(yǔ)言的音頻流。
      12.一種記錄介質(zhì),其上已經(jīng)記錄有至少包含視頻流、與該視頻流對(duì)應(yīng)的一個(gè)或多個(gè)音頻流的內(nèi)容數(shù)據(jù)、用其來(lái)控制內(nèi)容數(shù)據(jù)的再現(xiàn)的再現(xiàn)控制程序和至少描述標(biāo)識(shí)一個(gè)或多個(gè)音頻流中的每一個(gè)的流信息,使得標(biāo)識(shí)用作原始語(yǔ)言的音頻流的信息首先到來(lái)。
      13.根據(jù)權(quán)利要求12所述的記錄介質(zhì),其中,所述再現(xiàn)控制程序使得再現(xiàn)內(nèi)容數(shù)據(jù)的再現(xiàn)設(shè)備根據(jù)流信息自動(dòng)選擇原始語(yǔ)言。
      14.根據(jù)權(quán)利要求13所述的記錄介質(zhì),其中,所述內(nèi)容數(shù)據(jù)還包含與視頻流對(duì)應(yīng)的一個(gè)或多個(gè)字幕流,和其中,所述再現(xiàn)控制程序使得再現(xiàn)設(shè)備從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇一個(gè)音頻流,從該一個(gè)或多個(gè)字幕流中自動(dòng)選擇一個(gè)字幕流,并且當(dāng)已經(jīng)被自動(dòng)選擇的音頻流的語(yǔ)言匹配于已經(jīng)被自動(dòng)選擇的字幕流的語(yǔ)言時(shí)不再現(xiàn)所選擇的字幕流。
      15.根據(jù)權(quán)利要求12所述的記錄介質(zhì),其中,流信息還描述表示音頻流的聲道數(shù)的信息,和其中,再現(xiàn)該內(nèi)容數(shù)據(jù)的再現(xiàn)裝置使得從該一個(gè)或多個(gè)音頻流中自動(dòng)選擇其語(yǔ)言于原始語(yǔ)言相同并且其聲道數(shù)最大的音頻流。
      16.根據(jù)權(quán)利要求15所述的記錄介質(zhì),其中,當(dāng)在該一個(gè)或多個(gè)音頻流中存在其語(yǔ)言與原始語(yǔ)言相同并且其聲道數(shù)相同的多個(gè)音頻流時(shí),要被選擇的音頻流在流信息中較早到來(lái)。
      17.根據(jù)權(quán)利要求14所述的記錄介質(zhì),其中,流信息還至少包含標(biāo)識(shí)該一個(gè)或多個(gè)字幕流中的每一個(gè)的信息,和其中,當(dāng)在該一個(gè)或多個(gè)字幕流中存在其語(yǔ)言相同的多個(gè)字幕流時(shí),要被選擇的字幕流在流信息中較早到來(lái)。
      18.一種數(shù)據(jù)結(jié)構(gòu),包括視頻流;內(nèi)容數(shù)據(jù),包含一個(gè)或多個(gè)與視頻流對(duì)應(yīng)的音頻流;再現(xiàn)控制程序,用其控制內(nèi)容數(shù)據(jù)的再現(xiàn);和流信息,至少包含標(biāo)識(shí)該一個(gè)或多個(gè)音頻流中的每一個(gè)的信息,使得標(biāo)識(shí)用作原始語(yǔ)言的音頻流的該信息首先到來(lái)。
      全文摘要
      在盤再現(xiàn)期間可以自動(dòng)地選擇音頻和字幕。可以將原始語(yǔ)言設(shè)置為要在播放器端被再現(xiàn)的音頻流的語(yǔ)言。在記錄介質(zhì)端,在剪切片段信息文件的頭部描述原始語(yǔ)言的音頻流。而且,作為自動(dòng)設(shè)置音頻和字幕的結(jié)果,當(dāng)獲得與兩種語(yǔ)言的匹配時(shí),不顯示字幕。例如,當(dāng)播放器設(shè)置(500)是使得音頻是原始語(yǔ)言而字幕是日語(yǔ)、在盤中所包含的流(501)使得音頻流是日語(yǔ)(原始語(yǔ)言)和英語(yǔ)而字幕是英語(yǔ)和日語(yǔ)的時(shí)候,自動(dòng)設(shè)置選擇原始語(yǔ)言,即用于音頻的日語(yǔ)以及選擇用于字幕的日語(yǔ)。由于音頻語(yǔ)言與字幕語(yǔ)言一致,所以最終選擇的流(502)是日語(yǔ)音頻和不顯示的日語(yǔ)字幕。
      文檔編號(hào)H04N5/93GK101044573SQ200580035850
      公開日2007年9月26日 申請(qǐng)日期2005年8月2日 優(yōu)先權(quán)日2004年8月19日
      發(fā)明者浜田俊也, 各務(wù)辰哉, 藤波靖 申請(qǐng)人:索尼株式會(huì)社, 索尼計(jì)算機(jī)娛樂公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1