两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)處理裝置及方法、程序及介質(zhì)、數(shù)據(jù)介質(zhì)和數(shù)據(jù)結(jié)構(gòu)的制作方法

文檔序號:6758445閱讀:169來源:國知局
專利名稱:數(shù)據(jù)處理裝置及方法、程序及介質(zhì)、數(shù)據(jù)介質(zhì)和數(shù)據(jù)結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、程序、程序記錄介質(zhì)、數(shù)據(jù)記錄介質(zhì)和數(shù)據(jù)結(jié)構(gòu)。特別是,本發(fā)明涉及允許非常方便地處理數(shù)據(jù)的數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、程序、程序記錄介質(zhì)、數(shù)據(jù)記錄介質(zhì)和數(shù)據(jù)結(jié)構(gòu)。
背景技術(shù)
近年來,作為具有大存儲容量并可被隨機(jī)存取的記錄介質(zhì),例如,數(shù)字多用途盤(DVD)已被廣泛使用。此外,一種執(zhí)行對于DVD的各種處理的DVD設(shè)備也已被廣泛使用。
作為DVD設(shè)備,存在DVD記錄器,其將電視廣播節(jié)目等的數(shù)據(jù)記錄到DVD上,以及從DVD上再現(xiàn)所述數(shù)據(jù);汽車導(dǎo)航系統(tǒng),其使用在其上記錄了記錄地圖信息等的DVD,從其中再現(xiàn)該地圖信息并顯示它;游戲設(shè)備,其使用在其上記錄了游戲程序等的DVD,從其中讀取該程序并執(zhí)行它;以及其它設(shè)備。
例如,在下面的非專利文獻(xiàn)中描述了DVD的細(xì)節(jié)。[非專利文件1]DVDSpecifications for Read-Only Disc Part 3(用于只讀盤的DVD規(guī)范,第3部分);版本1.1,1997年12月。
諸如在其上記錄大量數(shù)據(jù)的DVD的記錄介質(zhì)和使用它的DVD設(shè)備需要允許非常方便地處理這種大量的數(shù)據(jù)。

發(fā)明內(nèi)容
本發(fā)明是根據(jù)上述觀點(diǎn)形成的,并且本發(fā)明的目的是要非常方便地處理數(shù)據(jù)。
本發(fā)明是一種數(shù)據(jù)處理裝置,包括獲取部件,用于從表示是否允許二次(secondarily)使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息中,獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;確定部件,用于對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及捕捉部件,用于在確定部件確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
本發(fā)明是一種數(shù)據(jù)處理方法,包括以下步驟從表示是否允許二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息中,獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
本發(fā)明是一種程序,包括以下步驟從表示是否允許二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息中,獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
本發(fā)明是一種在其上記錄了程序的程序記錄介質(zhì),該程序包括以下步驟從表示是否允許二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息中,獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
本發(fā)明是一種在其上記錄了記錄數(shù)據(jù)的數(shù)據(jù)記錄介質(zhì),該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元;以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
本發(fā)明是一種正由數(shù)據(jù)處理裝置處理的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元;以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
在本發(fā)明的數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法、程序以及記錄在程序記錄介質(zhì)上的程序中,從表示是否允許二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息中,獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息。對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)。當(dāng)確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
在本發(fā)明的數(shù)據(jù)記錄介質(zhì)上,記錄了記錄數(shù)據(jù),該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元;以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
在本發(fā)明的數(shù)據(jù)結(jié)構(gòu)中,數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元;以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
根據(jù)本發(fā)明,可以非常方便地處理數(shù)據(jù)。具體地說,可以控制視頻數(shù)據(jù)的二次使用。
接下來,將描述本發(fā)明的實(shí)施例。權(quán)利要求的元素(element)和實(shí)施例之間的關(guān)系如下。該關(guān)系表示在實(shí)施例中描述支持權(quán)利要求所闡述的本發(fā)明的特定示例。因而,即使在權(quán)利要求的元素中沒有描述某些特定示例,也不意味著這些特定示例不與權(quán)利要求的元素相對應(yīng)。反之,即使作為權(quán)利要求元素的對應(yīng)物而在此部分描述了特定示例,也不意味著這些特定示例不與除該權(quán)利要求元素之外的其它元素相對應(yīng)。
在此部分中,不意味著在權(quán)利要求中闡述對應(yīng)于在本發(fā)明實(shí)施例中描述的特定示例的本發(fā)明的所有方面。換句話說,此部分中的描述對應(yīng)在本發(fā)明實(shí)施例中描述的特定示例。因而,此部分中的描述并不否認(rèn)存在未在本專利申請的權(quán)利要求中闡述的本發(fā)明的方面,并且可以做出分案專利申請和/或可以添加本發(fā)明的另外的方面作為修正。
如權(quán)利要求1所述的數(shù)據(jù)處理裝置是處理記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)的數(shù)據(jù)處理裝置(例如,圖1中示出的盤設(shè)備),該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息(例如,圖5中示出的capture_enable_flag_PlayList、圖10中示出的capture_enable_flag_Clip、圖45中示出的capture_enable_ps2或圖46中示出的capture_enable_flag_AU),表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該數(shù)據(jù)處理裝置包括獲取部件(例如,圖2A和圖2B中示出的、執(zhí)行圖44中示出的步驟S372處的處理的播放器控制模塊212),用于獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;確定部件(例如,圖2A和圖2B中示出的、執(zhí)行圖44中示出的步驟S373處的處理的播放器控制模塊212),用于對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及捕捉部件(例如,圖2A和圖2B中示出的、執(zhí)行圖44中示出的步驟S376處的處理的圖形處理模塊219),用于在確定部件確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí)捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
在如權(quán)利要求2所述的數(shù)據(jù)處理裝置中,記錄數(shù)據(jù)還包含表示視頻數(shù)據(jù)的再現(xiàn)過程的播放列表(例如,圖5中示出的PlayList())。
許可信息(例如,圖5中示出的capture_enable_flag_PlayList)在播放列表中進(jìn)行描述,該播放列表表示是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)。
在如權(quán)利要求3所述的數(shù)據(jù)處理裝置中,記錄數(shù)據(jù)包含多路復(fù)用數(shù)據(jù)(例如,存儲在圖4中示出的文件00001.PS中的程序(program)流,其中,已經(jīng)將多個基本流(elementary stream)與其多路復(fù)用),至少其編碼視頻數(shù)據(jù)已經(jīng)被多路復(fù)用;關(guān)于該多路復(fù)用數(shù)據(jù)的元數(shù)據(jù)(例如,圖10中示出的、存儲在圖4中示出的文件00001.CLP中的Clip())。
該元數(shù)據(jù)包含許可信息(例如,圖10中示出的capture_enable_flag_Clip),表示是否允許二次使用對應(yīng)于與該多路復(fù)用數(shù)據(jù)多路復(fù)用的編碼視頻數(shù)據(jù)的視頻數(shù)據(jù)。
在如權(quán)利要求4所述的數(shù)據(jù)處理裝置中,記錄數(shù)據(jù)還包含緊接在每個存取單元的編碼視頻數(shù)據(jù)的至少一個可解碼起點(diǎn)的每一個之后、并用于將編碼視頻數(shù)據(jù)解碼的使用信息(例如,圖45中示出的private_stream_2_PES_payload())。
該使用信息包含許可信息(例如,圖45中示出的capture_enable_ps2),表示是否允許二次使用與位于該使用信息自身和下一使用信息之間的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
在如權(quán)利要求5所述的數(shù)據(jù)處理裝置中,記錄數(shù)據(jù)還包含緊接在每個存取單元的編碼視頻數(shù)據(jù)的至少一個可解碼起點(diǎn)的每一個之后、并用于將編碼視頻數(shù)據(jù)解碼的使用信息(例如,圖45中示出的private_stream_2_PES_payload())。
該使用信息包含許可信息(例如,圖46中示出的capture_enable_flag_AU),其表示對于每個存儲單元,是否允許二次使用與位于該使用信息自身和下一使用信息之間的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
在如權(quán)利要求6所述的數(shù)據(jù)處理裝置中,記錄數(shù)據(jù)包含以下幾項(xiàng)作為許可信息第一許可信息(例如,圖5中示出的capture_enable_flag_PlayList),其表示是否允許二次使用與具有等于或大于存取單元的第一單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),以及第二許可信息(例如,圖10中示出的capture_enable_flag_Clip),其表示是否允許二次使用與具有等于或大于存取單元的第二單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
如權(quán)利要求7所述的數(shù)據(jù)處理裝置,還包括執(zhí)行部件(例如,圖2A和圖2B中示出的、執(zhí)行圖44中示出的步驟S381處的處理的圖形處理模塊219),用于執(zhí)行使用由捕捉部件捕捉的視頻數(shù)據(jù)來顯示背景或屏幕保護(hù)程序的處理。
如權(quán)利要求8所述的數(shù)據(jù)處理方法是用于處理記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)的數(shù)據(jù)處理裝置的數(shù)據(jù)處理方法,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息(例如,圖5中示出的capture_enable_flag_PlayList、圖10中示出的capture_enable_flag_Clip、圖45中示出的capture_enable_ps2或圖46中示出的capture_enable_flag_AU),表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該數(shù)據(jù)處理方法包括以下步驟
獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息(例如,在圖44中示出的步驟S372處);對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)(例如,在圖44中示出的步驟S373處);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)(例如,在圖44中示出步驟S376處)。
如權(quán)利要求9所述的程序和如權(quán)利要求10所述的記錄在程序記錄介質(zhì)上的程序是使計(jì)算機(jī)執(zhí)行對記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)的數(shù)據(jù)處理的程序,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息(例如,圖5中示出的capture_enable_flag_PlayList、圖10中示出的capture_enable_flag_Clip、圖45中示出的capture_enable_ps2或圖46中示出的capture_enable_flag_AU),其表示是否允許在計(jì)算機(jī)中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該程序包括以下步驟獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息(例如,在圖44中示出的步驟S372處);對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)(例如,在圖44中示出的步驟S373處);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)(例如,在圖44中示出的步驟S376處)。
如權(quán)利要求11所述的數(shù)據(jù)記錄介質(zhì)是在其上記錄了記錄數(shù)據(jù)的數(shù)據(jù)記錄介質(zhì),該記錄數(shù)據(jù)由數(shù)據(jù)處理裝置處理,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息(例如,圖5中示出的capture_enable_flag_PlayList、圖10中示出的capture_enable_flag_Clip、圖45中示出的capture_enable_ps2或圖46中示出的capture_enable_flag_AU),其表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。


圖1是示出根據(jù)本發(fā)明實(shí)施例的盤設(shè)備的硬件結(jié)構(gòu)示例的方框圖;圖2A和圖2B是示出CPU 112執(zhí)行的軟件模塊組的結(jié)構(gòu)示例的方框圖;圖3是示出緩沖控制模塊215的結(jié)構(gòu)示例的方框圖;圖4是示出盤101的目錄結(jié)構(gòu)示例的示意圖;圖5是示出文件“PLAYLIST.DAT”的語法的示意圖;圖6是示出PlayItem()的語法的示意圖;圖7是示出PlayListMark()的語法的示意圖;圖8是示出mark_type的值和Mark()的類型的關(guān)系的示意圖;圖9是示出PlayList()、PlayItem()、剪輯(clip)和存儲在剪輯流文件中的程序流的關(guān)系的示意圖;圖10是示出剪輯信息文件Clip()的語法的示意圖;圖11是示出stream_id、private_stream_id和由此標(biāo)識的基本流的關(guān)系的示意圖;圖12是示出StaticInfo()的語法的示意圖;圖13是示出DynamicInfo()的語法的示意圖;圖14是示出EP_map()的語法的示意圖;圖15A和圖15B是示出MPEG-2系統(tǒng)的程序流、程序流包(pack)和程序流包報(bào)頭的語法的示意圖;圖16A和圖16B是示出MPEG-2系統(tǒng)的PES分組(packet)的語法的示意圖;圖17A、圖17B和圖17C是示出MPEG-2系統(tǒng)的PES分組的語法的延續(xù)部分的示意圖;圖18A和圖18B是示出MPEG-2系統(tǒng)的PES分組的語法的延續(xù)部分的示意圖;圖19A和圖19B是示出MPEG-2系統(tǒng)的PES_packet()的stream_id的值和基本流的屬性(類型)的關(guān)系的示意圖;圖20是示出盤設(shè)備所使用的stream_id的示意圖;圖21是示出private_streaml_PES_payload()的語法的示意圖;
圖22是示出private_stream_id的值和存儲在private_payload()中的基本流的屬性的關(guān)系的示意圖;圖23是示出private_stream2_PES_payload()的語法的示意圖;圖24是示出au_information()的語法的示意圖;圖25是示出文件“PLAYLIST.DAT”的特定示例的示意圖;圖26A和圖26B是示出剪輯信息文件“00001.CLP,”“00002.CLP,”和“00003.CLP”的特定示例的示意圖;圖27是示出剪輯信息文件“00001.CLP”的EP_map()的特定示例的示意圖;圖28是示出PlayList#0和PlayList#1的PlayListMark()的特定示例的示意圖;圖29是描述預(yù)再現(xiàn)過程的流程圖;圖30是描述再現(xiàn)過程的流程圖;圖31是描述PlayItem改變處理的流程圖;圖32是描述時(shí)間代碼顯示處理的流程圖;圖33是描述流改變處理的流程圖;圖34是描述緩沖控制模塊215的處理的流程圖;圖35是描述緩沖控制模塊215的處理的流程圖;圖36是描述視頻流讀取處理的流程圖;圖37是描述音頻流讀取處理的流程圖;圖38是描述字幕流讀取處理的流程圖;圖39是描述再次同步處理的流程圖;圖40是描述標(biāo)記處理的流程圖;圖41是描述輸出屬性控制處理的流程圖;圖42是示出在剪輯信息文件“00003.CLP”中描述的一組pts_change_point和DynamicInfo()的特定示例的示意圖;圖43是描述字幕顯示控制處理的流程圖;圖44是描述捕捉控制處理和背景/屏幕保護(hù)程序處理的流程圖;圖45是示出private_stream2_PES_payload()的其它語法的示意圖;以及圖46是示出au_information()的其它語法的示意圖。
具體實(shí)施例方式
接下來,將參照附圖來描述本發(fā)明的實(shí)施例。
圖1是示出根據(jù)本發(fā)明實(shí)施例的盤設(shè)備的硬件結(jié)構(gòu)示例的方框圖。
圖1中示出的盤可以應(yīng)用于例如盤播放器、游戲設(shè)備、汽車導(dǎo)航系統(tǒng)等。
在圖1示出的盤設(shè)備中,盤101是諸如DVD的光盤、磁光盤、磁盤等。諸如視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)的內(nèi)容數(shù)據(jù)以及再現(xiàn)那些數(shù)據(jù)所必需的附加數(shù)據(jù)被記錄在盤101上。
當(dāng)必要時(shí),記錄在盤101上的數(shù)據(jù)(稱為記錄數(shù)據(jù))包括可由計(jì)算機(jī)執(zhí)行的程序。根據(jù)本發(fā)明的實(shí)施例,使用作為盤形記錄介質(zhì)的盤101來作為記錄介質(zhì)。可替換地,記錄介質(zhì)可以是例如半導(dǎo)體存儲器或帶形記錄介質(zhì)。可以將從遠(yuǎn)程位置處的盤讀取的數(shù)據(jù)傳送并輸入到圖1中示出的盤設(shè)備。換句話說,可以通過連接到盤設(shè)備的另一設(shè)備來從盤101讀取數(shù)據(jù)。由其它設(shè)備讀取的數(shù)據(jù)可被盤設(shè)備接收和處理。此外,盤設(shè)備可以通過諸如因特網(wǎng)的網(wǎng)絡(luò)從存儲了與記錄在盤101上的數(shù)據(jù)相似的數(shù)據(jù)的服務(wù)器等接收數(shù)據(jù),并處理所接收的數(shù)據(jù)。此外,盤設(shè)備還可以從諸如服務(wù)器等的另一設(shè)備接收數(shù)據(jù),將所接收的數(shù)據(jù)記錄到盤101上,并隨后處理記錄到盤101上的數(shù)據(jù)。
可以將盤101加載到盤驅(qū)動器102,或?qū)⑵鋸谋P驅(qū)動器102卸載。盤驅(qū)動器102具有內(nèi)置接口(未示出)。盤驅(qū)動器102通過該內(nèi)置接口連接到驅(qū)動器接口114。盤驅(qū)動器102驅(qū)動盤101,對應(yīng)于例如讀取命令而從盤101讀取數(shù)據(jù),并將該數(shù)據(jù)提供給驅(qū)動器接口114。
中央處理單元(CPU)112、存儲器113、驅(qū)動器接口114、輸入接口115、視頻解碼器116、音頻解碼器117、視頻輸出接口118和音頻輸出接口119連接到總線111。
CPU 112和存儲器113組成計(jì)算機(jī)系統(tǒng)。換句話說,CPU 112執(zhí)行作為存儲在存儲器113中的程序的軟件模塊組來控制整個盤設(shè)備,并進(jìn)行各種處理,所述處理將在后面進(jìn)行描述。存儲器113還存儲CPU 112執(zhí)行的軟件模塊組。此外,存儲器113臨時(shí)存儲操作CPU 112所必需的數(shù)據(jù)。存儲器113可以僅由非易失性存儲器、或者由易失性存儲器和非易失性存儲器的組合組成。當(dāng)圖1中示出的盤設(shè)備具有記錄(安裝)了CPU 112執(zhí)行的軟件模塊組的硬盤時(shí),存儲器113可以僅由非易失性存儲器組成。
可以將CPU 112執(zhí)行的程序(軟件模塊組)預(yù)先記錄(存儲)在作為內(nèi)置在盤設(shè)備中的記錄介質(zhì)的存儲器113內(nèi)。
可替換地,可以將該程序臨時(shí)或永久地存儲(記錄)到盤101或者諸如軟盤、光盤只讀存儲器(CD-ROM)、磁光(MO)盤、磁盤或存儲卡的可拆卸記錄介質(zhì)??梢宰鳛樗^的軟件包來提供可拆卸記錄介質(zhì)。
可以將該程序預(yù)先存儲在存儲器113中,或者將其從上述可拆卸記錄介質(zhì)安裝到盤設(shè)備上。可替換地,可以將該程序從下載站點(diǎn)通過用于數(shù)字衛(wèi)星廣播的衛(wèi)星無線地傳遞到盤設(shè)備、或者通過局域網(wǎng)(LAN)或諸如因特網(wǎng)的網(wǎng)絡(luò)有線地傳送到盤設(shè)備。盤設(shè)備通過輸入接口115接收該程序,并將該程序安裝到內(nèi)置存儲器113。
該程序可由一個CPU執(zhí)行、或由多個CPU分布式執(zhí)行。
驅(qū)動器接口114在CPU 112的控制下控制盤驅(qū)動器102。盤驅(qū)動器102通過總線111,將從盤101讀取的數(shù)據(jù)提供給CPU 112、存儲器113、視頻解碼器116和音頻解碼器117。
輸入接口115對應(yīng)于用戶對鍵(按鈕)和遙控器(未示出)的操作而接收信號,并通過總線111將該信號提供給CPU 112。輸入接口115還充當(dāng)調(diào)制解調(diào)器(包括非對稱數(shù)字用戶線(ADSL)調(diào)制解調(diào)器)、網(wǎng)絡(luò)接口卡(NIC)等的通信接口。
視頻解碼器116將由盤驅(qū)動器102從盤101讀取、并通過驅(qū)動器接口114和總線111提供給視頻解碼器116的編碼視頻數(shù)據(jù)解碼,并通過總線111將解碼后的視頻數(shù)據(jù)提供給CPU 112和視頻輸出接口118。
音頻解碼器117將由盤驅(qū)動器102從盤101讀取、并通過驅(qū)動器接口114和總線111提供給音頻解碼器117的編碼音頻數(shù)據(jù)解碼,并通過總線111將編碼后的音頻數(shù)據(jù)提供給CPU 112和音頻輸出接口119。
視頻輸出接口118對通過總線111提供的視頻數(shù)據(jù)進(jìn)行預(yù)定處理,并從視頻輸出端120輸出處理后的視頻數(shù)據(jù)。音頻輸出接口119對通過總線111提供的音頻數(shù)據(jù)進(jìn)行預(yù)定處理,并從音頻輸出端121輸出處理后的音頻數(shù)據(jù)。
視頻輸出端120連接到諸如陰級射線管(CRT)或液晶板的視頻輸出設(shè)備(未示出)。因而,從視頻輸出端120輸出的視頻數(shù)據(jù)被提供給視頻輸出設(shè)備并由此顯示。音頻輸出端121連接到諸如揚(yáng)聲器和擴(kuò)音器的音頻輸出設(shè)備(未示出)。因而,從音頻輸出端121輸出的音頻數(shù)據(jù)被提供給音頻輸出設(shè)備并由此輸出。
可以將視頻數(shù)據(jù)和音頻數(shù)據(jù)從盤設(shè)備無線或非無線地提供給視頻輸出設(shè)備和音頻輸出設(shè)備。
圖2A和圖2B示出了圖1所示的CPU 112執(zhí)行的軟件模塊組的結(jié)構(gòu)示例。
CPU 112執(zhí)行的軟件模塊組主要分類為操作系統(tǒng)(OS)201和作為應(yīng)用程序的視頻內(nèi)容再現(xiàn)程序210。
當(dāng)打開盤設(shè)備時(shí),操作系統(tǒng)201啟動(CPU 112執(zhí)行操作系統(tǒng)201),進(jìn)行諸如初始設(shè)置的預(yù)定處理,并調(diào)用作為應(yīng)用程序的視頻內(nèi)容再現(xiàn)程序210。
操作系統(tǒng)201向視頻內(nèi)容再現(xiàn)程序210提供諸如文件讀取服務(wù)的基礎(chǔ)服務(wù)。換句話說,操作系統(tǒng)201提供這樣的服務(wù),其針對從視頻內(nèi)容再現(xiàn)程序210接收的文件讀取請求、通過驅(qū)動器接口114操作盤驅(qū)動器102,從盤101讀取數(shù)據(jù),并將該數(shù)據(jù)提供給視頻內(nèi)容再現(xiàn)程序210。此外,操作系統(tǒng)201還解釋文件系統(tǒng)。
操作系統(tǒng)201具有多任務(wù)處理的功能。換句話說,操作系統(tǒng)201可在時(shí)間共享的基礎(chǔ)上同時(shí)(顯而易見地)操作多個軟件模塊。換句話說,盡管視頻內(nèi)容再現(xiàn)程序210是由若干軟件模塊組成的,但是可以并行地操作它們。
視頻內(nèi)容再現(xiàn)程序210由腳本控制模塊211、播放器控制模塊212、內(nèi)容數(shù)據(jù)提供模塊213、解碼控制模塊214、緩沖控制模塊215、視頻解碼器控制模塊216、音頻解碼器控制模塊217、字幕解碼器控制模塊218、圖形處理模塊219、視頻輸出模塊220和音頻輸出模塊221組成。
視頻內(nèi)容再現(xiàn)程序210是在再現(xiàn)來自盤101的數(shù)據(jù)中起關(guān)鍵作用的軟件。當(dāng)盤101被加載入(插入)盤驅(qū)動器102時(shí),視頻內(nèi)容再現(xiàn)程序210檢查盤101是否是在其上以預(yù)定格式(將在后面進(jìn)行描述)記錄了內(nèi)容的盤。視頻內(nèi)容再現(xiàn)程序210從盤101讀取腳本文件(將在后面進(jìn)行描述),執(zhí)行該腳本,讀取再現(xiàn)來自盤101的內(nèi)容所必需的元數(shù)據(jù)(數(shù)據(jù)庫信息)文件,并對應(yīng)于該元數(shù)據(jù)而控制內(nèi)容的再現(xiàn)。
接下來,將描述組成圖2A和圖2B中示出的視頻內(nèi)容再現(xiàn)程序210的軟件模塊。在圖2A和圖2B中,一般地,實(shí)線箭頭標(biāo)記表示內(nèi)容數(shù)據(jù),而虛線箭頭標(biāo)記表示控制數(shù)據(jù)。
腳本控制模塊211解釋并執(zhí)行記錄在盤101上的腳本程序(腳本)。腳本程序可以描述諸如“操作圖形處理模塊219以創(chuàng)建諸如菜單的圖像并顯示它”、“對應(yīng)于從諸如遙控器的用戶接口(UI)提供的信號而改變菜單顯示(例如,移動菜單上的光標(biāo))”以及“控制播放器控制模塊212”的操作。
播放器控制模塊212引用(reference)記錄在盤101上的元數(shù)據(jù)(數(shù)據(jù)庫信息)等,以控制記錄在盤101上的內(nèi)容的再現(xiàn)。換句話說,播放器控制模塊212分析記錄在盤101上的P1ayList()和Clip(),并對應(yīng)于分析結(jié)果而控制內(nèi)容提供模塊213、解碼控制模塊214和緩沖控制模塊215。此外,如將在后面描述的那樣,播放器控制模塊212對應(yīng)于從腳本控制模塊211和輸入接口115接收的命令而進(jìn)行改變要再現(xiàn)的流的流改變控制。此外,解碼控制模塊214從解碼控制模塊214獲取時(shí)刻(time),顯示該時(shí)刻,并進(jìn)行對標(biāo)記(Mark())的處理(其將在后面進(jìn)行描述)。
內(nèi)容數(shù)據(jù)提供模塊213在播放器控制模塊212的控制下、或?qū)?yīng)于存儲在緩沖控制模塊215中的數(shù)據(jù)量,請求操作系統(tǒng)201從盤101讀取內(nèi)容數(shù)據(jù)、元數(shù)據(jù)等。
操作系統(tǒng)201對應(yīng)于從內(nèi)容數(shù)據(jù)提供模塊213接收的請求而從盤101讀取的元數(shù)據(jù)等被提供給預(yù)定模塊。另一方面,操作系統(tǒng)201對應(yīng)于從內(nèi)容數(shù)據(jù)提供模塊213接收的請求而從盤101讀取的內(nèi)容數(shù)據(jù)被提供給緩沖控制模塊215。
解碼控制模塊214在播放控制模塊212的控制下,控制視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218的操作。解碼控制模塊214具有計(jì)時(shí)的計(jì)時(shí)部分214A。解碼控制模塊214管理在視頻解碼器控制模塊216的控制下輸出的視頻數(shù)據(jù)的輸出的同步、以及與該視頻數(shù)據(jù)同步的數(shù)據(jù)的輸出。在此情況中,要與視頻數(shù)據(jù)的輸出同步的數(shù)據(jù)的輸出是在音頻解碼器控制模塊217控制下輸出的音頻數(shù)據(jù)。

緩沖控制模塊215具有作為圖1中示出的存儲器113的存儲區(qū)域的一部分的緩沖區(qū)215A。內(nèi)容數(shù)據(jù)提供模塊213對應(yīng)于從操作系統(tǒng)201接收的請求而將從盤101讀取的內(nèi)容數(shù)據(jù)臨時(shí)存儲到緩沖區(qū)215A。
此外,緩沖控制模塊215對應(yīng)于從視頻解碼器控制模塊216、音頻解碼器控制模塊217或字幕解碼器控制模塊218接收的請求,將存儲在緩沖區(qū)215A中的數(shù)據(jù)分別提供給視頻解碼器控制模塊216、音頻解碼器控制模塊217、或字幕解碼器控制模塊218。
換句話說,緩沖控制模塊215具有將稍后在圖3中描述的視頻讀取功能部分233、音頻讀取功能部分234和字幕讀取功能部分235。緩沖控制模塊215的視頻讀取功能部分233處理從視頻解碼器控制模塊216接收的數(shù)據(jù)請求,以將存儲在緩沖區(qū)215A中的數(shù)據(jù)提供給視頻解碼器控制模塊216。同樣,緩沖控制模塊215中的音頻讀取功能部分234處理從音頻解碼器控制模塊217接收的請求,以將存儲在緩沖區(qū)215A中的數(shù)據(jù)提供給音頻解碼器控制模塊217。緩沖控制模塊215中的視頻讀取功能部分233處理從字幕解碼器控制模塊218接收的請求,以將存儲在緩沖區(qū)215A中的數(shù)據(jù)提供給字幕解碼器控制模塊218。
視頻解碼器控制模塊216操作緩沖控制模塊215的視頻讀取功能部分233(圖3),以從緩沖控制模塊215的緩沖區(qū)215A中每次一個視頻存取單元地讀取編碼視頻數(shù)據(jù),并將該視頻數(shù)據(jù)提供給圖1中示出的視頻解碼器116。此外,視頻解碼器控制模塊216控制視頻解碼器116每次一個視頻存取單元地將數(shù)據(jù)解碼。此外,視頻解碼器控制模塊216將由視頻解碼器116解碼的視頻數(shù)據(jù)提供給圖形處理模塊219。
一個視頻存取單元是例如視頻數(shù)據(jù)的一個畫面(一個幀或一個場)。
音頻解碼器控制模塊217操作緩沖控制模塊215的音頻讀取功能部分234(圖3),以從緩沖控制模塊215的緩沖區(qū)215A每次一個音頻存取單元地讀取編碼音頻數(shù)據(jù),并將該編碼音頻數(shù)據(jù)提供給圖1中示出的音頻解碼器117。音頻解碼器控制模塊217控制音頻解碼器117每次一個音頻存取單元地將編碼音頻數(shù)據(jù)解碼。此外,音頻解碼器控制模塊217將由音頻解碼器117解碼的音頻數(shù)據(jù)提供給音頻輸出模塊221。
一個音頻存取單元是預(yù)定的音頻數(shù)據(jù)量(例如,與一個畫面同步輸出的數(shù)據(jù)的量)。根據(jù)本實(shí)施例,假設(shè)一個音頻存取單元是預(yù)定的固定長度。
字冪解碼器控制模塊218操作緩沖控制模塊215的字幕讀取功能部分235(圖3),以從緩沖控制模塊215的緩沖區(qū)215A每次一個字幕存取單元地讀取編碼字幕數(shù)據(jù)。此外,字幕解碼器控制模塊218具有字幕解碼軟件(未示出)。字幕解碼軟件將從緩沖區(qū)215A讀取的數(shù)據(jù)解碼。字幕解碼器控制模塊218將解碼后的字幕數(shù)據(jù)(字幕的圖像數(shù)據(jù))提供給圖形處理模塊219。
一個字幕存取單元是預(yù)定的字幕數(shù)據(jù)量(例如,與一個畫面同步輸出的數(shù)據(jù)的量)。根據(jù)本實(shí)施例,假設(shè)一個字幕存取單元的大小在其開頭處進(jìn)行描述。
圖形處理模塊219在播放器控制模塊212的控制(對應(yīng)于命令)下,放大或縮小從字幕解碼器控制模塊218接收的字幕數(shù)據(jù),并將放大或縮小后的字幕數(shù)據(jù)添加(覆蓋)到從視頻解碼器控制模塊216接收的視頻數(shù)據(jù)。圖形處理模塊219放大或縮小已被添加到字幕數(shù)據(jù)中的視頻數(shù)據(jù)的大小(圖像幀),使得添加(覆蓋)后的視頻數(shù)據(jù)的幀大小與連接到圖1中示出的視頻輸出端120的視頻輸出設(shè)備的屏幕相匹配。添加(覆蓋)后的視頻數(shù)據(jù)被輸出到視頻輸出模塊220。
此外,圖形處理模塊219對應(yīng)于腳本控制模塊211和播放器控制模塊212的命令(在所述模塊的控制下),生成菜單、消息等,并用輸出視頻數(shù)據(jù)覆蓋該菜單、消息等。
此外,圖形處理模塊219對應(yīng)于連接到圖1中示出的視頻輸出端120的視頻輸出設(shè)備的高寬比、以及表示記錄在盤101上的視頻數(shù)據(jù)的高寬比的信息,轉(zhuǎn)換輸出到視頻輸出模塊220的視頻數(shù)據(jù)的高寬比。
換句話說,當(dāng)視頻輸出設(shè)備的高寬比是16∶9時(shí),如果表示視頻數(shù)據(jù)高寬比的信息是4∶3,則圖形處理模塊219在橫向(水平方向)對輸出到視頻輸出模塊220的視頻數(shù)據(jù)進(jìn)行壓縮(縮小)處理,使視頻數(shù)據(jù)的左端和右端變黑,并輸出得到的視頻數(shù)據(jù)。當(dāng)視頻輸出設(shè)備的高寬比是4∶3時(shí),如果表示視頻數(shù)據(jù)高寬比的信息是16∶9,則圖形處理模塊219在縱向(垂直方向)對輸出到視頻輸出模塊220的視頻數(shù)據(jù)執(zhí)行壓縮(縮小)處理,使視頻數(shù)據(jù)的上端和下端變黑,并輸出得到的視頻數(shù)據(jù)。
當(dāng)視頻輸出設(shè)備的高寬比和所述信息表示的視頻數(shù)據(jù)的高寬比相同,例如4∶3或16∶9,時(shí),圖形處理模塊219輸出未壓縮的視頻數(shù)據(jù)到視頻輸出模塊220。
此外,圖形處理模塊219對應(yīng)于從例如播放器控制模塊212接收的請求,捕捉正被處理的視頻數(shù)據(jù)。此外,圖形處理模塊219存儲所捕捉的視頻數(shù)據(jù),或?qū)⒃撘曨l數(shù)據(jù)提供給播放器控制模塊212。
視頻輸出模塊220獨(dú)占圖1中示出的存儲器113的一部分作為先入先出(FIFO)220A(緩沖區(qū)),并臨時(shí)存儲從圖形處理模塊219接收的視頻數(shù)據(jù)。此外,視頻輸出模塊220頻繁地從FIFO 220A讀取視頻數(shù)據(jù),并將該視頻數(shù)據(jù)輸出到視頻輸出端120(圖1)。
音頻輸出模塊221獨(dú)占圖1中示出的存儲器113的一部分作為FIFO221A(緩沖區(qū)),并臨時(shí)存儲從音頻解碼器控制模塊217(音頻解碼器117)接收的音頻數(shù)據(jù)。此外,音頻輸出模塊221頻繁地從FIFO 221A讀取音頻數(shù)據(jù),并將該音頻數(shù)據(jù)輸出到音頻輸出端121(圖1)。
此外,當(dāng)從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)是具有“主音頻”數(shù)據(jù)和“副音頻”數(shù)據(jù)的左和右聲道(channel)的雙聲道(dual)(雙語)模式音頻數(shù)據(jù)時(shí),音頻輸出模塊221對應(yīng)于預(yù)先指定的音頻輸出模式,將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)輸出到音頻輸出端121。
換句話說,如果已經(jīng)將“主聲音”指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)的左聲道復(fù)制為音頻數(shù)據(jù)的右聲道,并輸出音頻數(shù)據(jù)(“主音頻”數(shù)據(jù))的左和右聲道到音頻輸出端121。如果已經(jīng)將“副音頻”指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)的右聲道復(fù)制為左聲道,并輸出左和右聲道(“副音頻”數(shù)據(jù))到音頻輸出端121。如果“主和副音頻”均被指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)直接輸出到音頻終端端121。
如果從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)是立體聲模式音頻數(shù)據(jù),則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)直接輸出到音頻輸出端121,而不考慮指定了什么音頻輸出模式。
用戶可以利用遙控器,在用于由視頻內(nèi)容再現(xiàn)程序210生成的菜單的屏幕上交互地指定音頻輸出模式。
圖3示出了圖2A和圖2B所示的緩沖控制模塊215的結(jié)構(gòu)示例。
緩沖控制模塊215獨(dú)占地使用圖1中示出的存儲器113的一部分作為緩沖區(qū)215A,并將從盤101讀取的數(shù)據(jù)臨時(shí)存儲到緩沖區(qū)215A。此外,緩沖控制模塊215從緩沖區(qū)215A中讀取數(shù)據(jù),并將該數(shù)據(jù)提供給圖2A和圖2B中示出的視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218。
除緩沖區(qū)215A之外,緩沖控制模塊215還具有作為存儲器113一部分的數(shù)據(jù)開始指針存儲部分231和數(shù)據(jù)寫入指針存儲部分232。此外,緩沖控制模塊215具有視頻讀取功能部分233、音頻讀取功能部分234和字幕讀取功能部分235作為內(nèi)部模塊。
緩沖區(qū)215A是例如連續(xù)存儲從盤101讀取的數(shù)據(jù)的環(huán)形緩沖區(qū)。在緩沖區(qū)215A針對其存儲量讀取數(shù)據(jù)后,緩沖區(qū)215A以所謂的無限循環(huán)(endlessloop)來存儲數(shù)據(jù),使得緩沖區(qū)215A可以在最舊的數(shù)據(jù)上覆寫最新的數(shù)據(jù)。
數(shù)據(jù)開始指針存儲部分231存儲數(shù)據(jù)開始指針,該指針表示在緩沖區(qū)215A內(nèi)存儲的數(shù)據(jù)中、沒有被從緩沖區(qū)215A讀取的最舊數(shù)據(jù)的位置。
數(shù)據(jù)寫入指針存儲部分232存儲這樣的指針,該指針表示在緩沖區(qū)215A中、從盤101讀取的最新數(shù)據(jù)的位置。
無論何時(shí)將從盤101讀取的數(shù)據(jù)存儲到緩沖區(qū)215A中,都按圖3示出的順時(shí)針方向來更新數(shù)據(jù)寫入指針?biāo)硎镜奈恢?。無論何時(shí)從緩沖區(qū)215A讀取數(shù)據(jù),都按圖3示出的順時(shí)針方向來更新數(shù)據(jù)開始指針?biāo)硎镜奈恢?。因而,存儲在緩沖區(qū)215A中的有效數(shù)據(jù)是從數(shù)據(jù)開始指針?biāo)硎镜奈恢醚貓D3示出的順時(shí)針方向到數(shù)據(jù)寫入指針?biāo)硎镜奈恢谩?br> 視頻讀取功能部分233對應(yīng)于從圖2A和圖2B中示出的視頻解碼器控制模塊216接收的請求,從緩沖區(qū)215A讀取視頻流(視頻數(shù)據(jù)的基本流),并將該視頻流提供給視頻解碼器控制模塊216。音頻讀取功能部分234對應(yīng)于從音頻解碼器控制模塊217接收的請求,從緩沖區(qū)215A讀取音頻流(音頻數(shù)據(jù)的基本流),并將該音頻流提供給音頻解碼器控制模塊217。同樣,字幕讀取功能部分235對應(yīng)于從字幕解碼器控制模塊218接收的請求,從緩沖區(qū)215A讀取字幕流(字幕數(shù)據(jù)的基本流),并將該字幕流提供給字幕解碼器控制模塊218。
換句話說,符合例如根據(jù)運(yùn)動圖像專家組(MPEG)2標(biāo)準(zhǔn)的程序流已被記錄在盤101上,該程序流被稱為MPEG-2系統(tǒng)程序流。在該程序流中,已經(jīng)在時(shí)間劃分的基礎(chǔ)上多路復(fù)用了視頻流、音頻流和字幕流中的至少一個基本流。視頻讀取功能部分233具有用于該程序流的解復(fù)用功能。視頻讀取功能部分233將視頻流從存儲在緩沖區(qū)215A中的程序流的視頻流中解復(fù)用,并讀取該視頻流。
同樣,音頻讀取功能部分234具有用于該程序流的解復(fù)用功能。音頻讀取功能部分234將音頻流從存儲在緩沖區(qū)215A中的程序流解復(fù)用,并讀取該音頻流。同樣,字幕讀取功能部分235具有用于該程序流的解復(fù)用功能。字幕讀取功能部分235將字幕流從存儲在緩沖區(qū)215A中的程序流解復(fù)用,并讀取該字幕流。
視頻讀取功能部分233具有作為圖1中示出的存儲器113一部分的視頻讀取指針存儲部分241、stream_id寄存器242以及au_information()寄存器243。
視頻讀取指針存儲部分241存儲視頻讀取指針,該指針表示視頻流在緩沖區(qū)215A中的位置(地址)。視頻讀取功能部分233從緩沖區(qū)215A中視頻讀取指針的位置讀取作為視頻流的數(shù)據(jù)。stream_id寄存器242存儲用來分析存儲在緩沖區(qū)215A中的程序流、并標(biāo)識從該程序流中讀取的視頻流的stream_id。au_information()寄存器243存儲作為從緩沖區(qū)215A讀取視頻流所必需的數(shù)據(jù)(被用來從緩沖區(qū)215A讀取視頻流)的au_information()。
音頻讀取功能部分234具有作為圖1示出的存儲器113一部分的音頻讀取指針存儲部分251、stream_id寄存器252以及private_stream_id寄存器253。
音頻讀取指針存儲部分251存儲音頻讀取指針,該指針表示存儲在緩沖區(qū)215A中音頻流的位置(地址)。音頻讀取功能部分234從緩沖區(qū)215A中音頻讀取指針的位置讀取作為音頻流的數(shù)據(jù)。stream_id寄存器252以及private_stream_id寄存器253分別存儲用來分析存儲在緩沖區(qū)215A中的程序流、并標(biāo)識從該程序流讀取的音頻流的stream_id和private_stream_id(將在后面進(jìn)行描述)。
字幕讀取功能部分235具有作為圖1示出的存儲器113一部分的字幕讀取功能標(biāo)志存儲部分261、字幕讀取指針存儲部分262、stream_id寄存器263和private_stream_id寄存器264。
字幕讀取功能標(biāo)志存儲部分261存儲字幕讀取功能標(biāo)志。當(dāng)存儲在字幕讀取功能標(biāo)志存儲部分261中的字幕讀取功能標(biāo)志是例如“0”時(shí),字幕讀取功能部分235不工作。當(dāng)存儲在字幕讀取功能標(biāo)志存儲部分261中的字幕讀取功能標(biāo)志是例如“1”時(shí),字幕讀取功能部分235工作。
字幕讀取指針存儲部分262存儲字幕讀取指針,該指針表示存儲在緩沖區(qū)215A中的字幕流的位置(地址)。字幕讀取功能部分235從緩沖區(qū)215A中字幕讀取指針的位置讀取作為字幕流的數(shù)據(jù)。stream_id寄存器263和private_stream_id寄存器264分別存儲用來分析存儲在緩沖區(qū)215A中的程序流、并標(biāo)識從該程序流讀取的字幕流的stream_id和private_stream_id(將在后面進(jìn)行描述)。
接下來,將描述記錄在盤101上的數(shù)據(jù)的數(shù)據(jù)格式。
圖4示意性地示出了盤101的目錄結(jié)構(gòu)。
用于盤101的文件系統(tǒng)是例如國際標(biāo)準(zhǔn)化組織(ISO)-9660和通用盤格式(UDF)(http//www.osta.org/specs/)中定義的文件系統(tǒng)中的一種。在目錄結(jié)構(gòu)中,分級管理記錄在盤101上的數(shù)據(jù)的文件??捎糜诒P101的文件系統(tǒng)不限于這些文件系統(tǒng)。
在圖4中,在表示文件系統(tǒng)基礎(chǔ)的根目錄下有“視頻”目錄。在“視頻”目錄下有兩個目錄,它們是“剪輯”目錄和“流”目錄。
除了作為“剪輯”目錄和“流”目錄的這兩個目錄之外,在“視頻”目錄下還有兩個數(shù)據(jù)文件,它們是“SCRIPT.DAT”文件和“PLAYLIST.DAT”文件。
“SCRIPT.DAT”文件是描述腳本程序的腳本文件。換句話說,“SCRIPT.DAT”文件描述允許交互地再現(xiàn)盤101上的數(shù)據(jù)的腳本程序。存儲在“SCRIPT.DAT”文件中的腳本程序由圖2A和圖2B中示出的腳本控制模塊211解釋和執(zhí)行。
“PLAYLIST.DAT”文件存儲至少一個播放列表(將在后面參照圖5描述的PlayList())。播放列表描述諸如記錄在盤101上的視頻數(shù)據(jù)的內(nèi)容的再現(xiàn)過程。
在“剪輯”目錄下有至少一個剪輯信息文件。在“流”目錄下有至少一個剪輯流文件。換句話說,在“剪輯”目錄下有3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。在“流”目錄下有3個剪輯流文件“00001.PS”、“00002.PS”和“00003.PS”。
剪輯流文件存儲程序流,其中所述程序流的已被壓縮并編碼的視頻數(shù)據(jù)、音頻數(shù)據(jù)和字幕數(shù)據(jù)流的至少一個被在時(shí)間劃分的基礎(chǔ)上多路復(fù)用。
剪輯信息文件存儲關(guān)于剪輯流的(文件)元數(shù)據(jù),例如它的特征。
換句話說,剪輯流文件和剪輯信息文件以1對1的關(guān)系相互關(guān)聯(lián)。在圖4中,根據(jù)5位數(shù)字+句點(diǎn)+“PS”的命名規(guī)則來給剪輯流文件命名,而根據(jù)與對應(yīng)的剪輯流相同的5位數(shù)字+句點(diǎn)+“CLP”的命名規(guī)則來給剪輯信息文件命名。
因而,可以通過文件名的擴(kuò)展名(句點(diǎn)的右側(cè))來識別剪輯流文件和剪輯信息文件。此外,可以利用除了剪輯流文件和剪輯信息文件的文件名的擴(kuò)展名之外的文件名(句點(diǎn)的左側(cè)部分),來確定剪輯流文件和剪輯信息文件是否相關(guān)聯(lián)。
接下來,將詳細(xì)描述記錄在盤101上的文件。
圖5示出了“視頻”目錄下的“PLAYLIST.DAT”文件的內(nèi)部結(jié)構(gòu)。
在圖5中,“PLAYLIST.DAT”文件具有描述“PLAYLIST.DAT”文件的數(shù)據(jù)結(jié)構(gòu)的“語法”字段;描述“語法”字段中每個數(shù)據(jù)條目的位長度的“位的數(shù)目”;以及“助記符(Mnemonic)”字段,其中“bslbf”(位串左邊位最先)和“uimsbf”(無符號整數(shù)最高有效位最先)表示“語法”字段中的數(shù)據(jù)條目從左邊的位開始移位,以及“語法”字段中的數(shù)據(jù)條目是無符號整數(shù)、并從最高有效位開始移位。這些條件適用于與圖5相似的其它列表。
“PLAYLIST.DAT”文件以描述諸如名稱(文件名)的信息的name_length(8位)和name_string(255字節(jié))開始。
換句話說,name_length以字節(jié)表示緊跟其后的name_string的大小。name_string表示“PLAYLIST.DAT”文件的名稱(文件名)。
從name_string的開頭起的name_length的字節(jié)被用作有效名。當(dāng)name_length的值是10時(shí),將從name_string的開頭起的10個字節(jié)解釋為有效名。
在name_string之后是number_of_PlayLists(16位)。number_of_PlayLists表示name_string之后的PlayList()的數(shù)量。在number_of_PlayLists之后是由number_of_PlayLists表示的PlayList()。
PlayList()是描述記錄在盤101上的剪輯流文件的再現(xiàn)過程的播放列表。PlayList()具有下面的內(nèi)部結(jié)構(gòu)。
PlayList()以PlayList_data_length(32位)開始。PlayList_data_length表示PlayList()的大小。
PlayList_data_length之后依次是reserved_for_word_alignment(15位)和capture_enable_flag_PlayList(1位)。15位的reserved_for_word_alignment之后是1位的capture_enable_flag_PlayList,用于capture_enable_flag_PlayList的位置處的字對齊,以將其置于16位的位置上。capture_enable_flag_PlayList是1位的標(biāo)志,其表示是否允許在再現(xiàn)來自盤101的數(shù)據(jù)的盤設(shè)備中二次使用對應(yīng)于PlayList()而再現(xiàn)的視頻流的視頻數(shù)據(jù)(屬于PlayList()的視頻數(shù)據(jù))。當(dāng)capture_enable_flag_PlayList的值是例如1(0或1)時(shí),其表示允許二次使用屬于PlayList()的視頻數(shù)據(jù)。當(dāng)capture_enable_flag_PlayList的值是例如0(0或1)時(shí),其表示不允許二次使用(即,禁止二次使用)屬于PlayList()的視頻數(shù)據(jù)。
在圖5中,capture_enable_flag_PlayList是由1位組成的。可替換地,capture_enable_flag_PlayList可以由多個位組成。在此情況中,可以逐步允許二次使用屬于PlayList()的視頻數(shù)據(jù)。換句話說,captur_enable_flag_PlayList可由兩位組成。當(dāng)capture_enabIe_flag_PlayList的值是00B(其中B表示前面的數(shù)字是二進(jìn)制數(shù))時(shí),禁止二次使用視頻數(shù)據(jù)。當(dāng)capture_enable_flag_PlayList的值是01B時(shí),允許二次使用縮小為64×64像素大小或更小的視頻數(shù)據(jù)。當(dāng)capture_enable_flag_PlayList的值是10B時(shí),允許二次使用視頻數(shù)據(jù)而不經(jīng)任何大小縮小。
可以針對應(yīng)用程序而不是大小來限制視頻數(shù)據(jù)的二次使用。換句話說,當(dāng)capture_enable_flag_PlayList的值是01B時(shí),只允許視頻內(nèi)容再現(xiàn)程序210(圖2A和圖2B)二次使用該視頻數(shù)據(jù)。當(dāng)capture_enable_flag_PlayList的值是10B時(shí),允許圖1示出的盤設(shè)備中的包括視頻內(nèi)容再現(xiàn)程序210在內(nèi)的任何應(yīng)用程序二次使用該視頻數(shù)據(jù)。在此示例中,圖1示出的盤設(shè)備中的除了視頻內(nèi)容再現(xiàn)程序210之外的應(yīng)用程序顯示墻紙(背景)或屏幕保護(hù)程序。
當(dāng)capture_enable_flag_PlayList由2位組成時(shí),其跟隨的reserved_for_word_alignment由用于字對齊的14位組成。
可替換地,利用capture_enable_flag_PlayList,可以允許在盤設(shè)備外部二次使用視頻數(shù)據(jù)。在利用capture_enable_flag_PlayList,允許在盤設(shè)備外部二次使用視頻數(shù)據(jù)的情況中,該視頻數(shù)據(jù)被記錄到例如可裝載入盤設(shè)備中或可連接到盤設(shè)備的記錄介質(zhì)上、或被通過諸如因特網(wǎng)的網(wǎng)絡(luò)傳送(分發(fā))到另一設(shè)備中。在此情況下,可以把表示可將視頻數(shù)據(jù)記錄到記錄介質(zhì)上的次數(shù)或可傳送(分發(fā))視頻數(shù)據(jù)的次數(shù)的信息添加到該視頻數(shù)據(jù)中。
capture_enable_flag_PlayList之后依次是PlayList_name_length(8位)和PlayList_name_string(255字節(jié))。PlayList_name_length以字節(jié)表示PlayList_name_string的大小。PlayList_name_string表示PlayList()的名稱。
PlayList_name_string之后是number_of_PlayItems(16位)。number_of_PlayItems表示PlayItem()的數(shù)量。
number_of_PlayItems之后是由number_of_PlayItems表示的PlayItem()。
一個PlayList()可以描述以PlayItem()為單位的內(nèi)容的再現(xiàn)過程。
在PlayList()中唯一的標(biāo)識(ID)碼被添加到由number_of_PlayItems表示的PlayItem()。換句話說,PlayList()的第一PlayItem()是由數(shù)字0標(biāo)識的。其它PlayItem()由數(shù)字1、2、...等連續(xù)標(biāo)識。
由number_of_PlayItems表示的PlayItem()之后是一個PlayListMark()。PlayListMark()是一組Mark(),作為對應(yīng)于PlayList()的再現(xiàn)時(shí)間軸上的標(biāo)記。將在后面參照圖7詳細(xì)描述PlayListMark()。
圖6示出了圖5所示的PlayList()中包含的PlayItem()的內(nèi)部結(jié)構(gòu)。
PlayItem()以length(16位)開始。length表示PlayItem()的大小,包括length的大小。
length之后依次是Clip_Information_file_name_length(16位)和Clip_Information_file_name(可變長度)。Clip_Information_file_name_length以字節(jié)表示Clip_Information_file_name的大小。Clip_Information_file_name表示對應(yīng)于由PlayItem()再現(xiàn)的剪輯流文件(圖4示出具有擴(kuò)展名PS的文件)的剪輯信息文件(圖4中示出的具有擴(kuò)展名CLP的文件)的文件名。根據(jù)用于剪輯流文件和剪輯信息文件的上述命名規(guī)則,用Clip_Information_file_name來識別由PlayItem()再現(xiàn)的剪輯信息文件的文件名,并且可以識別剪輯流文件。
Clip_Information_file_name之后依次是IN_time(32位)和OUT_time(32位)。
IN_time和OUT_time是表示由Clip_Information_file_name標(biāo)識的剪輯流文件的再現(xiàn)開始位置和再現(xiàn)結(jié)束位置的時(shí)刻信息。
IN_time可指定剪輯流文件的中間位置(包括開頭)作為再現(xiàn)開始位置。OUT_time可指定剪輯流文件的中間位置(包括終點(diǎn))作為再現(xiàn)結(jié)束位置。
PlayItem()再現(xiàn)由Clip_Information_file_name標(biāo)識的剪輯流文件的從IN_time到OUT_time的內(nèi)容。由PlayItem()再現(xiàn)的內(nèi)容有時(shí)被稱為剪輯。
圖7示出了圖5所示的PlayList()中包含的PlayListMark()的內(nèi)部結(jié)構(gòu)。
如上所述,PlayListMark()是作為對應(yīng)于圖5中示出的PlayList()的再現(xiàn)的時(shí)間軸上的標(biāo)記的一組Mark()。Mark()的數(shù)量是0或更大。一個Mark()至少具有表示對應(yīng)于PlayList()而執(zhí)行的再現(xiàn)的時(shí)間軸上的一個時(shí)刻(位置)的時(shí)間信息,表示Mark()的類型的類型信息,以及當(dāng)類型信息表示發(fā)生的事件的類型時(shí)事件的自變量(argument)的自變量信息。
換句話說,PlayListMark()以length(32位)開始。length表示PlayListMark()的大小,包括length的大小。
length之后是number_of_PlayList_marks(16位)。number_of_PlayList_marks表示number_of_PlayList_marks之后的Mark()的數(shù)量。number_ofPlayList_marks之后是由number_of_PlayList_marks表示的Mark()。
Mark()以mark_type(8位)開始。mark_type是上述類型信息,并表示mark_type所屬的Mark()的類型。
根據(jù)本實(shí)施例,Mark()具有例如章、索引(index)和事件三種類型。
當(dāng)Mark()的類型是章(有時(shí)稱為章標(biāo)記)時(shí),它是章的開始位置的標(biāo)記,其中所述章是作為PlayList()的劃分的搜索單元。當(dāng)Mark()的類型是索引(有時(shí)稱為索引標(biāo)記)時(shí),它是索引的開始位置的標(biāo)記,其中所述索引是章的再分單元。當(dāng)Mark()的類型是事件(有時(shí)稱為事件標(biāo)記)時(shí),Mark()是在對應(yīng)于PlayList()而正在再現(xiàn)內(nèi)容時(shí)事件發(fā)生所在的位置的標(biāo)記。腳本控制模塊211被告知發(fā)生了對應(yīng)于事件標(biāo)記的事件。
圖8示出了mark_type的值和Mark()的類型之間的關(guān)系。在圖8中,章標(biāo)記的mark_type是1;索引標(biāo)記的mark_type是2;而事件標(biāo)記的mark_type是3。在圖8中,由mark_type的8位表示的其它值,即0和4到255被保留用于將來的擴(kuò)展。
在圖7中,mark_type之后是mark_name_length(8位)。Mark()以mark_name_string結(jié)束。使用mark_name_length和mark_name_string來描述Mark()的名稱。mark_name_length表示mark_name_string的有效大小。mark_name_string表示Mark()的名稱。因此,從mark_name_string的開頭起的mark_name_length的字節(jié)表示Mark()的有效名稱。
mark_name_length之后是4個元素ref_to_PlayItem_id(16位)、mark_time_stamp(32位)、entry_ES_stream_id(8位)和entry_ES_private_stream_id(8位),其將PlayList()中定義的Mark()與剪輯流文件相關(guān)聯(lián)。
ref_to_PlayItem_id描述作為分配給Mark()所屬的PlayItem()的連續(xù)數(shù)字的ID。ref_to_PlavItem_id標(biāo)識Mark()所屬的PlayItem()(圖6)。因而,如圖6中所描述的那樣,標(biāo)識剪輯信息文件和剪輯流文件。
mark_time_stamp表示在由ref_to_PlayItem_id標(biāo)記的剪輯流文件中Mark()所表示的位置(時(shí)刻)。
圖9示出了PlayList()、PlayItem()、剪輯和存儲在剪輯流文件中的程序流之間的關(guān)系。
在圖9中,PlayList()由被連續(xù)編號為ID#0、ID#1和ID#2的3個PlayItem()組成。在以下描述中,利用PlayItem#i來表示被編號為ID#i的PlayItem()。
在圖9中,分別利用剪輯A、剪輯B和剪輯C來表示作為由PlayItem#0、PlayItem#1和PlayItem#2再現(xiàn)的內(nèi)容的剪輯。
剪輯的實(shí)體是從存儲在由圖6中示出的PlayItem()的Clip_Information_file_name標(biāo)識(也由剪輯信息文件標(biāo)識)的剪輯流文件中的程序流的IN_time到OUT_time。在圖9中,作為剪輯A、剪輯B和剪輯C的實(shí)體的程序流分別被表示為程序流A、程序流B和程序流C。
在圖9中,在作為對應(yīng)于PlayList()的再現(xiàn)的時(shí)間軸上的位置(時(shí)刻)t0的標(biāo)記的mark()中,ref_to_PlayItem_id和mark_time_stamp如下所述。在圖9中,由于時(shí)刻t0是再現(xiàn)PlayItem#1的時(shí)刻,因此ref_to_PlayItem_id將1描述為PlayItem#1的ID。由于在時(shí)刻t0再現(xiàn)作為剪輯B的實(shí)體的程序流B,因此mark_time_stamp描述對應(yīng)于時(shí)刻t0而存儲程序流B的剪輯流文件的時(shí)刻。
在圖7中,當(dāng)mark()與特定基本流相關(guān)聯(lián)時(shí),使用entry_ES_stream_id和entry_ES_private_stream_id來標(biāo)識該基本流。換句話說,entry_ES_stream_id描述與mark()相關(guān)聯(lián)的基本流的stream_id(包含該基本流的PES_packet()、PES_packet()將在后面參照圖16A和圖16B至圖18A和圖18B進(jìn)行描述)。另一方面,entry_ES_private_id描述與Mark()相關(guān)聯(lián)的基本流的private_stream_id(包含該基本流的private_streaml_PES_payload()的private_header()、private_header()將在后面參照圖21進(jìn)行描述)。
當(dāng)再現(xiàn)其視頻流#1和視頻流#2已被多路復(fù)用的剪輯的視頻流#1時(shí),以及當(dāng)正在再現(xiàn)視頻流#2時(shí)需要改變章的時(shí)刻時(shí),在正在再現(xiàn)視頻流#2的同時(shí),在章標(biāo)記時(shí)刻處的Mark()的entry_ES_stream_id和entry_ES_private_stream_id中描述視頻流#1的stream_id和private_stream_id。
不與特定基本流相關(guān)聯(lián)的Mark()的entry_ES_stream_id和entry_ES_private_stream_id是例如0。
entry_ES_private_stream_id之后是mark_data(32位)。當(dāng)Mark()是事件標(biāo)記時(shí),mark_data是作為對于該事件標(biāo)記發(fā)生的事件的自變量的自變量信息。當(dāng)Mark()是章標(biāo)記或索引標(biāo)記時(shí),mark_data可以用作該章標(biāo)記或索引標(biāo)記所表示的章號或索引號。
接下來,將描述具有CLP的擴(kuò)展名并存儲在圖4中示出的“剪輯”目錄中的剪輯信息文件的內(nèi)部結(jié)構(gòu)。
在圖4中,在“剪輯”目錄下有3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。這些剪輯信息文件包含元數(shù)據(jù),該元數(shù)據(jù)表示存儲在“流”目錄中的剪輯流文件“00001.PS”、“00002.PS”和“00003.PS”的特性。
圖10示出了剪輯信息文件Clip()的內(nèi)部結(jié)構(gòu)。
剪輯信息文件Clip()以presentation_start_time和presentation_end_time(每個32位)開始。presentation_start_time和presentation_end_time表示對應(yīng)于剪輯信息文件Clip()的剪輯流文件(中存儲的程序流)的開始時(shí)刻和結(jié)束時(shí)刻。剪輯流文件的時(shí)刻被描述為用作MPEG2系統(tǒng)的時(shí)刻的90kHz的倍數(shù)。
presentation_end_time之后是reserved_for_word_alignment(7位)和capture_enable_flag_Clip(1位)。7位的reserved_for_word_alignment用于字對齊。capture_enable_flag_Clip是像圖5中示出的capture_enable_flag_PlayList那樣表示是否允許二次使用視頻數(shù)據(jù)的標(biāo)志。
然而,圖5中示出的capture_enable_flag_PlayList表示是否允許二次使用與對應(yīng)于PlayList()而再現(xiàn)的視頻流相對應(yīng)的視頻數(shù)據(jù)(其屬于PlayList())。相比之下,圖10中示出的capture_enable_flag_Clip表示是否允許二次使用對應(yīng)于視頻流(視頻數(shù)據(jù)的基本流)的視頻數(shù)據(jù),其中所述視頻流存儲在對應(yīng)于剪輯信息文件Clip()的剪輯流文件中。因此,圖5中示出的capture_enable_flag_PlayList和圖10中示出的capture_enable_flag_Clip的不同之處在于允許二次使用的視頻數(shù)據(jù)的單位(范圍)。
與在圖5中描述的capture_enable_flag_PlayList相似,圖10中示出的capture_enable_flag_Clip可以由多個位而不是1位組成。
capture_enable_flag_Clip之后是number_of_streams(8位)。number_of_streams描述StreamInfo()的數(shù)量。因而,number_of_streams之后是由number_of_streams表示的StreamInfo()。
StreamInfo()以length(16位)開始。length表示StreamInfo()的大小,包括length的大小。length之后是stream_id(8位)和private_stream_id(8位)。stream_id和private_stream_id標(biāo)識與StreamInfo()相關(guān)聯(lián)的基本流。
圖11示出了stream_id和private_stream_id和由其標(biāo)識的基本流的關(guān)系。
stream_id與MPEG2系統(tǒng)標(biāo)準(zhǔn)中定義的stream_id相同。MPEG2系統(tǒng)標(biāo)準(zhǔn)為基本流(數(shù)據(jù))的每個屬性(類型)定義stream_id的值。因而,可以僅用stream_id來標(biāo)識MPEG2系統(tǒng)標(biāo)準(zhǔn)中定義的基本流的屬性。
本實(shí)施例可以處理未在MPEG2系統(tǒng)標(biāo)準(zhǔn)中定義的基本流的屬性。private_stream_id是標(biāo)識未在MPEG2系統(tǒng)標(biāo)準(zhǔn)中定義的基本流的屬性的信息。
圖11示出了具有4種屬性的基本流的stream_id和private_stream_id的關(guān)系,這4種屬性是對應(yīng)于MPEG中定義的編碼(解碼)系統(tǒng)而編碼的視頻基本流、對應(yīng)于自適應(yīng)變換聲音編碼(ATARC)系統(tǒng)而編碼的音頻基本流(以下有時(shí)稱為ATRAC音頻流)、對應(yīng)于線性脈沖編碼調(diào)制(LPCM)系統(tǒng)而編碼的音頻基本流(以下有時(shí)稱為LPCM音頻流)以及字幕基本流(以下有時(shí)稱為字幕流)。
MPEG2系統(tǒng)標(biāo)準(zhǔn)定義利用從0xE0到0xEF(其中0x表示其后的字符串是用十六進(jìn)制表示的)范圍內(nèi)的值將對應(yīng)于MPEG中定義的編碼系統(tǒng)而編碼的視頻基本流多路復(fù)用。因而,可以將對應(yīng)于MPEG中定義的編碼系統(tǒng)而編碼并由從0xE0到0xEF范圍內(nèi)的stream_id來標(biāo)識的16個視頻基本流與程序流多路復(fù)用。
由于對應(yīng)于MPEG中定義的編碼系統(tǒng)而編碼的視頻基本流可以由從0xE0到0xEF范圍內(nèi)的stream_id來標(biāo)識,因此不需要(可以忽略)private_stream_id。
另一方面,在MPEG2系統(tǒng)中,并不為ATRAC音頻流、LPCM音頻流和字幕流定義stream_id。
因而,根據(jù)本實(shí)施例,對于沒有在MPEG2系統(tǒng)中定義其stream_id的基本流,使用作為表示MPEG2系統(tǒng)中的屬性private_stream_1的值的oxBD。此外,如圖11所示,這些基本流由private_stream_id來標(biāo)識。
換句話說,利用從0x00到0x0F范圍內(nèi)的private_stream_id來標(biāo)識ATRAC音頻流。因而,可以將16個ATRAC音頻流與程序流多路復(fù)用。利用從0x10到0x1F范圍內(nèi)的private_stream_id來標(biāo)識LPCM音頻流。因而,可以將16個LPCM音頻流與程序流多路復(fù)用。利用從0x80到0x9F范圍內(nèi)的private_stream_id來標(biāo)識字幕流。因而,可以將32個字幕流與程序流多路復(fù)用。
后面將詳細(xì)描述stream_id和private_stream_id。
在圖10中,private_stream_id之后依次是StaticInfo()和reserved_for_word_alignment(8位)。StaticInfo()描述當(dāng)正在再現(xiàn)由(在包括StaticInfo()的StreamInfo()中描述的)stream_id和private_stream_id標(biāo)識的基本流時(shí)確實(shí)發(fā)生變化的信息。后面將參照圖12描述StaticInfo()。
reserved_for_word_alignment用于字對齊。
reserved_for_word_alignment之后是number_of_DynamicInfo(8位)。number_of_DynamicInfo表示在number_of_DynamicInfo之后的pts_change_point(每個32位)和DynamicInfo()的組的數(shù)量。
因而,number_of_DynamicInfo之后是由number_of_DynamicInfo表示的pts_change_point和DynamicInfo()的組。
pts_change_point表示與pts_change_point配對的DynamicInfo()的信息變?yōu)橛行У臅r(shí)刻。表示基本流的開始時(shí)刻的pts_change_point與在對應(yīng)于存儲該基本流的剪輯流文件的剪輯信息文件Clip()的開頭處描述的presentation_start_time相等。
DynamicInfo()描述當(dāng)正在再現(xiàn)由stream_id和private_stream_id標(biāo)識的基本流時(shí)發(fā)生改變的所謂的動態(tài)信息。在DynamicInfo()中描述的信息在由與DynamicInfo()配對的pts_change_point表示的再現(xiàn)時(shí)刻處變?yōu)橛行?。后面將參照圖13描述DynamicInfo()。
由number_oF_DynamicInfo表示的pts_change_point和DynamicInfo()的組之后是EP_map()。后面將參照圖14描述EP_map()。
接下來,將參照圖12詳細(xì)描述圖10中示出的StaticInfo()。
圖12示出了StaticInfo()的語法。
StaticInfo()的內(nèi)容根據(jù)對應(yīng)的基本流的屬性(類型)而改變。對應(yīng)于StaticIno()的基本流的屬性是由圖10示出的、包括StaticInfo()的StreamInfo()中包含的stream_id和private_stream_id確定的。
當(dāng)對應(yīng)于StaticInfo()的基本流是視頻流(stream==VIDEO)時(shí),StaticInfo()由picture_size(4位)、frame_rate(4位)、cc_flag(1位)和用于字對齊的reserved_for_word_alignment組成。
picture_size表示對應(yīng)于視頻流的視頻數(shù)據(jù)(利用該視頻數(shù)據(jù)顯示的圖像)的大小。frame_rate表示對應(yīng)于視頻流的視頻數(shù)據(jù)的幀頻率。cc_flag表示視頻流是否包含隱藏字幕(closed caption)數(shù)據(jù)。當(dāng)視頻流包含隱藏字幕數(shù)據(jù)時(shí),cc_flag是1,當(dāng)視頻流不包含隱藏字幕數(shù)據(jù)時(shí),cc_flag是0。
當(dāng)對應(yīng)于StaticInfo()的基本流是音頻流(stream==AUDIO)時(shí),StaticInfo()由audio_language_code(16位)、channel_configuration(8位)、lfe_existence(1位)、sampling_frequency(4位)和用于字對齊的reserved_for_word_alignment組成。
audio_language_code描述表示音頻流中包含的音頻數(shù)據(jù)的語言的代碼。channel_configuration表示音頻流中包含的音頻數(shù)據(jù)的屬性,例如非立體聲(單聲道)、立體聲、多聲道等。lfe_existence表示音頻流是否包含低頻效果聲道。當(dāng)音頻流包含低頻效果聲道時(shí),lfe_existence是1。當(dāng)音頻流不包含低頻效果聲道時(shí),lfe_existence是0。sampling_frequency是表示音頻流中包含的音頻數(shù)據(jù)的采樣頻率。
當(dāng)對應(yīng)于StaticInfo()的基本流是字幕流(stream==SUBTITLE)時(shí),StaticInfo()由subtitle_language_code(16位)、configurable_flag(1位)和用于字對齊的reserved_for_word_alignment組成。
subtitle_language_code描述表示字幕流中包含的字幕數(shù)據(jù)的語言的代碼。configurable_flag是表示是否允許從默認(rèn)顯示模式改變字幕數(shù)據(jù)顯示模式的信息。當(dāng)允許改變顯示模式時(shí),configurable_flag是1。當(dāng)不允許改變顯示模式時(shí),configurable_fiag是0。字幕數(shù)據(jù)的顯示模式包括字幕數(shù)據(jù)的顯示大小、顯示位置、顯示顏色、顯示樣式(pattern)(例如,閃爍)、顯示方向(垂直或水平)等。
接下來,將參照圖13詳細(xì)描述DynamicInfo()。
圖13示出了DynamicInfo()的語法。
DynamicInfo()以用于字對齊的reserved_for_word_alignment(8位)開始。在reserved_for_word_alignment之后的元素取決于對應(yīng)于DynamicInfo()的基本流的屬性。對應(yīng)于DynamicInfo()的基本流的屬性由圖12示出的包括DynamicInfo()的StreamInfo()中包含的stream_ID和private_stream_id確定。
如圖10所示,DynamicInfo()描述當(dāng)正在再現(xiàn)基本流時(shí)發(fā)生改變的動態(tài)信息。該動態(tài)信息不是特定的。然而,在圖13示出的實(shí)施例中,在DynamicInfo()中描述對應(yīng)于DynamicInfo()的基本流的數(shù)據(jù),即作為對基本流的處理的輸出的數(shù)據(jù)的輸出屬性(從基本流獲得的數(shù)據(jù)的輸出屬性)。
具體地說,當(dāng)對應(yīng)于DynamicInfo()的基本流是視頻流(stream==VIDEO)時(shí),DynamicInfo()由display_aspect_ratio(4位)和用于字對齊的reserved_for_Word_alignment組成。display_aspec_atio描述視頻流的視頻數(shù)據(jù)的輸出屬性(顯示模式),例如視頻數(shù)據(jù)的高寬比。換句話說,display_aspect_ratio描述表示作為高寬比的16∶9或4∶3的信息。視頻流的DynamicInfo()可以描述例如視頻數(shù)據(jù)的圖像大小(X像素×Y像素)以及高寬比。
當(dāng)對應(yīng)于DynamicInfo()的基本流是音頻流(stream==AUDIO)時(shí),DynamicInfo()由channel_assignment(4位)和用于字對齊的reserved_for_word_alignment組成。當(dāng)音頻流包含音頻數(shù)據(jù)的兩個聲道時(shí),channel_assignment描述兩個聲道的輸出屬性(輸出模式)。換句話說,channel_assignment描述表示立體聲或雙聲道(雙語)的聲道分配的信息。
當(dāng)對應(yīng)于Dynamiclnfo()的基本流是字幕流(stream==SUBTITLE)時(shí),DynamicInfo()由用于字對齊的reserved_for_word_alignment組成。換句話說,根據(jù)圖13中示出的實(shí)施例,不為字幕流定義作為動態(tài)信息的輸出屬性。
接下來,將參照圖14詳細(xì)描述圖10中示出的EP_map()。
圖14示出了EP_map()的語法。
EP_map()描述可解碼起點(diǎn)(進(jìn)入點(diǎn))的信息,其中,可以從所述可解碼起點(diǎn)開始對與存儲在對應(yīng)于剪輯信息文件Clip()的剪輯流文件中的程序流多路復(fù)用的每個基本流進(jìn)行解碼,所述剪輯信息文件Clip()包括EP_map()。
可以通過計(jì)算獲得具有固定速率的流的可解碼起點(diǎn)。然而,對于大小在每個視頻存取單元中變化的流,例如對應(yīng)于MPEG標(biāo)準(zhǔn)而編碼的視頻流,不能通過計(jì)算獲得可解碼起點(diǎn)。除非分析這個流,否則不能獲得可解碼起點(diǎn)。對于隨機(jī)存取數(shù)據(jù),有必要快速識別可解碼起點(diǎn)。有了EP_map(),就可以快速識別可解碼起點(diǎn)。
在MPEG2視頻中,包括sequence_header()等的內(nèi)畫面(intra picture)是可解碼起點(diǎn)。
EP_map()以用于字對齊的reserved_for_word_alignment(8位)開始。reserved_for_word_alignment之后是number_of_stream_id_entries(8位)。number_of_stream_id_entries表示描述EP_map()中的可解碼起點(diǎn)的信息的基本流的數(shù)量。
number_of_stream_id_entries之后是標(biāo)識基本流的信息和由number_of_stream_id_entries表示的基本流的可解碼起點(diǎn)的信息的組。
換句話說,number_of_stream_id_entries之后是作為標(biāo)識基本流的信息的stream_id(8位)和private_stream_id(8位)。private_stream_id之后是number_of_EP_entries(32位)。number_of_EP_entries表示由number_of_EP_entries之前的stream_id和private_stream_id標(biāo)識的可解碼起點(diǎn)的數(shù)量。
number_of_EP_entries之后是由number_of_EP_entries表示的PTS_EP_start(每個32位)和RPN_EP_start(每個32位),作為由stream_id和private_stream_id標(biāo)識的基本流的可解碼起點(diǎn)的信息。
作為可解碼起點(diǎn)的信息的一個元素的PTS_EP_start表示剪輯流文件中的可解碼起點(diǎn)的時(shí)刻(再現(xiàn)時(shí)刻),其中所述剪輯流文件存儲了與由stream_id和private_stream_id標(biāo)識的基本流多路復(fù)用的程序流。
作為可解碼起點(diǎn)的信息的另一元素的RPN_EP_start描述剪輯流文件中的可解碼起點(diǎn)的位置,作為程序流的pack()的數(shù)量的值,其中所述剪輯流文件存儲了與由stream_id和private_stream_id標(biāo)識的基本流多路復(fù)用的程序流。根據(jù)本實(shí)施例,pack()的大小是2048字節(jié),是固定的。此外,根據(jù)本實(shí)施例,盤101(圖1)的一個扇區(qū)是2048字節(jié)。
private_stream_2分組(作為private_stream_2的屬性的PES_packet())緊接在視頻流的可解碼起點(diǎn)(進(jìn)入點(diǎn))之前。private_stream_2分組存儲用來對存儲在兩個相鄰的private_stream_2分組之間的視頻流進(jìn)行解碼的信息。因而,對于視頻流,作為可解碼起點(diǎn)的信息的RPN_EP_start描述真實(shí)的可解碼起點(diǎn)緊前面的private_stream_2分組的開始位置。
對于EP_map()中的stream_id和private_stream_id標(biāo)識的每個基本流,按照升序?qū)⒆鳛榭山獯a起點(diǎn)的信息的PTS_EP_start和RPN_EP_start的組預(yù)先排序。因而,可以對分搜索作為可解碼起點(diǎn)的信息的PTS_EP_start和RPN_EP_start的組。
在例如日本專利公開公告第2000-341640號(日本專利申請第HEI11-317738)中描述了用于可變速率流和視頻存取單元大小不同的流的隨機(jī)存取方法。
接下來,將描述具有PS的擴(kuò)展名并被存儲在圖4示出的“流”目錄中的剪輯流文件(圖4中的“00001.CLP”、“00002.PS”和“00003.PS”)的內(nèi)部結(jié)構(gòu)。
在MPEG-2系統(tǒng)(ISO/IEC 13818-1)中定義的MPEG2_Program_Stream()的基礎(chǔ)上組成了剪輯流文件。
圖15A和圖15B示出了MPEG-2系統(tǒng)(ISO/IEC 13818-120000)標(biāo)準(zhǔn)中描述的表2-31、表2-32和表2-33。
存儲在剪輯流文件中的程序流是MPEG-2系統(tǒng)標(biāo)準(zhǔn)的表2-31中定義的MPEG2_Program_Stream()。該程序流由至少一個pack()和一個MPEG_program_end_code組成。日本專利第2785220號中描述了MPEG2_Program_Stream()。
一個pack()由一個Pack_header()和任意數(shù)量的MPEG2系統(tǒng)標(biāo)準(zhǔn)的表2-32中定義的PES_packet()組成。在MPEG2系統(tǒng)標(biāo)準(zhǔn)的表2-33中詳細(xì)描述了Pack_header()。
在MPEG2系統(tǒng)標(biāo)準(zhǔn)中,pack()具有可變長度的大小。然而,如圖14所述,假設(shè)pack()的大小是2048字節(jié),是固定的。在該示例中,一個pack()的PES_packet()的數(shù)量是1、2或3。當(dāng)Pack()以private_stream_2分組開始時(shí),其后總是跟隨著對應(yīng)視頻流(在相同的Pack()中)的PES_packet()。此外,可以存在padding_packet,作為第三PES_packet()。private_stream_2分組總是出現(xiàn)在Pack()的開頭。
當(dāng)Packet()不是以private_stream_2分組開始時(shí),Pack()以包含視頻數(shù)據(jù)、音頻數(shù)據(jù)、字幕數(shù)據(jù)等的內(nèi)容數(shù)據(jù)的PES_packet()開始。第二PES_packet()可以是padding_packet。
圖16A和圖16B到圖18A到圖18B示出了在MPEG2系統(tǒng)標(biāo)準(zhǔn)的表2-17中定義的PES_packet()。
PES_packet()主要由packet_start_code_prefix、stream_id、PES_packet_Length(在圖16A和圖16B中將其示出),對應(yīng)于stream_id等而變化的報(bào)頭部分(包括stuffing_byte)(這些部分在圖16A和圖16B到圖18A和圖18B中示出)和PES_packet_data_byte(在圖18A和圖18B中示出)組成。當(dāng)PES_packet()是padding_packet(stream_id==padding_stream)時(shí),重復(fù)所需數(shù)量的padding_byte(0xFF)(圖18A和圖18B),而不是PES_packet_data_byte。
如圖16A、圖16B、圖17A、圖17B和圖17C所示,PES_packet()的報(bào)頭部分可以描述表示被稱為表示時(shí)間戳(presentation time stamp)(PTS)的顯示定時(shí)的信息、以及表示被稱為解碼時(shí)間戳的解碼定時(shí)的信息。根據(jù)本實(shí)施例,將PTS加到所有存取單元(組成在MPEG2系統(tǒng)中定義的基本流的解碼單元)的每一個上。當(dāng)在MPEG2系統(tǒng)中指定時(shí),添加DTS。
將與程序流多路復(fù)用的基本流存儲在PES_packet()的PES_packet_data_byte(圖18A和圖18B)中。PES_packet()的stream_id描述對應(yīng)于基本流的屬性的值,以標(biāo)識存儲在PES_packet_data_byte中的基本流。
在MPEG2系統(tǒng)標(biāo)準(zhǔn)的表2-18中定義了PES_packet()的stream_id中描述的值和基本流的屬性(類型)之間的關(guān)系。圖19A和圖19B示出了MPEG2系統(tǒng)標(biāo)準(zhǔn)的表2-18。
根據(jù)本發(fā)明的該實(shí)施例,將圖20中示出的值用作MPEG2系統(tǒng)標(biāo)準(zhǔn)中定義的stream_id。
換句話說,根據(jù)本實(shí)施例,將五種模式10111101B、10111110B、10111111B、110xxxxxB和1110xxxxB用作stream_id的值,其中,“x”表示0和1的任意一個。
對應(yīng)于圖20中示出的表,具有private_stream_1的屬性的基本流的PES_packet()的stream_id是10111101B。對應(yīng)于圖20中示出的表,padding_Packet的PES_packet()的stream_id是10111110B。根據(jù)圖20中示出的表,具有private_stream_2屬性的基本流的PES_packet()的stream_id是10111111B。
在MPEG中定義的音頻流(音頻基本流)的PES_packet()的stream_id是110xxxxxB。110xxxxxB的5個低階位xxxxx是標(biāo)識音頻流的音頻流字節(jié)??梢詫⒖衫靡纛l流編號標(biāo)識的32(=25)個音頻流(MPEG中定義的音頻流)與程序流多路復(fù)用。
在MPEG中定義的視頻流(視頻基本流)的PES_packet()的stream_id是1110xxxxB。1110xxxxB的4個低階位xxxx是標(biāo)識視頻流的視頻流編號??梢詫?6(=24)個視頻流(MPEG中定義的視頻流)與程序流多路復(fù)用。
stream_id為110xxxxB的PES_packet()用于存儲在MPEG中定義的視頻流。stream_id為110xxxxxB的PES_packet()用于存儲在MPEG中定義的音頻流。另一方面,在MPEG中沒有定義對應(yīng)于編碼系統(tǒng)(例如,ATRAC系統(tǒng))的基本流的PES_packet()的stream_id。因此,像在MPEG中定義的視頻流和音頻流那樣,不能利用stream_id將對應(yīng)于未在MPEG中定義的編碼系統(tǒng)的基本流存儲在PES_packet()中。
因此,根據(jù)本實(shí)施例,將private_stream_1的PES_packet()的PES_packet_data_byte進(jìn)行擴(kuò)展,以存儲對應(yīng)于未在MPEG中定義的編碼系統(tǒng)的基本流。
擴(kuò)展后的private_stream_l的PES_packet()的PES_packet_data_byte被描述為private_streaml_PES_payload()。
圖21示出了private_streaml_PES_payload()的語法。
private_streaml_PES_payload()由private_header()和private_payload()組成。private_payload()存儲對應(yīng)于未在MPEG系統(tǒng)中定義的編碼系統(tǒng)而編碼的基本流,例如ATRAC音頻流、LPCM音頻流、字幕流等。
private_header()以private_stream_id(8位)開始。private_stream_id是標(biāo)識存儲在private_payload()中的基本流的標(biāo)識信息。private_stream_id具有以下對應(yīng)于基本流的屬性(類型)的值。
圖22示出了private_stream_id的值和存儲在private_payload()中的基本流的屬性的關(guān)系。
圖22示出了三種模式0000xxxxB、0001xxxxB和100xxxxxB,作為private_stream_id的值,其中,與圖20示出的情況相同,“x”是0和1中的任意一個值。
根據(jù)圖22中示出的表,ATRAC流的private_payload()的private_stream1_PES_payload()的private_stream_id為0000xxxxB。0000xxxxB的4個低階位xxxx是標(biāo)識ATRAC音頻流的音頻流編號。可以將可利用音頻流編號標(biāo)識的16(=24)個ATRAC音頻流與程序流(MPEG2_Program_Stream)多路復(fù)用。
根據(jù)圖22中示出的表,LPCM音頻流的private_payload()的private_stream1_PES_payload()的private_stream_id為0001xxxxB。0001xxxxB的4個低階位xxxx是標(biāo)識LPCM音頻流的音頻流編號??梢詫⒖衫靡纛l流編號標(biāo)識的16(=24)與程序流多路復(fù)用。
根據(jù)圖22中示出的表,字幕流的private_payload()的private_stream1_PES_payload()的private_stream_id為100xxxxxB。100xxxxxB的5個低階位xxxxx是標(biāo)識字幕流的字幕流編號。可以將32(=25)個字幕流與程序流多路復(fù)用。
圖11示出了圖20和圖22的關(guān)系。
在圖21中,在private_stream1_PES_payload()的private_stream_id之后的元素根據(jù)存儲在private_payload()中的基本流的屬性而變化。存儲在private_payload()中的基本流的屬性由private_header()的開頭的private_stream_id確定。
當(dāng)存儲在private_payload()中的基本流是ATRAC音頻流(private_stream_id==ATRAC)時(shí),描述reserved_for_future_use(8位),用于將來的擴(kuò)展。reserved_for_future_use之后是AU_locator(16位)。AU_locator在緊接AU_locator之后的位置的基礎(chǔ)上表示存儲在private_payload()中的ATRAC音頻流的音頻存取單元(ATRAC音頻存取單元)(音頻幀)的開始位置。當(dāng)private_payload()沒有存儲音頻存取單元時(shí),在AU_locator中描述例如0xFFFF。
當(dāng)存儲在private_payload()中的基本流是LPCM音頻流(private_stream_id==LPCM)時(shí),接連描述fs_flag(1位)、reserved_for_future_use(3位)、ch_flag(4位)和AU_locator(16位)。
fs_fiag表示存儲在private_payload()中的LPCM音頻流的采樣頻率。當(dāng)LPCM音頻流的采樣頻率為48KHz時(shí),fs_flag為0。當(dāng)LPCM音頻流的采樣頻率為44.1KHz時(shí),fs_flag為1。
ch_flag表示存儲在private_payload()中的LPCM音頻流的聲道數(shù)。當(dāng)LPCM音頻流為單聲道時(shí),ch_flag為1。當(dāng)LPCM音頻流為立體聲時(shí),ch_flag為2。
AU_locator在緊接AU_locator之后的位置的基礎(chǔ)上表示存儲在private_payload()中的LPCM音頻流的音頻存取單元(LPCM音頻存取單元)(音頻幀)的開始位置。當(dāng)private_payload()沒有存儲音頻存取單元時(shí),在AU_locator中描述例如0xFFFF。
當(dāng)存儲在private_payload()中的基本流是字幕流(private_stream_id==SUBTITLE)時(shí),描述reserved_for_future_use(8位),用于將來的擴(kuò)展。緊接在reserved_for_future_use之后的是AU_locator(16位)。AU_locator在緊接在AU_locator之后的位置的基礎(chǔ)上表示存儲在private_payload()中的字幕流的字幕存取單元的開始位置。當(dāng)private_payload()沒有存儲字幕存取單元時(shí),在AU_locator中描述例如0xFFFF。
圖23示出了private_stream2_PES_payload()的語法。
private_stream2_PES_payload()是private_stream_2的private_payload()的PES_packet_data_byte(圖18A和18B)的擴(kuò)展,即private_stream_2的PES_packet()的PES_packet_data_byte的擴(kuò)展。private_stream2_PES_payload()描述用來對視頻流進(jìn)行解碼的信息。
根據(jù)本實(shí)施例,緊挨著private_stream_2的PES_packet()之前的是視頻流的可解碼起點(diǎn)。因此,根據(jù)本實(shí)施例,當(dāng)從程序流中檢測到private_stream_2的PES_packet()時(shí),可以將緊跟在PES_packet()之后的視頻流解碼。
圖14中示出的EP_map()的RPN_EP_start表示視頻流的private_stream_2的PES_packet()的開始位置。
private_stream2_PES_payload()以用于將來擴(kuò)展的reserved_for_future_use(8位)開始。video_stream_id(8位)、1stRef_picture(16位)、2ndRef_picture(16位)、3rdRef_picture(16位)、4thRef_picture(16位)、au_information()和VBI()接連跟隨在reserved_for_future_use之后。
video_stream_id描述緊接在private_stream_2的PES_packet()之后的視頻流的PES_packet()的stream_id(與stream-id相同的值)。video_stream_id標(biāo)識利用存儲在private_stream_2的PES_packet()(PES_packet()的private_stream2_PES_payload())中的信息解碼的視頻流(存儲視頻流的PES_packet())。
1stRef_picture、2ndRef_picture、3rdRef_picture和4thRef_picture分別表示最后的pack()的位置的相對值,其中所述pack()包括由video_stream_id標(biāo)識的視頻流的從private_stream_2的PES_packet()到下一個private_stream_2的PES_packet()的第一、第二、第三、第四參考圖像。在日本專利公開公告第HEI 09-46712號(日本專利申請第HEI 07-211420號)中作為bytes_to_first_P_pic和bytes_to_second_P_pic公開了1stRef_picture、2ndRef_picture、3rdRef_picture、4thRef_picture的細(xì)節(jié)。
au_information()描述關(guān)于從private_stream_2的PES_packet()到private_stream_2的PES_packet()的視頻流的視頻存取單元的信息。將參考圖24詳細(xì)描述au_information()。
使用VBI()來描述關(guān)于隱藏字幕的信息。
為每個視頻流的可解碼起點(diǎn)描述具有private_stream2_PES_payload()的private_stream_2的PES_packet()。
圖24示出了圖23所示的au_information()的語法。
au_information()以length(16位)開始。length表示au_information()的大小,包括length的大小。reserved_for_word_alignment(8位)、number_of_access_unit(8位)接連跟隨在length之后。reserved_for_word_alignment用于字對齊。
number_of_access_unit表示從private_stream2的PES_packet()到下一個private_stream2的PES_packet()存儲的存取單元(畫面)的數(shù)量。
換句話說,number_of_access_unit表示在視頻流中包含的存取單元(畫面)的數(shù)量,其中所述視頻流由在private_stream2_PES_payload()中的video_stream_id相同的private_stream_2的PES_packet()中、從au_information()到下一個au_information()(或者在au_information()是其最后的au_information()時(shí)的剪輯流文件的終點(diǎn))的video_stream_id來表示。
跟隨著number_of_access_unit的是對應(yīng)于number_of_access_unit的for循環(huán)的內(nèi)容。換句話說,描述了關(guān)于從包括number_of_access_unit的private_stream_2的PES_packet()到下一個private_stream_2的PES_packet()的至少一個視頻存取單元的信息。
在for循環(huán)中描述的信息(關(guān)于視頻存取單元的信息)如下。
for循環(huán)包含pic_struct_copy(4位)、au_ref_flag(1位)、AU_length()(21位)和reserved。
pic_struct_copy描述在對應(yīng)于MPEG4-AVC(ISO/IEC 14496-10)的用于視頻存取單元的ISO/IEC 14496-10,D.2.2.中定義的pic_struct()的副本。pic_struct()是表示例如顯示畫面幀、或者在顯示畫面的頂部場之后顯示底部場的信息。
au_ref_flag表示對應(yīng)的存取單元是否是在對另一存取單元(的畫面)進(jìn)行解碼時(shí)參考的參考(reference)畫面。當(dāng)對應(yīng)的存取單元是參考畫面時(shí),au_ref_flag為1。當(dāng)對應(yīng)的存取單元不是參考畫面時(shí),au_ref_flag為0。
AU_length以字節(jié)表示對應(yīng)的存取單元的大小。
圖25到圖28示出了具有上述格式并已經(jīng)被記錄在圖1中示出的盤101上的數(shù)據(jù)的特定示例。
在圖25到圖28中,使用了對應(yīng)于MPEG2視頻的視頻流和對應(yīng)于ATRAC的音頻流。然而,在本發(fā)明使用的視頻流和音頻流不限于這些流。換句話說,可以使用對應(yīng)于MPEG4-Visual的視頻流、對應(yīng)于MPEG4-AVC的視頻流等。另一方面,可以使用對應(yīng)于MPEG1/2/4音頻的音頻流、對應(yīng)于LPCM音頻的音頻流等。
與視頻流和音頻流不同,字幕流不能被連續(xù)解碼并以相同間隔顯示(輸出)。換句話說,有時(shí)候?qū)⒆帜涣鲝膱D2A和圖2B中示出的緩沖控制模塊215提供給字幕解碼器控制模塊218。字幕解碼器控制模塊218將字幕流解碼。
圖25到圖28示出了在將3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”存儲在“剪輯”目錄中并將對應(yīng)于這3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”的3個剪輯流文件“00001.PS”、“00002.PS”和“00003.PS”存儲在“流”目錄的情況中,“PLAYLIST.DAT”、3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”等的特定示例。然而,在圖25到圖28中,省略了部分?jǐn)?shù)據(jù),例如“PLAYLIST.DAT”文件等。
圖25示出了圖5所示的“PLAYLIST.DAT”文件的特定示例。
在圖25中,number_of_PlayLists為2。因此,存儲在“PLAYLIST.DAT”文件中的PlayList()的數(shù)量為2。在圖25中,這兩個PlayList()為PlayList#0和PlayList#1。
第一PlayList()即PlayList#0的capture_enable_flag_PlayList為1。因此,允許二次使用對應(yīng)于PlayList#0而再現(xiàn)的視頻數(shù)據(jù)。另一方面,PlayList#0的number_of_PlayItems為2。因此,在PlayList#0中包含的PlayItem()的數(shù)量為2。在圖2A和圖2B中示出的“PlayList#0”字段下面描述作為兩個PlayItem()的PlayItem#0和PlayItem#1的特定示例。
在作為PlayList#0中包含的第一PlayItem()的PlayItem#0中,在圖6中描述的Clip_Information_file_name為“00001.CLP”,IN_time為180090,OUT_time為27180090。因此,由PlayList#0的PlayItem#0再現(xiàn)的剪輯是對應(yīng)于剪輯信息文件“00001.CLP”的剪輯流文件“00001.CLP”中從時(shí)刻180090到時(shí)刻27180090。
在作為PlayList#0中包含的第二PlayItem()的PlayItem#1中,在圖6中描述的Clip_Information_file_name為“00002.CLP”,IN_time為90000,OUT_time為27090000。因此,由PlayList#0的PlayItem#1再現(xiàn)的剪輯是對應(yīng)于剪輯信息文件“00002.CLP”的剪輯流文件“00002.PS”中從時(shí)刻90000到時(shí)刻27090000。
在圖25中,在作為第二PlayList()的PlayList#1中,capture_enable_flag_PlayList為0。因此,不允許二次使用(禁止二次使用)對應(yīng)于PlayItem#1而再現(xiàn)的視頻數(shù)據(jù)。在PlayList#1中,number_of_PlayItems為1。因此,在PlayList#1中包含的PlayItem()的數(shù)量為1。在圖25中,在“PlayList#1”字段下面描述作為一個PlayItem()的PlayItem#0的特定示例。
在作為PlayList#1中包含的一個PlayItem()的PlayItem#0中,在圖6中描述的Clip_Information_file_name為“00003.CLP”,IN_time為90000,OUT_time為81090000。因此,由PlayList#1的PlayItem#0再現(xiàn)的剪輯是對應(yīng)于剪輯信息文件“00003.CLP”的剪輯流文件“00003.PS”中從時(shí)刻90000到時(shí)刻81090000。
圖26A和26B示出了在圖10中描述的剪輯信息文件Clip()的特定示例。因此,圖26A和圖26B示出了剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”的特定示例。
在剪輯信息文件“0000l.CLP”中,presentation_start_time為90000,presentation_end_time為27990000。因此,存儲在對應(yīng)于剪輯信息文件“00001.CLP”的剪輯流文件“00001.CLP”中的程序流可使用310秒(27990000-90000/90kHz)的內(nèi)容。
在剪輯信息文件“00001.CLP”中,capture_enable_flag_Clip為1。因此,允許二次使用與存儲在對應(yīng)于剪輯信息文件“00001.CLP”的剪輯流文件“00001.CLP”中的程序流多路復(fù)用的視頻流(與其相對應(yīng)的視頻數(shù)據(jù))。
在圖26A和圖26B中,在剪輯信息文件“00001.CLP”中,number_of_streams為4。因此,4個基本流被與存儲在剪輯流文件“00001.CLP”中的程序流多路復(fù)用。
假設(shè)將這4個基本流表示為stream#0、stream#1、stream#2和stream#3,在圖26A和圖26B中的“00001.CLP”字段下面描述這4個基本流即stream#0、stream#1、stream#2和stream#3的StreamInfo()(圖10)的特定示例。
在剪輯流文件“00001.CLP”的第一基本流stream#0中,stream_id為0xE0。因此,如圖20和圖22(或圖11)所述,基本流stream#0是視頻流。根據(jù)本實(shí)施例,private_stream_id不與視頻流相關(guān)聯(lián)。在圖26A和圖26B中,private_stream_id為0x00。
在作為剪輯流文件“00001.CLP”的第一基本流的視頻流stream#0中,在StreamInfo()中包含的StaticInfo()的picture_size(圖12)為“720×480”,frame_rate為“29.97Hz”,cc_flag為“Yes(是)”。因此,視頻流stream#0是具有720×480個像素以及29.97Hz的幀周期的視頻數(shù)據(jù)。此外,視頻流stream#0包含隱藏字幕數(shù)據(jù)。
在作為剪輯流文件“00001.CLP”的第一基本流的視頻流stream#0中,StreamInfo()的number_of_DynamicInfo(圖10)為0。不存在pts_change_point和DynamicInfo()的對。
在剪輯流文件“00001.CLP”的第二基本流stream#1中,stream_id為0xBD,private_stream_id為0x00。因此,如圖20和圖22所述,基本流stream#1是ATRAC音頻流。
在作為剪輯流文件“00001.CLP”的第二基本流的ATRAC音頻流stream#1中,在StreamInfo()中包含的StaticInfo()的audio_language_code(圖12)為“Japanese(日語)”,channel_configuration為“Stero(立體聲)”,lfe_existence為“NO(否)”,sampling_frequency為“48kHz”。因此,ATRAC音頻流stream#1為日語的并且為立體聲音頻數(shù)據(jù)。此外,ATRAC音頻流stream#1不包含低頻率效果聲道并且采樣頻率為48kHz。
此外,在作為剪輯流文件“00001.CLP”的第二基本流的ATRAC音頻流stream#1中,StreamInfo()的number_of_DynamicInfo(圖10)為0。不存在pts_change_point和DynamicInfo()的對。
在剪輯流文件“00001.CLP”的第三基本流stream#2中,stream_id為0xBD,private_stream_id為0x80。因此,如圖20和圖22所述,基本流stream#2為字幕流。
在作為剪輯流文件“00001.PS”的第三基本流的字幕流stream#2中,在StreamInfo()中包含的StaticInfo()的subtitle_language_code為“日語”,configurable_flag為0。因此,字幕流stream#2為日語字幕數(shù)據(jù)。此外,不允許改變(禁止改變)該顯示模式。
在作為剪輯流文件“00001.CLP”的第三基本流的字幕流stream#2中,StreamInfo()的number_of_DynamicInfo(圖10)為0。不存在pts_change_point和DynamicInfo()的對。
在剪輯流文件“00001.CLP”的第四基本流stream#3中,stream_id為0xBD,private_stream_id為0x81。因此,如圖20和圖22所述,基本流stream#3為字幕流。
為了將作為剪輯流文件“00001.CLP”的第三基本流的字幕流stream#2和作為第四個基本流的字幕流stream#3區(qū)分開,它們的private_stream_id分別為0x80和0x8l。
在作為剪輯流文件“00001.CLP”的第四基本流的字幕流stream#2中,在StreamInfo()中包含的StaticInfo()的subtitle_language_code(圖12)為“目語”,configurable_flag為1。因此,字幕流stream#3為日語字幕數(shù)據(jù)。允許改變字幕流stream#3的顯示模式。
在作為剪輯流文件“00001.PS”的第四基本流的字幕流stream#3中,StreamInfo()的number_of_DynamicInfo(圖10)為0。不存在pts_change_point和DynamicInfo()的對。
在圖26A和圖26B中,在剪輯信息文件“00002.CLP”中,presentation_start_time為90000,presentation_end_time為27090000。因此,存儲在對應(yīng)于剪輯信息文件“00002.CLP”的剪輯流文件“00002.PS”中的程序流可使用300秒(27090000-90000/90kHz)的內(nèi)容。
在剪輯信息文件“00002.CLP”中,capture_enable_flag_Clip為0。因此,不允許二次使用(禁止二次使用)與存儲在對應(yīng)于剪輯信息文件“00002.CLP”的剪輯流文件“00002.PS”中的程序流多路復(fù)用的視頻流(與其相對應(yīng)的視頻數(shù)據(jù))。
在圖26A和26B中,在剪輯信息文件“00002.CLP”中,number_of_streams為4。因此,與前述剪輯流文件“00001.CLP”相同,有4個基本流被與存儲在對應(yīng)的剪輯流文件“00002.PS”中的程序流多路復(fù)用。
假設(shè)將這4個基本流表示為stream#0、stream#1、stream#2和stream#3,在圖26A和圖26B中的“00002.CLP”字段下面描述這4個基本流即stream#0、stream#1、stream#2和stream#3的StreamInfo()(圖10)的特定示例。
在圖26A和26B中,剪輯流文件“00002.PS”的第一到第四基本流的StreamInfo()的內(nèi)容與剪輯流文件“00001.PS”的第一到第四基本流的StreamInfo()的內(nèi)容相同。因此,省略對它們的描述。
如上所述,剪輯流文件“00002.PS”的第一到第四基本流stream#0到stream#3的StreamInfo()的內(nèi)容與剪輯流文件“00001.CLP”的第一到第四基本流stream#0到stream#3的StreamInfo()的內(nèi)容相同。因此,剪輯流文件“00002.PS”的第一基本流stream#0是視頻流。第二個基本流stream#1是ATRAC音頻流。第三和第四基本流stream#2和stream#3是字幕流。
在圖26A和圖26B中,在剪輯信息文件“00003.CLP”中,presentation_start_time為90000,presentation_end_time為81090000。因此,存儲在對應(yīng)于剪輯信息文件“00003.CLP”的剪輯流文件“00003.PS”中的程序流可使用900秒(81090000-90000/90kHz)的內(nèi)容。
在剪輯信息文件“00003.CLP”中,capture_enable_flag_Clip為1。因此,允許二次使用與存儲在對應(yīng)于剪輯信息文件“00003.CLP”的剪輯流文件“00003.PS”中的程序流多路復(fù)用的視頻流。
在圖26A和26B,在剪輯信息文件“00003.CLP”中,number_of_streams為3。因此,有3個基本流被與存儲在剪輯流文件“00003.PS”中的程序流多路復(fù)用。
假設(shè)這3個基本流被表示為stream#0、stream#1和stream#2,在圖26A和圖26B中示出的“00003.CLP”字段下面描述這3個基本流即stream#0、stream#1和stream#2的StreamInfo()的特定示例。
在剪輯流文件“00003.PS”的第一基本流stream#0中,stream_id為0xE0。
因此,如圖20和圖22(或圖11)所述,基本流stream#0是視頻流。與剪輯流文件“00001.CLP”的第一基本流stream#0相同,private_stream_id為0x00。
在作為剪輯流文件“00003.PS”的第一基本流的視頻流stream#0中,在StreamInfo()中包含的StaticInfo()的picture_size(圖12)為“720×480”,frame_rate為“29.97Hz”,cc_flag為“No(否)”。因此,視頻流stream#0是具有720×480個像素以及29.97Hz的幀周期的視頻數(shù)據(jù)。視頻流stream#0不包含隱藏字幕數(shù)據(jù)。
在作為剪輯流文件“00003.PS”的第一基本流的視頻流stream#0中,StreamInfo()的number_of_DynamicInfo(圖10)為2。因此,在StreamInfo()中描述了兩組pts_change_point和DynamicInfo()。
在剪輯流文件“00003.PS”的第二基本流stream#1中,stream_id為0xE1。因此,如圖20和圖21(或圖11)所述,基本流stream#1為視頻流。為了將作為剪輯流文件“00003.PS”的第一基本流的視頻流stream#0與作為第二基本流的視頻流stream#1區(qū)分開,它們的stream_id分別為0xE0和0xE1。與剪輯流文件“00001.CLP”的第一基本流stream#0相同,private_stream_id為0x00。
在作為剪輯流文件“00003.PS”的第二基本流的視頻流stream#1中,在StreamInfo()中包含的StaticInfo()的picture_size、frame_rate和cc_flag(圖12)與作為第一基本流的視頻流stream#0中的那些相同。因此,作為剪輯流文件“00003.PS”的第二基本流的視頻流stream#1是具有720×480個像素以及29.97Hz的幀周期的視頻數(shù)據(jù)。視頻流stream#1不包含隱藏字幕數(shù)據(jù)。
在作為剪輯流文件“00003.PS”的第二基本流的視頻流stream#1中,StreamInfo()的number_of_DynamicInfo(圖10)為0。因此,不存在pts_change_point和DynamicInfo()的對。
在剪輯流文件“00003.PS”的第三基本流stream#2中,stream_id為0xBD,private_stream_id為0x00。因此,如圖20和圖22所述,基本流stream#2是ATRAC音頻流。
在作為剪輯流文件“00003.PS”的第三基本流的ATRAC音頻流stream#2中,在StreamInfo()中包含的StaticInfo()的audio_language_code、channel_configuraion、lfe_existence和sampling_frequency(圖12)與作為剪輯流文件“00001.CLP”的第二基本流的ATRAC音頻流stream#1的那些相同。因此,作為剪輯流文件“00003.PS”的第三基本流的ATRAC音頻流stream#2是日語的并且是立體聲音頻數(shù)據(jù)。此外,ATRAC音頻流stream#2不包含低頻效果聲道。ATRAC音頻流Stream#2具有48kHz的采樣頻率。
在作為剪輯流文件“00003.PS”的第三基本流的ATRAC音頻流stream#2中,StreamInfo()的number_of_DynamicInfo(圖10)為3。因此,StreamInfo()描述3組pts_change_point和DynamicInfo()。
圖27示出了圖10所述的剪輯信息文件Clip()的EP_map()的特定示例。圖27示出了圖4所示的剪輯信息文件“00001.CLP”的EP_map()的特定示例,其中EP_map()在圖14中示出。
在圖27中,在EP_map()中,number_of_stream_id_entries為1。因此,EP_map()描述一個基本流的可解碼起點(diǎn)的信息。
在圖27所示的EP_map()中,stream_id為0xE0。因此,如圖20和22所述,EP_map()描述由stream_id_0xE0標(biāo)識的視頻流的可解碼起點(diǎn)的信息(PTS_EP_start和RPN_EP_start(圖14))。在圖27中,EP_map()是剪輯信息文件“00001.CLP”。如圖26A和圖26B所述,在對應(yīng)于剪輯信息文件“00001.CLP”的剪輯流文件“00001.PS”中,stream_id為0xE0的基本流是剪輯流文件“00001.PS”的第一視頻流。因此,在圖27所示的EP_map()中描述的信息是視頻流stream#0的可解碼起點(diǎn)的PTS_EP_start和RPN_EP_start。
在圖27中,描述了剪輯流文件“00001.PS”的第一視頻流stream#0的可解碼起點(diǎn)的前5個PTS_EP_start和RPN_EP_start,但是省略了第六和后面的PTS_EP_start和RPN_EP_start。
在圖27所示的EP_map()中,private_stream_id為0x00。當(dāng)stream_id表示視頻流時(shí),忽略private_stream_id。
圖28示出了在圖25中描述的PlayList#0和PlayList#1的PlayListMark()的特定示例(PlayList()在圖5中示出)。
圖28中示出的上部的表表示PlayList#0的PlayListMark()(圖7)。
在圖28所示的上部的表中,PlayList#0的PlayListMark()的number_of_PlayList_marks為7。因此,在PlayList#0中包含的Mark()(其PlayListMark())數(shù)量為7。
在圖28所示的上部的表中,作為PlayList#0中包含的7個Mark()的第一Mark()的Mark#0的mark_type(圖7)為“章”。因此,Mark#0是章標(biāo)記。此外,由于ref_to_PlayItem_id(圖7)為0,因此Mark#0屬于圖25中示出的兩個PlayItem#0和#1中的PlayItem#0。此外,Mark#0的mark_time_stamp為180090。因此,Mark#0是由PlayList#0中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻(再現(xiàn)時(shí)刻)180090的標(biāo)記。Mark#0的entry_ES_stream_id和entry_ES_private_stream_id都為0。因此,Mark#0不與任何基本流相關(guān)聯(lián)。此外,Mark#0的mark_data為1。因此,Mark#0表示編號為1的章。
由PlayList#0中包含的PlayItem#0再現(xiàn)的剪輯流文件是由在PlayItem#0的Clip_Information_file_name(圖25)中描述的“00001.CLP”標(biāo)識的剪輯流文件“00001.PS”。因此,由Mark#0的mark_time_stamp表示的時(shí)刻180090是剪輯流文件“00001.PS”的時(shí)刻在圖28所示的上部的表中,作為PlayList#0中包含的7個Mark()的第五Mark()的Mark#4是與第一Mark#0相同的章標(biāo)記。
換句話說,作為第五Mark()的Mark#4的mark_type(圖7)為“章”。因此Mark#4是章標(biāo)記。此外,Mark#4的ref_to_PlayItem_id(圖7)為1。因此,Mark#4屬于包含在PlayList#0中的圖25所示的兩個PlayItem#0和#1中的PlayItem#1。Mark#4的mark_time_stamp為90000。因此,Mark#4是由PlayList#0中包含的PlayItem#1再現(xiàn)的剪輯流文件的時(shí)刻90000的標(biāo)記。此外,Mark#4的entry_ES_stream_id和entry_ES_private_stream_id都為0。因此,Mark#0不與任何基本流相關(guān)。此外,Mark#4的mark_data為2。因此,Mark#4表示編號為2的章。
在本示例中,由包含在PlayList#0中的PlayItem#1再現(xiàn)的剪輯流文件是由在PlayItem#1的Clip_Information_file_name(圖25)中描述的“00002.CLP”標(biāo)識的剪輯流文件“00002.PS”。因此,由Mark#4的mark_time_stamp表示的時(shí)刻90000是剪輯流文件“00002.PS”的時(shí)刻。
在圖28所示的上部的表中,作為PlayList#0中包含的7個Mark()中的第二Mark()的Mark#1的mark_type(圖7)為“索引”。因此,Mark#1是索引標(biāo)記。此外,Mark#1的ref_to_PlayItem_id(圖7)為0。因此,Mark#1屬于包含在PlayList#0中的圖25所示的兩個PlayItem#0和#1中的PlayItem#0。此外,Mark#1的mark_time_stamp為5580090。因此,Mark#1是由PlayList#0中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻5580090的標(biāo)記。此外,Mark#1的entry_ES_stream_id和entry_ES_private_stream_id都為0。因此,Mark#1不與任何基本流相關(guān)。此外,Mark#1的mark_data為1。因此,Mark#1表示編號為1的索引。
在此示例中,由PlayList#0中包含的PlayItem#0再現(xiàn)的腳本流文件為如上所述的剪輯流文件“00001.PS”。因此,由Mark#1的mark_time_stamp表示的時(shí)刻5580090是剪輯流文件“00001.PS”的時(shí)刻。
在圖28所示的上部的表中,作為PlayList#0中包含的7個Mark()中的第三、第六和第七M(jìn)ark()的Mark#2、Mark#5和Mark#6是與第二Mark#1相似的索引標(biāo)記。
在圖28所示的上部的表中,作為PlayList#0中包含的7個Mark()中的第四Mark()的Mark#3的mark_type(圖7)為“事件”。因此,Mark#3是事件標(biāo)記。此外,Mark#3的ref_to_PlayItem_id(圖7)為0。因此,Mark#3屬于包含在PlayList#0中的圖25所示的兩個PlayItem#0和#1中的PlayItem#0。此外,Mark#3的mark_time_stamp為16380090。因此,Mark#3是由PlayList#0中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻16380090的標(biāo)記。Mark#3的entry_ES_stream_id和entry_ES_private_stream_id都為0。因此,Mark#3不與任何基本流相關(guān)。此外,Mark#3的mark_data為0。因此,Mark#3使自變量為0的事件發(fā)生。
如上所述,由PlayList#0中包含的PlayItem#0再現(xiàn)的剪輯流文件是剪輯流文件“00001.PS”。因此,由Mark#3的mark_time_stamp表示的時(shí)刻16380090是剪輯流文件“00001.PS”的時(shí)刻。
在圖28所示的上部的表中,在PlayList#0的PlayListMark()表的右側(cè)的左邊字段(field)中描述了Mark()所屬的PlayItem()的累積時(shí)間。在該表右側(cè)的右邊字段中描述了PlayList#0的累積時(shí)間。
圖28中示出的下部的表表示PlayList#1的PlayListMark()(圖7)。
在圖28所示的下部的表中,PlayList#1的PlayListMark()的number_of_PlayList_marks為3。因此,在PlayList#1中包含的Mark()(其PlayListMark())的數(shù)量為3。
在圖28所示的下部的表中,作為在PlayList#1中包含的3個Mark()中的第一Mark()的Mark#0的mark_type(圖7)為“章”。因此,Mark#0是章標(biāo)記。此外,Mark#0的ref_to_PlayItem_id(圖7)為0。因此,Mark#0屬于包含在PlayList#1中的圖25所示的一個PlayItem#0。Mark#0的mark_time_stamp為90000。因此,Mark#0是由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻90000的標(biāo)記。Mark#0的entry_ES_stream_id和entry_ES_private_stream_id都為0。因此,Mark#0不與任何基本流相關(guān)。此外,Mark#0的mark_data為0。因此,Mark#0表示編號為0的章。
由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件是由在PlayItem#0的Clip_Information_file_name(圖25)描述的“00003.CLP”標(biāo)識的剪輯流文件“00003.PS”。因此,由Mark#0的mark_time_stamp表示的時(shí)刻90000是剪輯流文件“00003.PS”的時(shí)刻。
在圖28所示的下部的表中,作為PlayList#1中包含的3個Mark()中的第二Mark()的Mark#1的mark_type(圖7)為“事件”。因此,Mark#1是事件標(biāo)記。此外,Mark#1的ref_to_PlayItem_id(圖7)為0。因此,Mark#1屬于包含在PlayList#1中的圖25所示的PlayItem#0。此外,Mark#1的mark_time_stamp為27090000。因此,Mark#1是由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻27090000的標(biāo)記。此外,在Mark#1中,entry_ES_stream_id為0xE0,而entry_ES_private_stream_id為0。因此,Mark#1與stream_id為0xE0的基本流相關(guān),即,Mark#1與如圖20和圖22所述的視頻流相關(guān)。此外,Mark#1的mark_data為1。Mark#1使具有屬性1的事件發(fā)生。
如上所述,由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件是“00003.PS”。因此,由Mark#1的mark_time_stamp表示的時(shí)刻27090000是剪輯流文件“00003.PS”的時(shí)刻。
與Mark#1相關(guān)聯(lián)的、stream_id為0xE0的視頻流是與剪輯流文件“00003.PS”多路復(fù)用的3個基本流stream#0到#2中的第一基本流(視頻流)stream#0,其中所述剪輯流文件“00003.PS”是由圖26A和圖26B中示出的剪輯信息文件“00003.CLP”標(biāo)識的。
在圖28所示的下部的表中,作為在PlayList#1中包含的三個Mark()中的第三Mark()的Mark#2的mark_type為“事件”。因此,Mark#2是事件標(biāo)記。此外,Mark#2的ref_to_PlayItem_id(圖7)為0。因此,Mark#2屬于PlayList#1中包含的、圖25所示的、作為PlayItem之一的PlayItem#0。此外,Mark#2的mark_time_stamp為27540000。因此,Mark#1是由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件的時(shí)刻27540000的標(biāo)記。此外,在Mark#2中,entry_ES_stream_id為0xE1,而entry_ES_private_stream_id為0。因此,Mark#2是stream_id為0xE1的基本流,即與如圖20和圖22所述的視頻流相關(guān)。此外,Mark#2的mark_data為2。因此,Mark#2使具有自變量2的事件發(fā)生。
在該示例中,如上所述,由PlayList#1中包含的PlayItem#0再現(xiàn)的剪輯流文件是剪輯流文件“00003.PS”。因此,由Mark#2表示的時(shí)刻27540000是剪輯流文件“00003.PS”的時(shí)刻。
與Mark#2相關(guān)聯(lián)的、stream_id為0xE1的視頻流是在圖25所示的PlayList#1中包含的PlayItem#0的Clip_Information_file_name中描述的“00003.CLP”內(nèi)所述的視頻流,即,與根據(jù)圖26A和圖26B所示的剪輯信息“00003.CLP”識別的剪輯流文件“00003.PS”多路復(fù)用的三個基本流stream#0到#2中的第二基本流(視頻流)stream#1。
在圖28示出的下部的表中,在PlayList#1的PlayListMark()表的右側(cè)描述了Mark()所屬的PlayItem()的累積時(shí)間。
在圖28中,盡管mark_data描述了章和索引標(biāo)記表示的章和索引編號,但是可以不在mark_data中描述它們。取而代之的是,通過對PlayListMark()的章和索引標(biāo)記進(jìn)行計(jì)數(shù),可以識別章節(jié)和索引的編號。
接下來,將假設(shè)圖25到圖28中描述的數(shù)據(jù)(文件)已被記錄在圖1所示的盤101中,來描述圖1所示的盤設(shè)備的操作。
當(dāng)將盤101裝載到盤驅(qū)動器102中時(shí),對應(yīng)的消息通過圖2A和圖2B中示出的驅(qū)動器接口114和操作系統(tǒng)201而被發(fā)送給視頻內(nèi)容再現(xiàn)程序210。當(dāng)視頻內(nèi)容再現(xiàn)程序210從操作系統(tǒng)201接收到表示盤101已被裝載到盤驅(qū)動器102中的消息時(shí),視頻內(nèi)容再現(xiàn)程序210開始圖29中示出的預(yù)再現(xiàn)過程。
圖29是描述了視頻內(nèi)容再現(xiàn)程序210執(zhí)行的預(yù)再現(xiàn)過程的流程圖。
應(yīng)當(dāng)注意,盤設(shè)備不需要按照流程圖的時(shí)間順序來執(zhí)行操作或者處理??商鎿Q的是,盤設(shè)備可以并行或不連續(xù)地執(zhí)行操作或處理。然而,在本說明書中,為方便起見,將對應(yīng)于該流程圖來描述盤設(shè)備的操作或處理。
在預(yù)再現(xiàn)過程中,在步驟S101,視頻內(nèi)容再現(xiàn)程序210使用操作系統(tǒng)201的文件系統(tǒng)功能來檢查盤101,并確定盤101是否是用于視頻內(nèi)容再現(xiàn)程序210的普通盤。
如上所述,盡管使用操作系統(tǒng)201的文件系統(tǒng)功能來訪問盤101(從其中讀取文件),但是將省略對其的描述。
當(dāng)步驟S101處的確定結(jié)果表示盤101不是普通盤,即盤101中使用的文件系統(tǒng)與操作系統(tǒng)201不符、或者盤101的根目錄不包含“視頻”目錄時(shí),視頻內(nèi)容再現(xiàn)程序210確定視頻內(nèi)容再現(xiàn)程序210與盤101不符,流程前進(jìn)到步驟S102。在步驟S102,圖形處理模塊219執(zhí)行錯誤(error)處理并完成預(yù)再現(xiàn)過程。
換句話說,圖形處理模塊219生成表示盤101不是普通的錯誤消息(其視頻數(shù)據(jù)),作為錯誤處理,并使視頻輸出模塊220輸出錯誤消息,從而顯示該錯誤消息。例如,可以通過從音頻輸出模塊221輸出警告聲或從盤驅(qū)動器102卸載盤101來執(zhí)行該錯誤處理。
當(dāng)步驟S101處的確定結(jié)果表示盤101是普通盤時(shí),流程前進(jìn)到步驟S103。在步驟S103,視頻內(nèi)容再現(xiàn)程序210使內(nèi)容數(shù)據(jù)提供模塊213請求操作系統(tǒng)201讀取存儲在盤101內(nèi)的“視頻”目錄(圖4)中的兩個數(shù)據(jù)文件“SCRIPT.DAT”和“PLAYLIST.DAT”。隨后,流程前進(jìn)到步驟S104。在步驟S104,將“SCRIPT.DAT”文件提供給腳本控制模塊211。此外,將“PLAYLIST.DAT”文件提供給播放器控制模塊212。
隨后,流程從步驟S104前進(jìn)到步驟S105到S107。在步驟S105到S107,播放器控制模塊212執(zhí)行初始化過程。腳本控制模塊211進(jìn)行等待,直到播放器控制模塊212完成初始化過程為止。
在該初始化過程中,在步驟S105,播放器控制模塊212分析“PLAYLIST.DAT”文件,并檢查在“PLAYLIST.DAT”文件中描述的剪輯信息文件的數(shù)量和它們的文件名。
換句話說,由于“PLAYLIST.DAT”文件如圖25所示,并且圖25中示出的“PLAYLIST.DAT”文件的number_of_PlayLists為2,因此播放器控制模塊212識別出存在兩個PlayList(),它們是PlayList#0和PlayList#1。此外,由于圖25中示出的“PLAYLIST.DAT”文件的第一PlayList#0的number_of_PlayItems為2,因此播放器控制模塊212識別出PlayList#0包含兩個PlayItem(),它們是PlayItem#0和PlayItem#1。隨后,播放器控制模塊212參考圖25中示出“PLAYLIST.DAT”文件的PlayList#0中包含的第一PlayItem#0和第二PlayItem#1的C1ip_Information_file_name,并識別出PlayList#0中包含的第一PlayItem#0的剪輯信息文件(其文件名)為“00001.CLP”,并且第二PlayItem#1的剪輯信息文件為“00002.CLP”。
同樣,播放器控制模塊212因?yàn)閚umber_of_PlayItems為1而識別出第二PlayList#1包含一個PlayItem()(PlayItem#0),以及因?yàn)镻layItem#0的Clip_Information_file_name而識別出PlayItem#0的剪輯信息文件為“00003.CLP”。
隨后,流程從步驟S105前進(jìn)到步驟S106。在步驟S106,播放器控制模塊212從盤101的“視頻”目錄下的“剪輯”目錄中,讀取在步驟S105識別出的剪輯信息文件,即三個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。
需要在步驟S106讀取的PlayList()的PlayItem的剪輯信息文件僅僅是被首先再現(xiàn)的PlayList()的PlayItem的剪輯信息。然而,根據(jù)本實(shí)施例,如上所述,PlayList()的PlayItem()的所有剪輯信息都被預(yù)讀取。
在步驟S106之后,流程前進(jìn)到步驟S107。在步驟S107,播放器控制模塊212確定是否成功讀取了在步驟S105識別的剪輯信息文件。此外,播放器控制模塊212確定(檢查)對應(yīng)于該剪輯信息文件的剪輯流文件是否存在于盤101上。換句話說,在步驟S107,播放器控制模塊212確定是否成功讀取了剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”,以及對應(yīng)于剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”的剪輯流文件“00001.PS”、“00002.PS”和“00003.PS”是否存在于盤101的“視頻”目錄下的“流”目錄中。
當(dāng)步驟S107處的確定結(jié)果表示在步驟S105識別出的剪輯信息文件未被成功讀取、或?qū)?yīng)于該剪輯信息文件的剪輯流文件在盤101上不存在,即對應(yīng)于“PLAYLIST.DAT”文件的剪輯信息文件和剪輯流文件沒有被記錄在盤101上時(shí),視頻內(nèi)容再現(xiàn)程序210確定盤101不正確。隨后,流程返回步驟S102。在步驟S102,視頻內(nèi)容再現(xiàn)程序210執(zhí)行前述錯誤處理,并完成預(yù)再現(xiàn)過程。
另一方面,當(dāng)步驟S107處的確定結(jié)果表示在步驟S105識別出的剪輯信息文件已被成功讀取、并且對應(yīng)于該剪輯信息文件的剪輯流文件存在于盤101上時(shí),播放器控制模塊212完成初始化過程。隨后,流程前進(jìn)到步驟S108。
在步驟S108,腳本控制模塊211解釋并執(zhí)行“SCRIPT.DAT”文件。
當(dāng)腳本控制模塊211執(zhí)行“SCRIPT.DAT”文件時(shí),假設(shè)播放器控制模塊212已使第一PlayList()(PlayList#0)被再現(xiàn),執(zhí)行圖30中示出的再現(xiàn)過程。
圖30是視頻內(nèi)容再現(xiàn)程序210執(zhí)行的再現(xiàn)過程的流程圖。
在步驟S121和S122,播放器控制模塊212執(zhí)行腳本控制模塊211已經(jīng)使其被再現(xiàn)的P1ayList()、即第一PlayList()(PlayList#0)的再現(xiàn)準(zhǔn)備過程。
換句話說,在步驟S121,播放器控制模塊212檢查第一PlayList#0中包含的第一PlayItem#0的IN_time(圖6)。隨后,流程前進(jìn)到步驟S122。在步驟S122,播放器控制模塊212檢查與由第一PlayList#0中包含的第一PlayItem#0再現(xiàn)的剪輯流文件“00001.CLP”的PlayItem#0的IN_time相對應(yīng)的再現(xiàn)開始位置。
當(dāng)PlayItem()的IN_time(圖6)表示剪輯流文件的開頭時(shí),從該剪輯流文件的開頭讀取程序流。然而,當(dāng)IN_time表示不是剪輯流文件的開頭時(shí),播放器控制模塊211需要搜索(檢查)對應(yīng)于IN_time的位置,并從該位置讀取剪輯流文件。
具體地說,在圖25中,第一PlayList#0中包含的第一PlayItem#0的IN_time為180090。播放器控制模塊212在圖27中示出的、由第一PlayList#0中包含的第一PlayItem#0再現(xiàn)的剪輯流文件“00001.CLP”的EP_map()中,搜索PlayItem#0的IN_time為180090的再現(xiàn)開始位置。
換句話說,播放器控制模塊212利用對分搜索方法等搜索滿足PTS_EP_start IN_time的最大PTS_EP_start,其中PTS_EP_start表示EP_map()中描述的可解碼起點(diǎn)。這是因?yàn)橛蒊N_time表示的位置不一定是可解碼起點(diǎn)。
在此情況下,如上所述,IN_time為180090。此外,在由第一PlayList#0中包含的第一PlayItem#0再現(xiàn)的剪輯流文件“00001.CLP”的圖27所示的EP_map()中,滿足PTS_EP_start IN_time的PTS_EP_start的最大值為180090。因此,播放器控制模塊212在圖27所示的EP_map()中搜索值為180090的PTS_EP_start。
此外,播放器控制模塊212讀取為了RPN_EP_start而搜索的305(扇區(qū)),并將剪輯流文件“00001.CLP”中的RPN_EP_start表示的位置判定為再現(xiàn)開始位置。
在播放器控制模塊212判定了再現(xiàn)開始位置之后,流程從S122前進(jìn)到步驟S123。在步驟S123,播放器控制模塊212控制圖形處理模塊219顯示時(shí)間代碼。圖形處理模塊219在播放器控制模塊212的控制下生成時(shí)間代碼(其視頻數(shù)據(jù)),并輸出該時(shí)間代碼到視頻輸出模塊220。這樣,該時(shí)間代碼被顯示。
例如,在步驟S123顯示的時(shí)間代碼是將PlayList()的開頭轉(zhuǎn)換為00:00:00(小時(shí):分鐘:秒)的值。除了時(shí)間代碼、或者取代時(shí)間代碼的是,可以顯示章編號和索引編號。
在步驟S123顯示了時(shí)間代碼之后,流程前進(jìn)到步驟S124。在步驟S124,播放器控制模塊212執(zhí)行分析過程,該分析過程分析腳本控制模塊211已經(jīng)使其再現(xiàn)的PlayList(),即在第一PlayList()(PlayList#0)中描述的PlayListMark()(圖7)。
具體地說,在圖28所示的上部的表中,已被預(yù)讀取的“PLAYLIST.DAT”文件的第一PlayList#0的PlayListMark()的number_of_PlayList_marks為7。因此,播放器控制模塊212識別出在PlayList#0中包含的Mark()的數(shù)量為7。
此外,播放器控制模塊212分析圖28所示的上部的表的7個Mark(),并識別出7個Mark()中的第一到第四Mark()的4個Mark()屬于PlayList#0的第一PlayItem()(PlayItem#0)。
隨后,播放器控制模塊212獲取屬于PlayList#0的第一PlayItem#0的4個Mark()中的mark_time_stamp,并將它們作為四元矩陣提供給解碼控制模塊214。因此,將作為圖28所示的上部的表中的7個Mark()的第一到第四Mark()的4個Mark()的mark_time_stamp的4個時(shí)刻{180090}、{5580090}、{10980090}和{16380090},從播放器控制模塊212發(fā)送給解碼控制模塊214。此時(shí),將這些時(shí)刻的“標(biāo)記處理(mark process)”屬性從播放器控制模塊212發(fā)送給解碼控制模塊214。當(dāng)計(jì)時(shí)部分214A計(jì)數(shù)的時(shí)刻與具有“標(biāo)記處理”屬性的時(shí)刻相匹配時(shí),解碼控制模塊214將對應(yīng)的消息、與具有“標(biāo)記處理”屬性的時(shí)刻相匹配的時(shí)刻以及“標(biāo)記處理”屬性發(fā)送給播放器控制模塊212。
隨后,流程從步驟S124前進(jìn)到步驟S125。在步驟S125,播放器控制模塊212判定要再現(xiàn)的基本流。
換句話說,在作為腳本控制模塊211已經(jīng)使其被再現(xiàn)的PlayList()的第一PlayList#0的第一PlayItem#0(圖25)的Clip_Information_file_name中描述的、圖26A和26B所示的剪輯信息文件“00001.CLP”中,number_of_streams為4。因此,播放器控制模塊212識別出已經(jīng)將4個基本流與對應(yīng)的剪輯流文件“00001.PS”進(jìn)行了多路復(fù)用。此外,播放器控制模塊212檢查在圖26A和圖26B中示出的、這4個基本流的剪輯信息文件“00001.CLP”的StaticInfo()的stream_id和privte_stream_id,并且識別出這4個基本流是一個視頻流、一個ATRAC音頻流和兩個字幕流。換句話說,播放器控制模塊212識別出與剪輯流文件“00001.PS”多路復(fù)用的、具有單獨(dú)屬性的基本流的數(shù)量。
使用關(guān)于與剪輯流文件多路復(fù)用的、具有單獨(dú)屬性的基本流的數(shù)量的信息,來將一個基本流改變?yōu)橐佻F(xiàn)的另一基本流(從一個音頻模式到另一音頻模式或從一個字幕模式到另一字幕模式)。當(dāng)剪輯流文件不包含字幕流文件、即內(nèi)容不包括字幕數(shù)據(jù)時(shí),利用關(guān)于具有“字幕流”屬性的基本流的數(shù)量的信息,來確定是否存在字幕流。
播放器控制模塊212對應(yīng)于StaticInfo()的檢查結(jié)果而選擇和判定要再現(xiàn)的基本流。在此情況中,與剪輯流文件“00001.PS”多路復(fù)用的4個基本流包含一個具有“視頻流”屬性的基本流和一個具有“音頻流”屬性的基本流。因此,將具有“視頻流”屬性的基本流和具有“音頻流”屬性的基本流(ATRAC音頻流)單獨(dú)判定為要再現(xiàn)的基本流。
另一方面,與剪輯流文件“00001.PS”多路復(fù)用的4個基本流包含兩個具有“字幕流”屬性的基本流。因此,選擇并判定這兩個字幕流中的一個。在該示例中,選擇了在剪輯信息文件“00001.CLP”的兩個字幕流中首先出現(xiàn)的字幕流。
當(dāng)識別出與剪輯流文件“00001.PS”多路復(fù)用的基本流的屬性和數(shù)量時(shí),需要標(biāo)識這4個基本流。播放器控制模塊212利用stream_id和private_stream_id來標(biāo)識與剪輯流文件“00001.PS”多路復(fù)用的這4個基本流。
換句話說,播放器控制模塊212利用如圖26A和圖26B中示出的剪輯信息文件“00001.CLP”所述的值為0xE0的stream_id,從與剪輯流文件“00001.PS”多路復(fù)用的4個基本流中標(biāo)識具有“視頻流”屬性的基本流。
此外,播放器控制模塊212使用如圖26A和圖26B中示出的剪輯信息文件“00001.CLP”所述的值為0xBD的stream_id和值為0x00的private_stream_id,從與剪輯流文件“00001.PS”多路復(fù)用的4個基本流中,標(biāo)識作為具有“音頻流”屬性的基本流的ATRAC音頻流。
此外,播放器控制模塊212使用值為0xBD的stream_id和值為0x80的private_stream_id以及值為0xBD的stream_id和值為0x81的private_stream_id,從與剪輯流文件“00001.PS”多路復(fù)用的4個基本流中,標(biāo)識作為具有“字幕流”屬性的基本流的兩個字幕流。
如上所述,可以利用被描述為對應(yīng)于剪輯流文件的剪輯信息文件的元數(shù)據(jù)的stream_id和private_stream_id,來標(biāo)識與剪輯流文件多路復(fù)用的基本流。
stream_id和private_stream_id的組合是提供用來擴(kuò)展MPEG2系統(tǒng)的多路復(fù)用的機(jī)制。當(dāng)把stream_id和private_stream_id的組合用作作為數(shù)據(jù)庫的元數(shù)據(jù)時(shí),可以可靠地標(biāo)識基本流。此外,當(dāng)為了增大對應(yīng)的基本流的數(shù)量和類型而擴(kuò)展private_stream_id時(shí),可以不經(jīng)改變地使用當(dāng)前的機(jī)制。因此,stream_id和private_stream_id的組合具有高可擴(kuò)展性。
換句話說,例如,藍(lán)光盤(BD)標(biāo)準(zhǔn)使用MPEG2標(biāo)準(zhǔn)的傳輸流的分組ID(PID)來標(biāo)識數(shù)據(jù)。因此,BD標(biāo)準(zhǔn)受到MPEG2標(biāo)準(zhǔn)限制。另一方面,DVD視頻標(biāo)準(zhǔn)定義了與private_stream_id相似的sub_stream_id。然而,不能在數(shù)據(jù)庫中描述sub_stream_id以標(biāo)識流。sub_stream_id在用于僅僅8到32個流的信息的固定區(qū)域中進(jìn)行描述(參見VI4-49,表4.2.1-2(VTS_AST_ATRT)以及VI4-52,表4.2.1-3(VTS_SPST_ATRT))。因此,sub_stream_id不具有高可擴(kuò)展性。
另一方面,可以利用元數(shù)據(jù)來描述stream_id和private_stream_id的組合。例如,圖10中示出的剪輯信息文件Clip()可描述對應(yīng)于由number_of_streams表示的值的stream_id和private_stream_id的組合。因此,可以利用作為元數(shù)據(jù)而在剪輯信息文件Clip()中描述的stream_id和private_stream_id的組合,來標(biāo)識與剪輯流文件多路復(fù)用的基本流,而不考慮(由number_of_streams表示的范圍內(nèi)的)基本流的數(shù)量。
根據(jù)本實(shí)施例,使用stream_id和private_stream_id的組合來標(biāo)識與剪輯流文件多路復(fù)用的基本流,其中所述剪輯流文件對應(yīng)圖10示出的剪輯信息文件。此外,可以使用該組合來將標(biāo)識與Mark()相關(guān)的基本流,作為圖7中示出的PlayListMark()的entry_ES_stream_id和entry_ES_private_stream_id的組合。此外,使用stream_id和private_stream_id的組合來標(biāo)識描述圖14所示的EP_map()中的可解碼起點(diǎn)的信息的基本流。
隨后,流程從步驟S125前進(jìn)到步驟S126。在步驟S126,播放器控制模塊212執(zhí)行對在步驟S125中被判定為要在步驟S125再現(xiàn)的基本流的基本流的輸出屬性控制處理。
具體地說,播放器控制模塊212檢查表示DynamicInfo()(圖13)的數(shù)量的number_of_DynamicInfo(圖10),其中該DynamicInfo()描述在步驟S125被判定為要再現(xiàn)的流的視頻流、ATRAC音頻流和字幕流的輸出屬性。
在該情況下,要再現(xiàn)的視頻流、ATRAC音頻流和字幕流是與剪輯流文件“00001.PS”多路復(fù)用的基本流。在圖26A和圖26B所示的剪輯信息文件“00001.CLP”中,number_of_DynamicInfo都為0。當(dāng)number_of_DynamicInfo都為0時(shí),播放器控制模塊212不對要再現(xiàn)的基本流的輸出屬性執(zhí)行輸出屬性控制處理。
當(dāng)要再現(xiàn)的基本流的number_of_DynamicInfo不是0時(shí),執(zhí)行對該基本流的輸出屬性控制處理。輸出屬性控制處理將在后面進(jìn)行描述。
在步驟S126之后,流程前進(jìn)到步驟S127。在步驟S127,播放器控制模塊212對要再現(xiàn)的基本流執(zhí)行再現(xiàn)開始準(zhǔn)備處理。
換句話說,播放器控制模塊212把要再現(xiàn)的基本流與之多路復(fù)用的剪輯流文件“00001.PS”的文件名、以及在EP_map()中描述的作為在步驟S122判定的再現(xiàn)開始位置的RPN_EP_start(=305)提供給內(nèi)容數(shù)據(jù)提供模塊213。
此外,在把要再現(xiàn)的基本流與之多路復(fù)用的剪輯流文件“00001.PS”中存儲的程序流提供給緩沖控制模塊215之前,播放器控制模塊212初始化緩沖控制模塊215。
具體地說,緩沖控制模塊215(圖3)將相同的值設(shè)置到存儲在數(shù)據(jù)開始指針存儲部分231中的數(shù)據(jù)開始指針、存儲在數(shù)據(jù)寫入指針存儲部分232中的數(shù)據(jù)寫入指針、存儲在視頻讀取指針存儲部分241中的視頻讀取指針、存儲在音頻讀取指針存儲部分251中的音頻讀取指針、以及存儲在字幕讀取指針存儲部分262中的字幕讀取指針。
因此,存儲在數(shù)據(jù)開始指針存儲部分231中的數(shù)據(jù)開始指針以及存儲在數(shù)據(jù)寫入指針存儲部分232中的數(shù)據(jù)寫入指針占據(jù)緩沖控制模塊215的緩沖區(qū)215A中的相同位置。這表示沒有有效數(shù)據(jù)被存儲在緩沖區(qū)215A中。
此外,播放器控制模塊212將stream_id、以及如果必要的話還有private_stream_id作為要再現(xiàn)的基本流的標(biāo)識信息提供給緩沖控制模塊215。
換句話說,如上所述,利用值為0xE0的stream_id來標(biāo)識要再現(xiàn)的基本流中具有“視頻流”屬性的視頻流。利用值為0xBD的stream_id和值為0x00的private_stream_id來標(biāo)識具有“音頻流”屬性的ATRAC音頻流。利用值為0xBD的stream_id和值為0x80的private_stream_id來標(biāo)識具有“字幕流”屬性的字幕流。播放器控制模塊212將這些stream_id和private_stream_id提供給緩沖控制模塊215。
在緩沖控制模塊215(圖3)中,視頻讀取功能部分233將從播放器控制模塊212接收的、視頻流的值為0xE0的stream_id存儲到stream_id寄存器242。此外,音頻讀取功能部分234將從播放器控制模塊212接收的、值為0xBD的stream_id和值為0x00的private_stream_id分別存儲到stream_id寄存器252和private_stream_id寄存器253。此外,字幕讀取功能部分235將從播放器控制模塊212接收的、值為0xBD的stream_id和值為0x80的private_stream_id分別存儲到stream_id寄存器263和private_stream_id寄存器264。
播放器控制模塊212為了以后的處理而存儲提供給緩沖控制模塊215的、要再現(xiàn)的基本流的stream_id和private_stream_id。當(dāng)流改變請求消息出現(xiàn)、或者對在標(biāo)記處理中正被再現(xiàn)的流進(jìn)行標(biāo)識時(shí),播放器控制模塊212使用stream_id和private_stream_id,其中將在以后描述所述標(biāo)記處理。
為了初始化緩沖控制模塊215(圖3),播放器控制模塊212將具有和與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件相對應(yīng)的值的字幕讀取功能標(biāo)志設(shè)置到字幕讀取功能標(biāo)志存儲部分261。
換句話說,在此情況中,由于要再現(xiàn)的基本流與之多路復(fù)用的剪輯流文件“00001.PS”包含字幕流,因此將值為1的字幕讀取功能標(biāo)志設(shè)置到字幕讀取功能標(biāo)志存儲部分261,以激活字幕讀取功能部分235。當(dāng)要再現(xiàn)的基本流未與之多路復(fù)用的剪輯流文件不包含字幕流時(shí),將值為0的字幕讀取功能標(biāo)志設(shè)置到字幕讀取功能標(biāo)志存儲部分261。在此情況中,沒有激活字幕讀取功能部分235(字幕讀取功能部分235不執(zhí)行任何處理)。
此外,播放器控制模塊212將在第一PlayList#0中包含的第一PlayItem#0(圖25)的值為180090的IN_time、以及值為27180090的OUT_time提供給解碼控制模塊214,其中腳本控制模塊211已使播放器控制模塊212再現(xiàn)所述第一PlayList#0。解碼控制模塊214使用IN_time來開始對由PlayItem()再現(xiàn)的剪輯進(jìn)行解碼,并且使用OUT_time來停止對該剪輯進(jìn)行解碼并且控制PlayItem改變處理,所述處理將在后面描述。
播放器控制模塊212將其中圖形處理模塊219顯示字幕流的字幕流顯示模式初始化。換句話說,播放器控制模塊212控制圖形處理模塊219來以默認(rèn)的顯示模式顯示字幕流。
隨后,流程從步驟S127前進(jìn)到步驟S128。播放器控制模塊212控制內(nèi)容數(shù)據(jù)提供模塊213使用操作系統(tǒng)201的功能來讀取包含程序流的剪輯流文件,其中要再現(xiàn)的基本流已經(jīng)與所述程序流多路復(fù)用。換句話說,內(nèi)容數(shù)據(jù)提供模塊213指定盤101的“視頻”目錄下的“流”目錄的剪輯流文件“00001.PS”(圖4),指定作為在步驟S122判定的再現(xiàn)開始位置的扇區(qū)305,并使操作系統(tǒng)201讀取該文件。內(nèi)容數(shù)據(jù)提供模塊213使操作系統(tǒng)201將已經(jīng)從盤101讀取的數(shù)據(jù)提供給緩沖控制模塊215。
因此,從盤101讀取剪輯流文件“00001.PS”的程序流。該程序流被提供給緩沖控制模塊215。
緩沖控制模塊215(圖3)將從盤101讀取的程序流寫入由緩沖區(qū)215A的數(shù)據(jù)寫入指針存儲部分232的數(shù)據(jù)寫入指針表示的位置,并將數(shù)據(jù)寫入指針增大該寫入數(shù)據(jù)的大小。
除非另外說明,否則當(dāng)緩沖控制模塊215的緩沖區(qū)215A具有空閑空間時(shí),內(nèi)容數(shù)據(jù)提供模塊213從盤101讀取數(shù)據(jù),將該數(shù)據(jù)提供并存儲到緩沖控制模塊215的緩沖區(qū)215A。因而,緩沖區(qū)215A始終存儲足夠數(shù)量的數(shù)據(jù)。
當(dāng)從盤101讀取數(shù)據(jù)并將該數(shù)據(jù)存儲到緩沖控制模塊215的緩沖區(qū)215A時(shí),流程從步驟S128前進(jìn)到步驟S129。在步驟S129,解碼控制模塊214控制視頻解碼器控制模塊216、音頻解碼器控制模塊217以及字幕解碼器控制模塊218開始從緩沖區(qū)215A讀取數(shù)據(jù),作為預(yù)解碼操作。
因此,視頻解碼器控制模塊216請求緩沖控制模塊215(圖3)的視頻讀取功能部分233發(fā)送數(shù)據(jù)。視頻解碼器控制模塊216對應(yīng)于該請求,從緩沖控制模塊215中獲取存儲在緩沖區(qū)215A中的一個視頻存取單元、添加到該視頻存取單元的PTS和DTS(有時(shí)稱為時(shí)間戳)、作為在緊接在可解碼起點(diǎn)之后的private_stream_2的PES_packet()中描述的信息(有時(shí)稱為附加信息)的pic_struct_copy、au_ref_flag和AU_length等。無論視頻解碼器控制模塊216何時(shí)獲得視頻存取單元,都將該時(shí)間戳從視頻解碼器控制模塊216提供給解碼控制模塊214。
另一方面,音頻解碼器控制模塊217請求緩沖控制模塊215(圖3)的音頻讀取功能部分234發(fā)送數(shù)據(jù)。音頻解碼器控制模塊217對應(yīng)于該請求,從緩沖控制模塊215獲取存儲在緩沖區(qū)215A中的一個(ATRAC)音頻存取單元、以及添加到該音頻存取單元的時(shí)間戳(PTS和DTS)。無論音頻解碼器控制模塊217何時(shí)獲得音頻存取單元,都將該時(shí)間戳從音頻解碼器控制模塊217提供給解碼控制模塊214。
此外,字幕解碼器控制模塊218請求緩沖控制模塊215(圖3)的字幕讀取功能部分235發(fā)送數(shù)據(jù)。字幕解碼器控制模塊218對應(yīng)于該請求,從緩沖控制模塊215獲取存儲在緩沖區(qū)215A中的一個字幕存取單元、以及添加到該字幕存取單元的時(shí)間戳。無論字幕解碼器控制模塊218何時(shí)獲得字幕存取單元,都將該時(shí)間戳從字幕解碼器控制模塊218提供給解碼控制模塊214。當(dāng)要再現(xiàn)的基本流不包含字幕流或者緩沖區(qū)215A沒有存儲字幕存取單元時(shí),不從緩沖控制模塊215將數(shù)據(jù)提供給字幕解碼器控制模塊218。
每當(dāng)視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218請求緩沖控制模塊215發(fā)送數(shù)據(jù)時(shí),它們就將結(jié)果發(fā)送給解碼控制模塊214。
當(dāng)緩沖控制模塊215將數(shù)據(jù)發(fā)送給視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218時(shí)從緩沖區(qū)215A讀取的數(shù)據(jù)的細(xì)節(jié)將在后面進(jìn)行描述。
當(dāng)視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218開始從緩沖控制模塊215的緩沖區(qū)215A讀取數(shù)據(jù)時(shí),流程從步驟S129前進(jìn)到步驟S130。在步驟S130,這些模塊開始對已讀取的數(shù)據(jù)進(jìn)行解碼。
換句話說,解碼控制模塊214使視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218對應(yīng)于PlayList#0中包含的第一PlayItem#0的IN_time,并且對應(yīng)于在步驟S129從視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218提供的時(shí)間戳,或者如果必要的話以改變的定時(shí)開始解碼,使得將所解碼的數(shù)據(jù)安全地同步,其中,所述IN_time是在步驟S127從播放器控制模塊212提供的,并且是180090。
在例如日本專利第3496725號中描述了一種用于以改變的定時(shí)開始將數(shù)據(jù)解碼使得將數(shù)據(jù)安全地同步的方法。簡而言之,從視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218提供的時(shí)間戳的最小值被設(shè)置成計(jì)時(shí)部分214A的初始值。計(jì)時(shí)部分214A從所設(shè)置的這一時(shí)刻開始對時(shí)間進(jìn)行計(jì)數(shù)。當(dāng)計(jì)時(shí)部分214A所計(jì)數(shù)的時(shí)刻與時(shí)間戳相匹配時(shí),解碼控制模塊214促使這些模塊開始對數(shù)據(jù)進(jìn)行解碼。
視頻解碼器控制模塊216從解碼控制模塊214接收解碼開始命令,將從緩沖控制模塊215(圖3)的視頻讀取功能部分233獲得的一個視頻存取單元提供給視頻解碼器116(圖1),并使視頻解碼器116對該視頻存取單元解碼。此外,視頻解碼器控制模塊216將由視頻解碼器116解碼的視頻數(shù)據(jù)提供給圖形處理模塊219。
其后,視頻解碼器控制模塊216使視頻解碼器116連續(xù)地對從緩沖控制模塊215的視頻讀取功能部分233獲得的視頻存取單元一次一個地進(jìn)行解碼,并將解碼后的視頻存取單元作為視頻數(shù)據(jù)提供給圖形處理模塊219。
音頻解碼器控制模塊217從解碼控制模塊214接收解碼開始命令,將從緩沖控制模塊215(圖3)的音頻讀取功能部分234獲得的一個音頻存取單元提供給音頻解碼器117(圖1),并使音頻解碼器117對該音頻存取單元解碼。音頻解碼器控制模塊217將由音頻解碼器117解碼的音頻數(shù)據(jù)提供給音頻輸出模塊221。
隨后,音頻解碼器控制模塊217使音頻解碼器117連續(xù)地對從緩沖控制模塊215的音頻讀取功能部分234獲得的音頻存取單元一次一個地解碼,并將解碼后的音頻存取單元作為音頻數(shù)據(jù)提供給音頻輸出模塊221。
此外,字幕解碼器控制模塊218從解碼控制模塊214接收解碼開始命令,對應(yīng)于該命令而使內(nèi)部字幕解碼軟件對從字幕讀取功能部分235獲得的一個字幕存取單元解碼,并將解碼后的字幕存取單元作為字幕數(shù)據(jù)(字幕的圖像數(shù)據(jù))提供給圖形處理模塊219。
隨后,字幕解碼器控制模塊218使內(nèi)部解碼軟件連續(xù)地對從緩沖控制模塊215的字幕讀取功能部分235獲得的字幕存取單元一次一個地解碼,并將解碼后的字幕存取單元作為字幕數(shù)據(jù)提供給圖形處理模塊219。

隨后,流程從步驟S130前進(jìn)到步驟S131。在步驟S131,圖形處理模塊219對從視頻解碼器控制模塊216提供的視頻數(shù)據(jù)、以及如果必要的話還對從字幕解碼器控制模塊218提供的字幕數(shù)據(jù)執(zhí)行圖形處理。
換句話說,圖形處理模塊219對應(yīng)于從播放器控制模塊212接收的顯示模式命令而執(zhí)行字幕處理,其中所述字幕處理例如放大或縮小從字幕解碼器控制模塊218提供的字幕數(shù)據(jù)。當(dāng)圖形處理模塊219沒有從播放器控制模塊212接收到顯示模式命令、或者存在默認(rèn)顯示模式時(shí),圖形處理模塊219存儲從字幕解碼器控制模塊218接收的字幕數(shù)據(jù)。
此外,圖形處理模塊219將從視頻解碼器控制模塊216接收的視頻數(shù)據(jù)、和從字幕解碼器控制模塊218接收的字幕數(shù)據(jù)或已被處理的字幕數(shù)據(jù)相加,獲得利用其覆蓋了字幕數(shù)據(jù)的輸出視頻數(shù)據(jù),并將覆蓋后的視頻數(shù)據(jù)提供給視頻輸出模塊220。
當(dāng)圖形處理模塊219從腳本控制模塊211或播放器控制模塊212接收到對菜單、消息、時(shí)間代碼、章編號或索引編號的信息顯示命令時(shí),圖形處理模塊219生成該信息,用輸出視頻數(shù)據(jù)覆蓋該信息,并將覆蓋后的數(shù)據(jù)提供給視頻輸出模塊220。
在步驟S131之后,流程前進(jìn)到步驟S132。在步驟S132,視頻輸出模塊220連續(xù)地將從圖形處理模塊219提供的輸出視頻數(shù)據(jù)存儲到FIFO 220A,并且以預(yù)定的輸出速率輸出存儲在FIFO 220A中的視頻數(shù)據(jù)。
只要FIFO 220A具有足夠的存儲容量(空閑空間),視頻輸出模塊220就從圖形處理模塊219接收輸出視頻數(shù)據(jù)。當(dāng)FIFO 220A不具有足夠的存儲容量時(shí),視頻輸出模塊220使圖形處理模塊219停止接收輸出視頻數(shù)據(jù)。因此,圖形處理模塊停止接收輸出數(shù)據(jù)。此外,視頻輸出模塊220使視頻解碼器控制模塊216和字幕解碼器控制模塊218停止其處理。因此,視頻解碼器控制模塊216和字幕解碼器控制模塊218停止了其處理。
在視頻輸出模塊220使圖形處理模塊219停止接收輸出視頻數(shù)據(jù)并且FIFO 220A已輸出視頻數(shù)據(jù)之后,當(dāng)FIFO 220A具有足夠的存儲容量時(shí),視頻輸出模塊220使圖形處理模塊219接收輸出視頻數(shù)據(jù)。與輸出視頻數(shù)據(jù)相同,圖形處理模塊219使視頻解碼器控制模塊216和圖形處理模塊219停止接收數(shù)據(jù)。因此,圖形處理模塊219、視頻解碼器控制模塊216和字幕解碼器控制模塊218重新開始所停止的處理。
另一方面,音頻輸出模塊221也使FIFO 221A連續(xù)地存儲在步驟S130從音頻解碼器控制模塊217提供的音頻數(shù)據(jù),并以預(yù)定的輸出速率(采樣頻率)輸出音頻數(shù)據(jù)。
只要FIFO 221A具有足夠的存儲容量(空白空間),音頻輸出模塊221就從音頻解碼器控制模塊217接收音頻數(shù)據(jù)。然而,當(dāng)FIFO 221A不具有足夠的存儲容量時(shí),音頻輸出模塊221使音頻解碼器控制模塊217停止接收該音頻數(shù)據(jù)。因此,音頻解碼器控制模塊217停止其處理。
在音頻輸出模塊221使音頻解碼器控制模塊217停止接收音頻數(shù)據(jù)并且FIFO 221A輸出了音頻數(shù)據(jù)之后,當(dāng)FIFO 221A具有足夠的存儲容量時(shí),音頻輸出模塊221使音頻解碼器控制模塊217接收音頻數(shù)據(jù)。因此,音頻解碼器控制模塊217重新開始所停止的處理。
以上述方式,當(dāng)視頻輸出模塊220和音頻輸出模塊221輸出數(shù)據(jù)時(shí),基本流被解碼。
圖1示出的盤設(shè)備對應(yīng)于圖29和圖30中示出的流程圖而再現(xiàn)來自盤101的數(shù)據(jù)。接下來,將描述當(dāng)盤設(shè)備再現(xiàn)來自盤101的數(shù)據(jù)時(shí)執(zhí)行的其它處理或操作。
如圖29和圖30所述,再現(xiàn)圖25示出的第一PlayList#0的第一PlayItem#0。對應(yīng)于PlayList#0,在再現(xiàn)第一PlayItem#0之后,再現(xiàn)第二PlayItem#1。換句話說,執(zhí)行將PlayItem從PlayItem#0改變?yōu)镻layItem#1的PlayItem改變處理。
接下來,將參照圖31示出的流程圖來描述PlayItem改變處理。
如圖29和圖30所述,在再現(xiàn)圖25示出的PlayList#0的第一PlayItem#0(其剪輯)之后,當(dāng)再現(xiàn)第一PlayItem#0時(shí),解碼控制模塊214(圖2A和圖2B)檢查計(jì)時(shí)部分214A正在計(jì)數(shù)的時(shí)刻。
當(dāng)計(jì)時(shí)部分214A計(jì)數(shù)的時(shí)刻變?yōu)?7180090(圖25)時(shí),解碼控制模塊214步驟S151執(zhí)行解碼停止控制以停止再現(xiàn)PlayItem#0,其中,所述27180090與圖30示出的、在步驟S127從播放器控制模塊212提供的第一PlayItem#0的OUT_time相同。
換句話說,解碼控制模塊214操作視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218以停止其解碼操作。解碼控制模塊214控制視頻輸出模塊220連續(xù)輸出視頻數(shù)據(jù)。
此外,解碼控制模塊214將表示第一PlayItem#0已經(jīng)再現(xiàn)的消息發(fā)送給播放器控制模塊212。
如上所述,在圖29中示出的步驟S105,播放器控制模塊212已經(jīng)識別出第一PlayList#0包含第一PlayItem#0和第二PlayItem#1。當(dāng)解碼控制模塊214向播放器控制模塊212通知了第一PlayItem#0已被再現(xiàn)時(shí),流程從步驟S151前進(jìn)到步驟S152。在步驟S152,按照與第一PlayItem#0相同的方式,播放器控制模塊212開始再現(xiàn)第二PlayItem#1。
與圖30中示出的步驟S122相同,播放器控制模塊212將EP_map()中描述的RPN_EP_start之一判定為第二PlayItem#1的再現(xiàn)開始位置。
此外,播放器控制模塊212識別出屬于在圖30所示的步驟S124處描述的第二PlayItem#1的Mark()、以及具有與剪輯流文件“00002.PS”多路復(fù)用的屬性的基本流的數(shù)量,并判定要再現(xiàn)的基本流,其中由在圖30的步驟S125處描述的PlayItem#1再現(xiàn)所述剪輯流文件“00002.PS”。
播放器控制模塊212執(zhí)行與圖30所示的步驟S127處的處理相同的處理。
換句話說,播放器控制模塊212將被判定為再現(xiàn)開始位置的EP_map()的RPN_EP_start、以及與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件的文件名即剪輯流文件“00002.PS”的文件名發(fā)送給內(nèi)容數(shù)據(jù)提供模塊213,其中所述剪輯流文件“00002.PS”對應(yīng)于第二PlayItem#1(圖25)的Clip_Information_file_name中描述的“00002.CLP”。
此外,在將存儲在與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件“00002.PS”中的程序流提供給緩沖控制模塊215之前,播放器控制模塊212初始化緩沖控制模塊215。
換句話說,緩沖控制模塊215(圖3)將相同的值設(shè)置給存儲在數(shù)據(jù)開始指針存儲部分231中的數(shù)據(jù)開始指針、存儲在數(shù)據(jù)寫入指針存儲部分232中的數(shù)據(jù)寫入指針、存儲在視頻讀取指針存儲部分241中的視頻讀取指針、存儲在音頻讀取指針存儲部分251中的音頻讀取指針以及存儲在字幕讀取指針存儲部分262中的字幕讀取指針。
此外,播放器控制模塊212將stream_id、以及如果必要的話還有private_stream_id作為標(biāo)識要再現(xiàn)的基本流的標(biāo)識信息提供給緩沖控制模塊215。
緩沖控制模塊215(圖3)的視頻讀取功能部分233從播放器控制模塊212接收要再現(xiàn)的基本流的視頻流的stream_id,并且將其存儲到stream_id寄存器242。此外,音頻讀取功能部分234從播放器控制模塊212接收要再現(xiàn)的基本流的音頻流的stream_id和private_stream_id,并將其存儲到stream_id寄存器252和private_stream_id寄存器253。
由于與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件“00002.PS”包含字幕流,因此將要再現(xiàn)的基本流的字幕流的stream_id和private_stream_id從播放器控制模塊212提供給字幕讀取功能部分235。字幕讀取功能部分235分別將stream_id和private_stream_id存儲到stream_id寄存器263和private_stream_id寄存器264。
播放器控制模塊212設(shè)置字幕讀取功能標(biāo)志到字幕讀取功能標(biāo)志存儲部分261,以初始化緩沖控制模塊215(圖3),其中所述字幕讀取功能標(biāo)志具有對應(yīng)于與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件的值。
在此情況中,由于與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件“00002.PS”包含字幕流,因此將具有值1的字幕讀取功能標(biāo)志設(shè)置到字幕讀取功能標(biāo)志存儲部分261以激活字幕讀取功能部分235。
播放器控制模塊212將90000作為要再現(xiàn)的第二PlayItem#1(圖25)的IN_time并將27090000作為OUT_time提供給解碼控制模塊214。
此外,播放器控制模塊212初始化對圖形處理模塊219的字幕流顯示模式命令。換句話說,播放器控制模塊212控制圖形處理模塊219以默認(rèn)顯示模式來顯示字幕數(shù)據(jù)。
當(dāng)要再現(xiàn)的字幕流的configurable_flag(圖12)是1時(shí),這表示允許改變顯示模式,那么播放器控制模塊212發(fā)送給圖形處理模塊219的字幕流顯示命令可以是當(dāng)前顯示模式命令。
按照與第一PlayItem#0相同的方式,再現(xiàn)第二PlayItem#1。當(dāng)再現(xiàn)第二PlayItem#1時(shí),解碼控制模塊214監(jiān)控計(jì)時(shí)部分214A正在計(jì)數(shù)的時(shí)刻。當(dāng)計(jì)時(shí)部分214A計(jì)數(shù)的時(shí)刻變?yōu)?7090000(圖25)時(shí),解碼控制模塊214執(zhí)行與在步驟S151處的解碼停止控制相同的解碼停止控制,以停止再現(xiàn)PlayItem#1,其中,270090000與在步驟S152(圖31)從播放器控制模塊212提供的第二PlayItem#1的OUT_time相同。
接下來,如上所述,在圖30所示的步驟S123顯示時(shí)間代碼。該時(shí)間代碼被連續(xù)地更新。
接下來,參照圖32中示出的流程圖,將描述時(shí)間代碼顯示處理。
當(dāng)解碼控制模塊214的計(jì)時(shí)部分214A(圖2A和圖2B)已計(jì)數(shù)了一秒時(shí),流程前進(jìn)到步驟S171。在步驟S171,解碼控制模塊214將表示已經(jīng)過去一秒的消息、以及計(jì)時(shí)部分214A計(jì)數(shù)的當(dāng)前時(shí)刻提供給播放器控制模塊212。隨后,流程前進(jìn)到步驟S172。在步驟S172,播放器控制模塊212從解碼控制模塊214接收所述消息和當(dāng)前時(shí)刻,并將當(dāng)前時(shí)刻轉(zhuǎn)換成時(shí)間代碼。隨后,流程前進(jìn)到步驟S173。
在步驟S173,播放器控制模塊212控制圖形處理模塊219顯示在步驟S172獲得的時(shí)間代碼。隨后,流程返回步驟S171。
因此,以一秒的時(shí)間間隔更新時(shí)間代碼。時(shí)間代碼的更新間隔不限于一秒。
剪輯流文件“00001.PS”和剪輯流文件“00002.PS”與如圖26A和圖26B所述的兩個字幕流多路復(fù)用,其中剪輯流文件“00001.PS”由組成圖25所述的第一PlayList#0的第一PlayItem#0再現(xiàn),剪輯流文件“00002.PS”由第二PlayItem#1再現(xiàn)。
當(dāng)具有相同屬性的多個基本流與剪輯流文件多路復(fù)用時(shí),可以把要再現(xiàn)的基本流從一個基本流轉(zhuǎn)換成另一個基本流。
接下來,將參照圖33中示出的流程圖來描述流改變處理。
當(dāng)將流改變命令描述為例如“SCRIPT.DAT”文件(圖4)中的腳本程序、并且腳本控制模塊211執(zhí)行該腳本程序或者用戶操作遙控器以改變流時(shí),將流改變命令提供給播放器控制模塊212。
當(dāng)腳本控制模塊211執(zhí)行描述流改變請求的腳本程序時(shí),腳本控制模塊211提供流改變請求消息到播放器控制模塊212。當(dāng)用戶使用遙控器輸入流改變命令時(shí),輸入接口115從遙控器接收流改變命令信號,并將流改變請求消息提供給播放器控制模塊212。
當(dāng)使播放器控制模塊212改變字幕流的字幕流改變請求消息被提供給播放器控制模塊212時(shí),其檢查要再現(xiàn)的基本流的字幕流的數(shù)量,其中已經(jīng)在圖30所示的步驟S125處識別出所述數(shù)量。
當(dāng)播放器控制模塊212檢查的字幕流的數(shù)量是1或更少時(shí),播放器控制模塊212忽略字幕流改變請求消息。因此,播放器控制模塊212不執(zhí)行從步驟S192到步驟S194的處理。
相反,當(dāng)字幕流的數(shù)量是2或更多時(shí),流程從步驟S192前進(jìn)到步驟S194。在這些步驟處,播放器控制模塊212將正被再現(xiàn)的字幕流改變成另一個字幕流。
換句話說,在步驟S192,播放器控制模塊212在剪輯信息文件上標(biāo)識正被再現(xiàn)的字幕流。具體地說,假設(shè)對應(yīng)于第二PlayItem#1而正在再現(xiàn)其stream_id為0xBD以及private_stream_id為0x80、并與剪輯流文件“00002.PS”多路復(fù)用的字幕流,其中所述第二PlayItem#1組成圖25所述的第一PlayList#0的,則播放器控制模塊212在步驟S192將正被再現(xiàn)的字幕流標(biāo)識為與剪輯流文件“00002.PS”多路復(fù)用的兩個字幕流的stream#2,其中stream#2是剪輯信息文件“00002.CLP”的第三字幕流。
隨后,流程前進(jìn)到步驟S193。在步驟S193,播放器控制模塊212將在步驟S192標(biāo)識的剪輯信息文件的下一字幕流識別(標(biāo)識)為接下來要再現(xiàn)的字幕流。在圖26A到圖26B中,第三字幕流stream#2的下一個字幕流是第四字幕流stream#3。因此,在步驟S193,播放器控制模塊212將第四字幕流stream#3識別為接下來要再現(xiàn)的字幕流。
當(dāng)正被再現(xiàn)的字幕流被標(biāo)識為與剪輯流文件“00002.PS”多路復(fù)用的兩個字幕流的stream#3時(shí),播放器控制模塊212例如將第三字幕流stream#2識別為接下來要再現(xiàn)的字幕流,其中所述stream#3是圖26A和圖26B中示出的剪輯信息文件“00002.CLP”中的第四字幕流。
隨后,流程前進(jìn)到步驟S194。在步驟S194,播放器控制模塊212將在步驟S193識別為接下來要再現(xiàn)的字幕的stream_id和private_stream_id提供給緩沖控制模塊215的字幕讀取功能部分235(圖3),使得字幕讀取功能部分235從緩沖區(qū)215A讀取由stream_id和private_stream_id標(biāo)識的下一字幕存取單元。
緩沖控制模塊215的字幕讀取功能部分235(圖3)重新將在步驟S194從播放器控制模塊212提供的stream_id和private_stream_id分別設(shè)置到stream_id寄存器263和private_stream_id寄存器264。字幕讀取功能部分235分別讀取由重新設(shè)置到stream_id寄存器263和private_stream_id寄存器264的stream_id和private_stream_id標(biāo)識的下一字幕存取單元。
以上述方式,將正被再現(xiàn)的字幕流改變?yōu)榻酉聛碓佻F(xiàn)的另一字幕流。
接下來,參照圖34到圖38,將描述緩沖控制模塊215(圖3)的處理、對緩沖區(qū)215A的數(shù)據(jù)寫入處理和數(shù)據(jù)讀取處理。
如圖3所述,緩沖控制模塊215具有5個指針,用于從緩沖區(qū)215A讀取數(shù)據(jù),以及向緩沖區(qū)215A寫入數(shù)據(jù)。
換句話說,如圖34和圖35所示,緩沖控制模塊215具有存儲在數(shù)據(jù)開始指針存儲部分231中的數(shù)據(jù)開始指針、存儲在數(shù)據(jù)寫入指針存儲部分232中的數(shù)據(jù)寫入指針、存儲在視頻讀取指針存儲部分241中的視頻讀取指針、存儲在音頻讀取指針存儲部分251中的音頻讀取指針、以及存儲在字幕讀取指針存儲部分262中的字幕讀取指針。
在圖34和圖35中,省略了圖3中示出的視頻讀取功能部分233的stream_id寄存器242和au_information()寄存器243、音頻讀取功能部分234的stream_id寄存器252和private_stream_id寄存器253、字幕讀取功能部分235的字幕讀取功能標(biāo)志存儲部分261、stream_id寄存器263和private_stream_id寄存器264。
存儲在數(shù)據(jù)開始指針存儲部分231中的數(shù)據(jù)開始指針表示存儲在緩沖區(qū)215A中的(需要讀取并且尚未被讀取的)最舊的數(shù)據(jù)的位置。存儲在數(shù)據(jù)寫入指針存儲部分232中的數(shù)據(jù)寫入指針表示緩沖區(qū)215A中的數(shù)據(jù)的寫入位置。該位置是寫入最新數(shù)據(jù)的位置。
存儲在視頻讀取指針存儲部分241中的視頻讀取指針表示從緩沖區(qū)215A讀取的視頻流的位置。存儲在音頻讀取指針存儲部分251中的音頻讀取指針表示從緩沖區(qū)215A讀取的音頻流的位置。存儲在字幕讀取指針存儲部分251中的字幕讀取指針表示從緩沖區(qū)215A讀取的字幕流的位置。
如圖3所述,數(shù)據(jù)開始指針、數(shù)據(jù)寫入指針、視頻讀取指針、音頻讀取指針和字幕讀取指針在緩沖區(qū)215A中以順時(shí)針方向移動。
如圖35所示,根據(jù)本實(shí)施例,始終更新數(shù)據(jù)開始指針,使得它表示與視頻讀取指針、音頻讀取指針和字幕讀取指針的最舊數(shù)據(jù)位置相同的位置。在圖35中,音頻讀取指針表示視頻讀取指針、音頻讀取指針和字幕讀取指針中的最舊數(shù)據(jù)的位置。數(shù)據(jù)開始指針與音頻讀取指針匹配。
在具有數(shù)據(jù)開始指針、視頻讀取指針、音頻讀取指針和字幕讀取指針的緩沖控制模塊215中,當(dāng)從盤101讀取新數(shù)據(jù)以及將新數(shù)據(jù)寫入緩沖區(qū)215A時(shí),按照順時(shí)針方向更新數(shù)據(jù)寫入指針,使得數(shù)據(jù)寫入指針表示緊接在新寫入的數(shù)據(jù)之后的位置。
當(dāng)從緩沖區(qū)215A讀取視頻流、音頻流或字幕流時(shí),針對所讀取的數(shù)據(jù)量,按照順時(shí)針方向更新視頻讀取指針,音頻讀取指針或字幕讀取指針。所讀取的數(shù)據(jù)量是實(shí)際讀取的視頻數(shù)據(jù)、音頻數(shù)據(jù)或字幕數(shù)據(jù)以及插入被讀取的、并在讀取它們時(shí)被省略的數(shù)據(jù)中的另一個流的數(shù)據(jù)部分的和。
當(dāng)視頻讀取指針、音頻讀取指針或字幕讀取指針被更新時(shí),數(shù)據(jù)開始指針被更新,使得它表示由視頻讀取指針、音頻讀取指針或字幕讀取指針代表的最舊數(shù)據(jù)的位置。
緩沖控制模塊215控制緩沖區(qū)215A的數(shù)據(jù)寫入操作,使得數(shù)據(jù)寫入指針不會超前于數(shù)據(jù)開始指針。
除非數(shù)據(jù)寫入指針超前于數(shù)據(jù)開始指針,否則緩沖控制模塊215將從盤101讀取的數(shù)據(jù)寫入由數(shù)據(jù)寫入指針表示的緩沖區(qū)215A中的位置,并更新數(shù)據(jù)寫入指針。另一方面,如果數(shù)據(jù)寫入指針將要超前于數(shù)據(jù)開始指針,則緩沖控制模塊215使內(nèi)容數(shù)據(jù)提供模塊213停止從盤101讀取數(shù)據(jù),并停止將數(shù)據(jù)寫入緩沖區(qū)215A中。因此,可以防止緩沖控制模塊215上溢。
如上所述,對應(yīng)兩個指針,即數(shù)據(jù)開始指針和數(shù)據(jù)寫入指針的位置關(guān)系,將從盤101讀取的數(shù)據(jù)寫入緩沖區(qū)215A。
另一方面,緩沖控制模塊215控制緩沖區(qū)215A的數(shù)據(jù)讀取操作,使得視頻讀取指針、音頻讀取指針和字幕讀取指針、以及數(shù)據(jù)開始指針不會超前于數(shù)據(jù)寫入指針。
換句話說,除非視頻讀取指針、音頻讀取指針或字幕讀取指針超前于數(shù)據(jù)寫入指針,否則緩沖控制模塊215對應(yīng)于從視頻解碼器控制模塊216、音頻解碼器控制模塊217或字幕解碼器控制模塊218接收的請求,從由視頻讀取指針、音頻讀取指針或字幕讀取指針表示的緩沖區(qū)215A的位置讀取數(shù)據(jù),并更新視頻讀取指針、音頻讀取指針或字幕讀取指針、以及如果必要的話還有數(shù)據(jù)開始指針。另一方面,如果視頻讀取指針、音頻讀取指針或字幕讀取指針將要超前于數(shù)據(jù)寫入指針,則緩沖控制模塊215使視頻解碼器控制模塊216、音頻解碼器控制模塊217或字幕解碼器控制模塊218停止發(fā)送請求或等待,直到緩沖區(qū)215A存儲了足夠的數(shù)據(jù)為止。因此,可以防止緩沖區(qū)215A下溢。
因此,緩沖區(qū)215A將要提供給視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218的數(shù)據(jù),存儲在從由數(shù)據(jù)開始指針表示的位置到由數(shù)據(jù)寫入指針表示的位置的順時(shí)針方向的(圖34和圖35中的陰影)區(qū)域中。此外,視頻讀取指針、音頻讀取指針和字幕讀取指針存在于該區(qū)域中。
在上述情況中,更新數(shù)據(jù)開始指針,使得它表示由視頻讀取指針、音頻讀取指針和字幕讀取指針表示的最舊數(shù)據(jù)的位置??商鎿Q地,可以更新數(shù)據(jù)開始指針,使得它表示比最舊數(shù)據(jù)的位置早一預(yù)定時(shí)間(例如一秒)的數(shù)據(jù)的位置。
可以假設(shè),視頻讀取指針、音頻讀取指針和字幕讀取指針中的視頻讀取指針和音頻讀取指針表示最舊數(shù)據(jù)的位置。
因此,當(dāng)更新數(shù)據(jù)開始指針,使得它表示比由視頻讀取指針或音頻讀取指針表示的最舊數(shù)據(jù)的位置早例如一秒的數(shù)據(jù)的位置時(shí),如圖34所示,可以將比由視頻讀取指針或音頻讀取指針表示的最舊數(shù)據(jù)早一秒的數(shù)據(jù)存儲在緩沖區(qū)215A中。在圖34中,音頻讀取指針表示最舊數(shù)據(jù)的位置,而數(shù)據(jù)開始指針表示比最舊數(shù)據(jù)早一秒的數(shù)據(jù)的位置。
當(dāng)更新數(shù)據(jù)開始指針,使得它表示比最舊數(shù)據(jù)的位置早一秒的數(shù)據(jù)的位置時(shí),可以提高盤設(shè)備的響應(yīng)。
換句話說,如圖35所示,當(dāng)更新數(shù)據(jù)開始指針,使得它表示由音頻讀取指針表示的最舊數(shù)據(jù)的位置時(shí),如果發(fā)出了特定再現(xiàn)命令如反向再現(xiàn)命令,則需要從盤101重新讀取已經(jīng)從緩沖區(qū)215A讀取的數(shù)據(jù)。因此,在發(fā)出特定再現(xiàn)命令之后直到該特定再現(xiàn)操作被執(zhí)行為止,需要一些時(shí)間。
相反,當(dāng)更新數(shù)據(jù)開始指針,使得它表示比由音頻讀取指針表示的最舊數(shù)據(jù)的位置早一秒的數(shù)據(jù)的位置時(shí),如果發(fā)出了特定的再現(xiàn)命令如反向再現(xiàn)命令、并且開始該特定再現(xiàn)操作所必需的數(shù)據(jù)是比最舊數(shù)據(jù)早一秒并被存儲在緩沖區(qū)215A中的數(shù)據(jù),則可以迅速開始該特定再現(xiàn)操作,而無需從盤101中重新讀取數(shù)據(jù)。
當(dāng)更新數(shù)據(jù)開始指針,使得它表示比音頻讀取指針?biāo)硎镜淖钆f數(shù)據(jù)早一秒的數(shù)據(jù)的位置時(shí),開始特定再現(xiàn)操作所必需的數(shù)據(jù)可以不存儲在緩沖區(qū)215A中。在該情況下,從盤101重新讀取開始該特定再現(xiàn)操作所必需的數(shù)據(jù)。
接下來,將詳細(xì)描述從緩沖區(qū)215A中的視頻流、音頻流和字幕流的讀取操作。
如圖30示出的步驟S127所述,當(dāng)開始剪輯流文件的再現(xiàn)操作時(shí),緩沖控制模塊215初始化數(shù)據(jù)開始指針、數(shù)據(jù)寫入指針、視頻讀取指針、音頻讀取指針和字幕讀取指針,使得它們表示緩沖區(qū)215A中的相同位置。
當(dāng)從盤101讀取取存儲在剪輯流文件中的程序流(MPEG2系統(tǒng)程序流)、并將其提供給緩沖控制模塊215時(shí),它將該程序流存儲在緩沖區(qū)215A的數(shù)據(jù)寫入指針?biāo)硎镜奈恢谩4送?,按順時(shí)針方向更新數(shù)據(jù)寫入指針。
此外,緩沖控制模塊215(圖3)的視頻讀取功能部分233分析存儲在緩沖區(qū)215A中的程序流,對應(yīng)于從視頻解碼器控制模塊216接收的請求而從存儲在緩沖區(qū)215A中的程序流中提取(分離)視頻流(視頻存取單元),并將所提取的視頻流提供給視頻解碼器控制模塊216。
同樣,音頻讀取功能部分234分析存儲在緩沖區(qū)215A中的程序流,對應(yīng)于從音頻解碼器控制模塊217接收的請求而從存儲在緩沖區(qū)215A中的程序流中提取音頻流(音頻存取單元),并將該音頻流提供給音頻解碼器控制模塊217。字幕讀取功能部分235分析存儲在緩沖區(qū)215A中的程序流,對應(yīng)于從字幕解碼器控制模塊218接收的請求而從存儲在緩沖區(qū)215A中的程序流中提取字幕流(字幕存取單元),并將該字幕流提供給字幕解碼器控制模塊218。
接下來,將參考圖36示出的流程圖來詳細(xì)描述對視頻讀取功能部分233(圖3)的緩沖區(qū)215的視頻流讀取處理。
在步驟S211,視頻讀取功能部分233在存儲于緩沖區(qū)215A中的程序流搜索private_stream_2的PES_packet()。如圖20所示,在private_stream_2的PES_packet()中,stream_id為10111111B(=0xBF)。視頻讀取功能部分233搜索stream_id為10111111B的PES_packet()。
假設(shè)與存儲在剪輯流文件“00001.PS”中的程序流多路復(fù)用的基本流是要再現(xiàn)的基本流,當(dāng)從盤101讀取該程序流并將其存儲在緩沖區(qū)215A中時(shí),利用關(guān)于在剪輯流文件“00001.PS”的EP_map()(圖27)中描述的可解碼起始點(diǎn)的信息,將扇區(qū)305判定為再現(xiàn)開始位置。在圖30示出的步驟S128,指定作為再現(xiàn)起點(diǎn)的扇區(qū)305。視頻讀取功能部分233使操作系統(tǒng)201從剪輯流文件“00001.PS”讀取該程序流。
關(guān)于視頻流的EP_map()中描述的可解碼起點(diǎn)的信息表示緊接在真實(shí)可解碼起點(diǎn)之后的private_stream_2的PES_packet()的位置。
因此,在從盤101讀取存儲在剪輯流文件“00001.PS”中的程序流并將其存儲在緩沖區(qū)215A中之后,立即將private_stream_2的PES_packet()存儲在緩沖區(qū)215A中由數(shù)據(jù)開始指針和視頻讀取指針表示的位置處。
當(dāng)視頻讀取功能部分233在步驟S211發(fā)現(xiàn)private_stream_2的PES_packet()時(shí),流程前進(jìn)到步驟S212。在步驟S212,視頻讀取功能部分233從private_stream2_PES_payload()(圖23)中提取video_stream_id,其中所述private_stream2_PES_payload()是private_stream_2的PES_packet()的PES_packet_data_byte。在圖30示出的步驟S127,視頻讀取功能部分233確定video_stream_id是否與存儲在stream_id寄存器242(圖3)中的要再現(xiàn)的視頻流的stream_id相匹配。
當(dāng)步驟S212的確定結(jié)果表示在private_stream2_PES_payload()中描述的video_stream_id與存儲在stream_id寄存器242中的stream_id不匹配,即在步驟S211發(fā)現(xiàn)的private_stream_2的PES_packet()不在要再現(xiàn)的視頻流的可解碼起點(diǎn)處時(shí),流程返回步驟S211。在步驟S211,視頻讀取功能部分233在存儲于緩沖區(qū)215A的程序流中搜索private_stream_2的PES_packet()并重復(fù)相同的處理。
相反,當(dāng)步驟S212的確定結(jié)果表示在private_stream2_PES_payload()中描述的video_stream_id與存儲在stream_id寄存器242中的stream_id匹配,即在步驟S211發(fā)現(xiàn)的private_stream_2的PES_packet()處于要再現(xiàn)的視頻流的可解碼起點(diǎn)時(shí),流程前進(jìn)到步驟S213。在步驟S213,視頻讀取功能部分233從緩沖區(qū)215A讀取在private_stream_2的PES_packet()的private_stream2_PES_payload()中描述的au_information(),并將au_information()存儲到au_information()寄存器243(圖3)。隨后,流程前進(jìn)到步驟S214。
在步驟S214,視頻讀取功能部分233針對與存儲在stream_id寄存器242(圖3)中的stream_id匹配的private_stream_2的PES_packet()的大小,更新存儲在數(shù)據(jù)開始指針存儲部分231的視頻讀取指針。
換句話說,在剪輯流文件中,stream_id與video_stream_id匹配的視頻流(PES_packet())緊跟在private_stream_2的PES_packet()之后。因此,在步驟S214,視頻讀取功能部分233更新視頻讀取指針,使得它表示視頻流的可解碼起點(diǎn)的位置。
隨后,流程從S214前進(jìn)到步驟S215。視頻讀取功能部分233確定視頻解碼器控制模塊216是否發(fā)出了數(shù)據(jù)請求。當(dāng)步驟S215的確定結(jié)果表明視頻讀取功能部分233未發(fā)出數(shù)據(jù)請求時(shí),流程返回步驟S215。在步驟S215,視頻解碼器控制模塊216重復(fù)相同的處理。
相反,當(dāng)步驟S215的確定結(jié)果表明視頻解碼器控制模塊216發(fā)出了數(shù)據(jù)請求時(shí),流程前進(jìn)到步驟S216。在步驟S216,視頻讀取功能部分233從緩沖區(qū)215A中由視頻讀取指針表示的位置起分析程序流,從緩沖區(qū)215A讀取存儲在au_information()寄存器243中的au_information()的AU_length中描述的字節(jié)的數(shù)據(jù),即一個視頻存取單元,將該數(shù)據(jù)提供給視頻解碼器控制模塊216,并針對已從緩沖區(qū)215A讀取的一個視頻存取單元的大小更新視頻讀取指針。
換句話說,如圖24所述,au_information()描述number_of_access_unit,其中number_of_access_unit表示從包含au_information()的private_stream_2的PES_packet()到下一個private_stream_2的PES_packet()所包含的視頻存取單元(畫面)的數(shù)量。
此外,如圖24所示,au_information()描述pic_struct_copy、au_ref_flag和AU_length,作為關(guān)于由number_of_access_unit表示的視頻存取單元中每一個的信息。
如圖24所述,由于對應(yīng)于number_of_access_unit的au_information()中描述的AU_length的每一個表示由number_of_access_unit表示的、從private_stream_2的PES_packet()到下一個private_stream_2的PES_packet()的每個視頻存取單元的大小,因此視頻讀取功能部分233可以使用AU_length提取存取單元,而無需分析視頻流。
換句話說,當(dāng)提取了MPEG2視頻或MPEG4-AVC存取單元時(shí),有必要知道視頻流的結(jié)構(gòu)并隨后分析它。然而,存儲在記錄于盤101上的剪輯流文件中的程序流包含private_stream_2的PES_packet(),該P(yáng)ES_packet()描述表示存取單元大小的AU_length,并且視頻流的至少一個可解碼起點(diǎn)緊跟在其后。因此,視頻讀取功能部分233可以對應(yīng)于private_stream_2的PES_packet()中描述的AU_length,而從緩沖區(qū)215A讀取視頻存取單元(作為視頻存取單元的視頻流),并將該視頻存取單元提供給視頻解碼器控制模塊216,而無需分析該視頻流。
在步驟S216,當(dāng)視頻讀取功能部分233將視頻存取單元提供給視頻解碼器控制模塊216時(shí),視頻讀取功能部分233還將au_information()中描述的pic_struct_copy、au_ref_flag和AU_length以及為每個視頻存取單元添加的時(shí)間戳(PTS和DTS)作為關(guān)于視頻存取單元的信息提供給視頻解碼器控制模塊216。
在視頻讀取功能部分233從緩沖區(qū)215A讀取了一個視頻存取單元并將其提供給視頻解碼器控制模塊216后,流程前進(jìn)到步驟S217。在步驟S217,視頻讀取功能部分233確定它是否處理了由存儲在au_information()寄存器243中的au_information()(圖24)的number_of_access_unit所表示的的存取單元。
當(dāng)步驟S217處的確定結(jié)果表明視頻讀取功能部分233尚未處理由number_of_access_unit表示的存取單元、即視頻讀取功能部分233尚未從緩沖區(qū)215A中讀取由number_of_access_unit表示的存取單元并將其提供給視頻解碼器控制模塊216時(shí),流程返回步驟S215。在步驟S215,視頻讀取功能部分233重復(fù)相同處理。
相反,當(dāng)在步驟S217的確定結(jié)果表明視頻讀取功能部分233已經(jīng)處理了由number_of_access_unit表示的存取單元、即視頻讀取功能部分233已經(jīng)從緩沖區(qū)215A讀取了number_of_access_unit所表示的存取單元并將其提供給視頻解碼器控制模塊216時(shí),流程返回步驟S211。在步驟S211,視頻讀取功能部分233搜索private_stream_2的PES_packet()并重復(fù)相同處理。
接下來,將參考圖37示出的流程圖,詳細(xì)描述對音頻讀取功能部分234(圖3)的緩沖區(qū)215A的音頻流讀取處理。
在步驟S230,音頻讀取功能部分234確定要再現(xiàn)的音頻流的stream_id是否表示private_stream_1的PES_packet(),其中所述stream_id已在圖30示出的步驟S127被存儲在stream_id寄存器252(圖3)中。
當(dāng)步驟S230處的確定結(jié)果表明存儲在stream_id寄存器252中的stream_id不表示private_stream_1的PES_packet()時(shí),即如圖20所示,存儲在stream_id寄存器252中的stream_id是被分配給已被根據(jù)MPEG標(biāo)準(zhǔn)編碼的音頻流的110xxxxxB時(shí),流程前進(jìn)到步驟S231。在步驟S231,音頻讀取功能部分234在存儲于緩沖區(qū)215A中的程序流中搜索表示在MPEG音頻中定義的音頻幀的開頭的同步碼。由于該同步碼的位置是在音頻幀的開頭,因此音頻讀取功能部分234更新音頻讀取指針,使得它表示音頻幀的開頭的位置。隨后,流程從步驟S231前進(jìn)到步驟S232。在步驟S232,音頻讀取功能部分234對應(yīng)于由音頻讀取指針表示的位置,在存儲于緩沖區(qū)215A中的程序流中,搜索與存儲在stream_id寄存器252中的stream_id相匹配的PES_packet(),并獲取PES_packet()。隨后,流程前進(jìn)到步驟S233。
在步驟S233,音頻讀取功能部分234更新存儲在音頻讀取指針存儲部分251中的音頻讀取指針,使得音頻讀取指針表示在步驟S232發(fā)現(xiàn)的PES_packet()(圖16A和圖16B到圖18A和圖18B)的PES_packet_data_byte的開頭。隨后,流程前進(jìn)到步驟S237。
在步驟S237,音頻讀取功能部分234確定音頻解碼器控制模塊217是否發(fā)出了數(shù)據(jù)請求。當(dāng)步驟S237處的確定結(jié)果表明音頻解碼器控制模塊217未發(fā)出數(shù)據(jù)請求時(shí),流程返回步驟S237。在步驟S237,音頻讀取功能部分234重復(fù)相同的處理。
相反,當(dāng)步驟S237處的確定結(jié)果表明音頻解碼器控制模塊217發(fā)出了數(shù)據(jù)請求時(shí),流程前進(jìn)到步驟S238。在步驟S238,音頻讀取功能部分234從緩沖區(qū)215A中由音頻讀取指針表示的位置起分析程序流,從緩沖區(qū)215A讀取一個具有預(yù)定的固定長度的音頻存取單元,并將該音頻存取單元與添加到音頻存取單元的時(shí)間戳(PTS和DTS)一起提供給音頻解碼器控制模塊217。
音頻讀取功能部分234針對從緩沖區(qū)215A讀取的一個音頻存取單元的大小更新音頻讀取指針。隨后,流程返回步驟S237。在步驟S237,音頻讀取功能部分234重復(fù)相同的處理。
相反,當(dāng)步驟S230處的確定結(jié)果表明存儲在stream_id寄存器252中的stream_id表示private_stream_1的PES_packet()時(shí),即存儲在stream_id寄存器252中的stream_id是10111101B(=0xBD)并如圖20所述表示private_stream_1的PES_packet()時(shí),流程前進(jìn)到步驟S234。在步驟S234,音頻讀取功能部分234在存儲于緩沖區(qū)215A中的程序流中搜索private_stream_1的PES_packet(),并獲取PES_packet()。換句話說,音頻讀取功能部分234搜索stream_id為101111101B的PES_packet(),并獲取PES_packet()。
當(dāng)在步驟S234音頻讀取功能部分234發(fā)現(xiàn)了private_stream_1的PES_packet()時(shí),流程前進(jìn)到步驟S235。在步驟S235,音頻讀取功能部分234從private_stream1_PES_payload()(圖21)中提取private_stream_id,其中所述private_stream1_PES_payload()是private_stream_1的PES_packet()的PES_packet_data_byte,并確定private_stream_id是否與在圖30示出的步驟S127處存儲在private_stream_id寄存器253(圖3)中的、要再現(xiàn)的音頻流的private_stream_id匹配。
當(dāng)步驟S235處的確定結(jié)果表明在private_stream1_PES_payload()中描述的private_stream_id與存儲在private_stream_id寄存器253中的private_stream_id不匹配時(shí),即在步驟S234發(fā)現(xiàn)的private_stream_1的PES_packet()不是要再現(xiàn)的音頻流時(shí),流程返回步驟S234。在S234,音頻讀取功能部分234在存儲于緩沖區(qū)215A中的程序流中搜索private_stream_1的PES_packet()。隨后,音頻讀取功能部分234重復(fù)相同的處理。
另一方面,當(dāng)步驟S235處的確定結(jié)果表明在prrogram_stream_PES_payload()中描述的private_stream_id與存儲在private_stream_id寄存器253中的private_stream_id匹配時(shí),即在步驟S234發(fā)現(xiàn)的private_stream_1的PES_packet()是要再現(xiàn)的音頻流時(shí),流程前進(jìn)到步驟S236。在步驟S236,音頻讀取功能部分234從緩沖區(qū)215A讀取在private_stream_1的PES_packet()的private_stream1_PES_payload()(圖21)中描述的AU_locator,將緊接在AU_locator之后的位置和AU_locator表示的值相加,并獲得音頻存取單元的起始位置。
換句話說,如圖21所述,AU_locator表示基于緊接在AU_locator之后的位置的、存儲在private_stream1_PES_payload()的private_payload()中的音頻存取單元(或字幕存取單元)的開始位置。因此,通過將AU_locator的值與緊接在AU_locator之后的位置相加,可以獲得音頻存取單元的(絕對)開始位置。
在步驟S236,音頻讀取功能部分234更新存儲在音頻讀取指針存儲部分251中的音頻讀取指針,使得音頻讀取指針表示已獲取的音頻存取單元的開始位置。隨后,流程前進(jìn)到步驟S237。
在步驟S237,音頻讀取功能部分234確定音頻解碼器控制模塊217是否發(fā)出了數(shù)據(jù)請求。當(dāng)步驟S237處的確定結(jié)果表明音頻解碼器控制模塊217未發(fā)出數(shù)據(jù)請求時(shí),流程返回步驟S237。在步驟S237,音頻讀取功能部分234重復(fù)相同的處理。
相反,當(dāng)步驟S237處的確定結(jié)果表明音頻解碼器控制模塊217發(fā)出了數(shù)據(jù)請求時(shí),流程前進(jìn)到步驟S238。在步驟S238,音頻讀取功能部分234從緩沖區(qū)215A中由音頻讀取指針表示的位置起分析程序流,從緩沖區(qū)215A中讀取一個具有預(yù)定長度的音頻存取單元,并將該音頻存取單元與添加到該音頻存取單元的時(shí)間戳一起提供給音頻解碼器控制模塊217。
音頻讀取功能部分234針對從緩沖區(qū)215A讀取的一個音頻存取單元的大小更新音頻讀取指針。隨后,流程返回步驟S237。在步驟S237,音頻讀取功能部分234重復(fù)相同的處理。
接下來,將參考圖38示出的流程圖,詳細(xì)描述對字幕讀取功能部分235(圖3)的緩沖區(qū)215A的字幕流讀取處理。
在步驟S251,字幕讀取功能部分235確定已在圖30示出的步驟S127處被存儲在視頻解碼器控制模塊216中的字幕讀取功能標(biāo)志。當(dāng)步驟S251處的確定結(jié)果表明字幕讀取功能標(biāo)志為0、即與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件不包含字幕流并且已經(jīng)在圖30示出的步驟S127處將0設(shè)置到字幕讀取功能標(biāo)志存儲部分261時(shí),字幕讀取功能部分235不執(zhí)行任何處理。
相反,當(dāng)步驟S251處的確定結(jié)果表明字幕讀取功能標(biāo)志為1、即與要再現(xiàn)的基本流多路復(fù)用的剪輯流文件包含字幕流并且已經(jīng)在圖30示出的步驟S127處將1設(shè)置到字幕讀取功能標(biāo)志存儲部分261時(shí),流程前進(jìn)到步驟S252。在步驟S252,字幕讀取功能部分235在存儲于緩沖區(qū)215A中的程序流中,搜索與要再現(xiàn)的字幕流的stream_id相匹配的PES_packet(),其中所述stream_id已被存儲在stream_id寄存器263(圖3)中。
如圖30示出的步驟S127所述,要再現(xiàn)的字幕流的stream_id存儲在stream_id寄存器263(圖3)中。另一方面,如圖20所述,字幕流的stream_id為10111101B(=0xBD),其表示private_stream_1的PES_packet()。
因此,在步驟S252,字幕讀取功能部分235在存儲于緩沖區(qū)215A中的程序流中搜索private_stream_1的PES_packet()。
當(dāng)字幕讀取功能部分235搜索了private_stream_1的PES_packet()并獲取它時(shí),流程前進(jìn)到步驟S253。字幕讀取功能部分235從作為private_stream_1的PES_packet()的PES_packet_data_byte的private_stream_PES_payload()(圖21)中提取private_stream_id,并確定private_stream_id是否與要再現(xiàn)的字幕流的private_stream_id相匹配,其中要再現(xiàn)的字幕流的private_stream_id已在圖30示出的步驟S127被存儲在private_stream_id寄存器264(圖3)中。
當(dāng)步驟S253處的確定結(jié)果表明在private_stream_PES_payload()中描述的private_stream_id與存儲在private_stream_id寄存器264中的private_stream_id不匹配、即在步驟S252獲取的private_stream_1的PES_packet()不是要再現(xiàn)的字幕流時(shí),流程返回步驟S252。在步驟S252,字幕讀取功能部分235在存儲于緩沖區(qū)215A中的程序流中搜索另一個private_stream_1的PES_packet()。隨后,字幕讀取功能部分235重復(fù)相同的處理。
相反,當(dāng)步驟S253處的確定結(jié)果表明在private_stream1_PES_payload()中描述的private_stream_id與存儲在private_stream_id寄存器264中的private_stream_id匹配、即在步驟S252獲取的private_stream_1的PES_packet()是要再現(xiàn)的字幕流時(shí),流程前進(jìn)到步驟S254。在步驟S254,字幕讀取功能部分235從緩沖區(qū)215A讀取private_stream_1的PES_packet()的private_stream1_PES_payload()(圖21)中描述的AU_locator,將緊接在AU_locator之后的位置和AU_locator所表示的值相加,并獲得字幕存取單元的開始位置。
如圖21所述,AU_locator表示基于緊接著AU_locator之后的位置的、存儲在private_stream1_PES_payload()的private_payload()中的字幕存取單元(或音頻存取單元)的開始位置。因此,通過將AU_locator表示的值與緊接在AU_locator之后的位置相加,可以獲得字幕存取單元的(絕對)開始位置。
此外,在步驟S254,字幕讀取功能部分235更新存儲在字幕讀取指針存儲部分262中的字幕讀取指針,使得字幕讀取指針表示所獲取的字幕存取單元的開始位置。隨后,流程前進(jìn)到步驟S255。
在步驟S255,字幕讀取功能部分235確定字幕解碼器控制模塊218是否發(fā)出了數(shù)據(jù)請求。當(dāng)步驟S255處的確定結(jié)果表明字幕讀取功能部分235未發(fā)出數(shù)據(jù)請求時(shí),流程返回步驟S255。在步驟S255,字幕讀取功能部分235重復(fù)相同的處理。
相反,當(dāng)步驟S255處的確定結(jié)果表明字幕解碼器控制模塊218發(fā)出了數(shù)據(jù)請求時(shí),流程前進(jìn)到步驟S256。在步驟S256,字幕讀取功能部分235從緩沖區(qū)215A中由字幕讀取指針表示的位置起分析程序流,從緩沖區(qū)215A讀取在字幕存取單元的開頭處描述的大小的一個字幕存取單元,并將該字幕存取單元與添加到該字幕存取單元的時(shí)間戳一起提供給字幕解碼器控制模塊218。如圖2A和圖2B所示,字幕存取單元的大小在其開頭處描述。字幕讀取功能部分235,從緩沖區(qū)215A中由字幕讀取指針表示的位置起讀取所述大小的數(shù)據(jù),并將字幕存取單元與添加到該字幕存取單元的時(shí)間戳一起提供給字幕解碼器控制模塊218。
字幕讀取功能部分235針對從緩沖區(qū)215A讀取的一個字幕存取單元的大小,更新字幕讀取指針。隨后,流程返回步驟S255。在步驟S255,字幕讀取功能部分235重復(fù)相同的處理。
接下來,將描述對圖2A和圖2B示出的解碼控制模塊214的視頻數(shù)據(jù)和音頻數(shù)據(jù)的同步控制。
如圖30示出的步驟S130所述,解碼控制模塊214使視頻解碼器控制模塊216、音頻解碼器控制模塊217和字幕解碼器控制模塊218開始對其數(shù)據(jù)進(jìn)行解碼。如果必要的話,解碼控制模塊214使這些模塊以不同的定時(shí)開始對其數(shù)據(jù)進(jìn)行解碼,以使它們同步。例如,當(dāng)視頻解碼器116和音頻解碼器117執(zhí)行其解碼處理時(shí),它們可以以不同的定時(shí)輸出視頻數(shù)據(jù)和音頻數(shù)據(jù)。
因此,解碼控制模塊214執(zhí)行重新同步處理,該處理補(bǔ)償視頻數(shù)據(jù)和音頻數(shù)據(jù)的輸出定時(shí)的差異,并使視頻解碼器116和音頻解碼器117同步輸出視頻數(shù)據(jù)和音頻數(shù)據(jù)。
接下來,將參考圖39示出的流程圖來描述重新同步處理。
在重新同步處理中,在步驟S271,解碼控制模塊214確定從視頻解碼器控制模塊216輸出的視頻存取單元的時(shí)間戳和從音頻解碼器控制模塊217輸出的音頻存取單元的時(shí)間戳之間的差較大。
如圖30示出的步驟S129所述,無論視頻解碼器控制模塊216何時(shí)從緩沖控制模塊215接收到視頻存取單元,視頻解碼器控制模塊216都將該視頻存取單元的時(shí)間戳提供給解碼控制模塊214。同樣,無論音頻解碼器控制模塊217何時(shí)從緩沖控制模塊215接收到音頻存取單元時(shí),音頻解碼器控制模塊217將該音頻存取單元的時(shí)間戳提供給解碼控制模塊214。
在步驟S271,解碼控制模塊214在相同的定時(shí)(在視為相同定時(shí)的預(yù)定時(shí)間周期內(nèi)),比較從視頻解碼器控制模塊216和音頻解碼器控制模塊217接收的時(shí)間戳,并確定時(shí)間戳的差異是否較大。
當(dāng)步驟S271處的確定結(jié)果表明從視頻解碼器控制模塊216接收的視頻存取單元的時(shí)間戳和從音頻解碼器控制模塊217接收的音頻存取單元的時(shí)間戳之間的差異不大時(shí),即視頻存取單元的時(shí)間戳和音頻存取單元的時(shí)間戳之間的差異處于存取單元可視為同步的預(yù)定范圍例如兩個視頻幀(大約66毫秒)內(nèi)時(shí),流程返回步驟S271。在步驟S271,解碼控制模塊214確定(監(jiān)控)時(shí)間戳之間的差異。
相反,當(dāng)步驟S271處的確定結(jié)果表明從視頻解碼器控制模塊216接收的視頻存取單元的時(shí)間戳和從音頻解碼器控制模塊217接收的音頻存取單元的時(shí)間戳之間的差異較大時(shí),即所述差異不處于存取單元不可視為同步的預(yù)定范圍內(nèi)時(shí),流程前進(jìn)到步驟S272。在步驟S272,解碼控制模塊214對從視頻解碼器控制模塊216接收的視頻存取單元的時(shí)間戳和從音頻解碼器控制模塊217接收的音頻存取單元的時(shí)間戳進(jìn)行比較,以便確定視頻數(shù)據(jù)的輸出和音頻數(shù)據(jù)的輸出中的哪一個比另一個晚。
當(dāng)步驟S272處的確定結(jié)果表明視頻數(shù)據(jù)的輸出比音頻數(shù)據(jù)的輸出晚時(shí),流程前進(jìn)到步驟S273。在步驟S273,解碼控制模塊214使視頻解碼器控制模塊216停止解碼和輸出(顯示)視頻存取單元,即跳過對視頻存取單元的處理,以使處理前進(jìn)一個視頻存取單元。隨后,流程前進(jìn)到步驟S274。
在步驟S274,視頻解碼器控制模塊216從解碼控制模塊214接收跳過請求,并檢查從緩沖控制模塊215與視頻存取單元一同提供的au_ref_flag(圖24)。
換句話說,存儲在private_stream_2的PES_packet()的private_stream2_PES_payload()(圖23)中的au_information(圖24)包含作為關(guān)于存取單元的信息的au_ref_flag。如圖30示出的步驟S129和圖36示出的步驟S216所述,緩沖控制模塊215將視頻存取單元與其au_ref_flag一起提供給視頻解碼器控制模塊216。
在步驟S274,視頻解碼器控制模塊216檢查與存取單元一起提供的該存取單元的au_ref_flag。
隨后,流程從步驟S274前進(jìn)到步驟S275。在步驟S275,視頻解碼器控制模塊216對應(yīng)于從緩沖控制模塊215提供的視頻存取單元的au_ref_flag的檢查結(jié)果,確定視頻存取單元是否是非參考(non-reference)圖像,其中在對另一畫面解碼時(shí)不參考所述非參考圖像。
如圖24所示,視頻存取單元的au_ref_flag表示存取單元是否是參考圖像。當(dāng)存取單元是參考圖像時(shí),au_ref_flag為1。相反,當(dāng)存取單元不是參考圖像時(shí),au_ref_flag為0。
當(dāng)步驟S275處的確定結(jié)果表明從緩沖控制模塊215提供的視頻存取單元不是非參考圖像(其視頻存取單元)、即從緩沖控制模塊215提供的視頻存取單元是參考圖像時(shí),流程前進(jìn)到步驟S276。在步驟S276,視頻解碼器控制模塊216使視頻解碼器116正常地處理視頻存取單元。在視頻解碼器控制模塊216從緩沖控制模塊215接收到下一視頻存取單元之后,流程返回步驟S274。
相反,當(dāng)步驟S275處的確定結(jié)果表明從緩沖控制模塊215提供的視頻存取單元是非參考圖像時(shí),流程前進(jìn)到步驟S277。在步驟S277,視頻解碼器控制模塊216使視頻解碼器116跳過對該視頻存取單元的處理。在緩沖控制模塊215提供了下一視頻存取單元之后,流程返回步驟S271。
由于跳過了對視頻存取單元的處理,該處理前進(jìn)了幾乎一個視頻存取單元(減少了處理時(shí)間)。因此,比音頻數(shù)據(jù)輸出晚的視頻數(shù)據(jù)輸出被提前了。
相反,當(dāng)步驟S272處的確定結(jié)果表明視頻數(shù)據(jù)的輸出不比音頻數(shù)據(jù)的輸出晚、即音頻數(shù)據(jù)的輸出比視頻數(shù)據(jù)的輸出晚時(shí),流程前進(jìn)到步驟S278。在步驟S278,解碼控制模塊214將連續(xù)輸出命令輸出到視頻解碼器控制模塊216,以連續(xù)輸出對應(yīng)于正被解碼的視頻存取單元的視頻數(shù)據(jù),以便使視頻解碼器控制模塊216等待對下一視頻存取單元的處理。隨后,流程前進(jìn)到步驟S279。
在步驟S279,視頻解碼器控制模塊216從解碼控制模塊214接收連續(xù)輸出請求,并對應(yīng)于該連續(xù)輸出請求而將正被解碼的視頻存取單元的視頻數(shù)據(jù)連續(xù)輸出到圖形處理模塊219。在緩沖控制模塊215提供了下一視頻存取單元之后,流程前進(jìn)到步驟S271。
如上所述,解碼控制模塊214確定視頻數(shù)據(jù)的輸出是否比音頻數(shù)據(jù)的輸出晚。當(dāng)視頻數(shù)據(jù)的輸出比音頻數(shù)據(jù)的輸出晚時(shí),解碼控制模塊214使視頻解碼器控制模塊216跳過對一個存取單元的處理。視頻解碼器控制模塊216對應(yīng)于該存取單元的au_ref_flag而確定要跳過的存取單元是參考圖像還是非參考圖像。當(dāng)存取單元是非參考圖像時(shí),解碼控制模塊214使視頻解碼器116跳過對該存取單元的處理。因此,能夠容易地使視頻數(shù)據(jù)的輸出和音頻數(shù)據(jù)的輸出同步。
換句話說,當(dāng)要跳過的存取單元是參考圖像時(shí),需要對存取單元的視頻數(shù)據(jù)進(jìn)行解碼,使得在對另一存取單元進(jìn)行解碼時(shí)參考該視頻數(shù)據(jù)。因此,當(dāng)使視頻數(shù)據(jù)的輸出和音頻數(shù)據(jù)的輸出同步時(shí),如果跳過對參考圖像的存取單元的處理,則不能對參考該參考圖像的另一存取單元進(jìn)行解碼。因此,在顯示與音頻數(shù)據(jù)同步的視頻數(shù)據(jù)時(shí),噪聲出現(xiàn)。
因此,最好是跳過不是非參考圖像的存取單元。
另一方面,要在傳統(tǒng)的基本流中搜索作為非參考圖像的存取單元,需要對基本流進(jìn)行分析。對應(yīng)于例如MPEG4-AVC系統(tǒng)而編碼的基本流非常復(fù)雜。因此,但分析基本流時(shí),需要非常大的花費(fèi)。
相反,除了具有包含視頻存取單元的PES_packet_data_byte的PES_packet()(圖16A和圖16B到圖18A到圖18B)以外,記錄在盤101上的剪輯流文件中存儲的程序流還與包含private_stream2_PES_payload()(圖23)的private_stream_2的PES_packet()多路復(fù)用,其中所述private_stream2_PES_payload()是PES_packet_data_byte的擴(kuò)展。private_stream2_PES_payload()的au_information()(圖24)描述au_ref_flag,該au_ref_flag表示視頻存取單元是參考圖像還是非參考圖像。將au_ref_flag和對應(yīng)的視頻存取單元從緩沖控制模塊215提供給視頻解碼器控制模塊216。因此,視頻解碼器控制模塊216能夠通過檢查視頻存取單元的au_ref_flag,幾乎沒有額外開支地確定視頻存取單元是參考圖像還是非參考圖像。
接下來,將參考圖40示出的流程圖,描述基于在PlayListMark()(圖7)中所述的Mark()的標(biāo)記處理。
解碼控制模塊214始終檢查由內(nèi)置計(jì)時(shí)部分214A計(jì)數(shù)的當(dāng)前時(shí)刻。在步驟S301,解碼控制模塊214確定當(dāng)前時(shí)刻是否與在PlayListMark()(圖7)中描述的任何Mark()的mark_time_stamp相匹配。
如圖30示出的步驟S124所述,當(dāng)播放器控制模塊212再現(xiàn)圖25中示出的第一PlayList#0的第一PlayItem#0時(shí),播放器控制模塊212識別出在圖28的上部表中的PlayListMark()中包含的7個Mark()中的4個Mark()即第一到第四Mark()屬于PlayList#0的第一PlayItem#0,并將這4個Mark()的mark_time_stamp{180090}、{5580090}、{10980090}和{16380090},連同表明mark_time_stamp所表示的時(shí)間屬性是“標(biāo)記處理”的信息一起提供給解碼控制模塊214。
在步驟S301,解碼控制模塊214確定從播放器控制模塊212提供的、具有“標(biāo)記處理”屬性的4個時(shí)刻(mark_time_stamp)中哪一個與當(dāng)前時(shí)刻匹配。
當(dāng)步驟S301處的確定結(jié)果表明當(dāng)前時(shí)刻與任何具有“標(biāo)記處理”屬性的時(shí)刻都不匹配時(shí),流程返回步驟S301。在步驟S301,解碼控制模塊214重復(fù)相同的處理。
相反,當(dāng)步驟S301處的確定結(jié)果表明當(dāng)前時(shí)刻與具有“標(biāo)記處理”屬性的4個時(shí)刻之一匹配時(shí),解碼控制模塊214將表示當(dāng)前時(shí)刻變?yōu)榫哂小皹?biāo)記處理”屬性的時(shí)刻的消息、連同所匹配的具有“標(biāo)記處理”屬性的時(shí)刻一起提供給播放器控制模塊212。然后,流程前進(jìn)到步驟S302。
在步驟S302,播放器控制模塊212從解碼控制模塊214接收表示當(dāng)前時(shí)刻變?yōu)榫哂小皹?biāo)記處理”屬性的時(shí)刻的消息、和所匹配的具有“標(biāo)記處理”屬性的時(shí)刻,并將mark_time_stamp與當(dāng)前時(shí)刻相匹配的Mark()識別為對于標(biāo)記處理要處理的Mark()(在下文中,該Mark()有時(shí)稱為目標(biāo)標(biāo)記)。
換句話說,播放器控制模塊212識別出正被再現(xiàn)的PlayList()的PlayItem()。通過參考具有PlayList()、PlayItem()和所匹配的具有“標(biāo)記處理”屬性的時(shí)刻(mark_time_stamp)(在下文中,該時(shí)刻有時(shí)稱為標(biāo)記時(shí)刻)的“PLAYLIST.DAT”文件(圖5)的PlayListMark()(圖7),播放器控制模塊212識別目標(biāo)標(biāo)記。
具體地說,假設(shè)要再現(xiàn)圖25中示出的第一PlayList#0的第一PlayItem#0,則播放器控制模塊212識別出標(biāo)記時(shí)刻是4個Mark()中的任意一個的mark_time_stamp,其中這4個Mark()是在圖28示出的上部表中的PlayListMark()中包含的7個Mark()中的第一到第四Mark()。
當(dāng)從解碼控制模塊214提供給播放器控制模塊212的標(biāo)記時(shí)刻為例如16380090時(shí),播放器控制模塊212將4個Mark()中mark_time_stamp與標(biāo)記時(shí)刻16380090相匹配的第四Mark()識別為目標(biāo)標(biāo)記,其中這4個Mark()是在圖28示出的上部表中的PlayListMark()中包含的第一到第四Mark()。
當(dāng)播放器控制模塊212識別出目標(biāo)標(biāo)記時(shí),流程從步驟S302前進(jìn)到步驟S303。在步驟S303,播放器控制模塊212確定目標(biāo)標(biāo)記是否描述標(biāo)識基本流的entry_ES_stream_id和entry_ES_private_stream_id(圖7)。
當(dāng)步驟S303處的確定結(jié)果表明目標(biāo)標(biāo)記沒有描述標(biāo)識基本流的entry_ES_stream_id和entry_ES_private_stream_id(圖7)、即entry_ES_stream_id和entry_ES_private_stream_id兩者都是0x00時(shí),流程跳過步驟S304而前進(jìn)到步驟S305。在步驟S305,解碼控制模塊214執(zhí)行對目標(biāo)標(biāo)記的處理。
相反,當(dāng)步驟S303處的確定結(jié)果表明目標(biāo)標(biāo)記描述了標(biāo)識基本流的entry_ES_stream_id和entry_ES_private_stream_id(圖7)時(shí),流程前進(jìn)到步驟S304。在步驟S304,播放器控制模塊212確定正被再現(xiàn)的基本流是否包含由entry_ES_stream_id以及如果必要的話還有entry_ES_private_stream_id標(biāo)識的基本流。
當(dāng)步驟S304處的確定結(jié)果表明正被再現(xiàn)的基本流不包含由目標(biāo)標(biāo)記的entry_ES_stream_id和entry_ES_private_stream_id標(biāo)識的基本流時(shí),流程返回步驟S301。換句話說,當(dāng)沒有再現(xiàn)由目標(biāo)標(biāo)記的entry_ES_stream_id和entry_ES_private_stream_id標(biāo)識的基本流時(shí),忽略該目標(biāo)標(biāo)記。
相反,當(dāng)步驟S304處的確定結(jié)果表明正被再現(xiàn)的基本流包含由目標(biāo)標(biāo)記的entry_ES_stream_id和entry_ES_private_stream_id標(biāo)識的基本流時(shí),即,正在再現(xiàn)由目標(biāo)標(biāo)記的entry_ES_stream_id和entry_ES_private_stream_id所標(biāo)識的基本流時(shí),確定該目標(biāo)標(biāo)記有效。隨后,流程前進(jìn)到步驟S305。在步驟S305,播放器控制模塊212執(zhí)行對該目標(biāo)標(biāo)記的處理。
換句話說,在步驟S305,通過參考目標(biāo)標(biāo)記的mark_type(圖7),播放器控制模塊212確定該目標(biāo)標(biāo)記。
當(dāng)步驟S305處的確定結(jié)果表明目標(biāo)標(biāo)記是章標(biāo)記或索引標(biāo)記、即目標(biāo)標(biāo)記的mark_type是“章”或“索引”時(shí),流程前進(jìn)到步驟S306。在步驟S306,播放器控制模塊212使圖形處理模塊219用該目標(biāo)標(biāo)記的章編號或索引編號來更新章編號或索引編號。隨后,流程返回到步驟S301。
當(dāng)步驟S305處的確定結(jié)果表明目標(biāo)標(biāo)記是事件標(biāo)記、即目標(biāo)標(biāo)記的mark_type是“事件”時(shí),流程前進(jìn)到步驟S307。在步驟S307,播放器控制模塊212向腳本控制模塊211通知表示事件已發(fā)生的事件消息和該目標(biāo)標(biāo)記的mark_data。隨后,流程前進(jìn)到步驟S308。
在步驟S308,腳本控制模塊211從播放器控制模塊212接收事件消息和mark_data,并對應(yīng)于事件消息的中斷請求而執(zhí)行具有mark_data的自變量的“SCRIPT.DAT”文件中描述的處理序列。隨后,流程返回步驟S301。
換句話說,腳本控制模塊211執(zhí)行對應(yīng)于mark_data的處理。
具體地說,在圖28示出的下部表內(nèi)的PlayList#1的PlayListMark()中,第二Mark()(Mark#1)和第三Mark()(Mark#2)中每一個的mark_type是“事件”,并且Mark#1的mark_data不同于Mark#2的mark_data。
當(dāng)腳本控制模塊211接收到對應(yīng)于第二Mark()的事件消息和對應(yīng)于第三Mark()的事件消息時(shí),腳本控制模塊211利用相同的事件句柄(中斷處理例程)來執(zhí)行對應(yīng)于所接收的事件消息的處理。腳本控制模塊211檢查與事件消息一起提供的mark_data,并執(zhí)行對應(yīng)于mark_data的處理。
具體地說,當(dāng)mark_data是例如1時(shí),腳本控制模塊211控制圖形處理模塊219顯示第一類型圖標(biāo)。當(dāng)mark_data是例如2時(shí),腳本控制模塊211控制圖形處理模塊219顯示第二類型圖標(biāo)。
mark_data不限于1和2。此外,對應(yīng)于mark_data的處理并不限于顯示簡單的圖標(biāo)。
換句話說,當(dāng)mark_data在從3到18的范圍內(nèi)時(shí),腳本控制模塊211控制圖形處理模塊219以對應(yīng)于從mark_data減去2的值(從1到16的范圍內(nèi)的值)的亮度顯示第一類型圖標(biāo)。另一方面,當(dāng)mark_data在從19到34的范圍內(nèi)時(shí),腳本控制模塊211控制圖形處理模塊219以對應(yīng)于從mark_data)減去18的值(從1到16的范圍內(nèi)的值)的亮度顯示第二類型圖標(biāo)。
當(dāng)用戶操作的控制器連接到輸入接口115(圖1)、并且該控制器具有振動馬達(dá)時(shí),如果mark_data的值在從35到42的范圍內(nèi),則可以在對應(yīng)于從mark_data減去34的值(從1到8的范圍內(nèi)的值)的操作時(shí)間周期內(nèi),驅(qū)動該振動馬達(dá),其中所述振動馬達(dá)是帶有安裝在馬達(dá)軸(shaft)上的偏心錘(eccentricweight)的直流(DC)馬達(dá)、并在馬達(dá)被驅(qū)動時(shí)發(fā)生振動。
mark_data是數(shù)值??梢杂媚_本控制模塊211執(zhí)行的腳本程序來描述mark_data的使用和算法。因此,可以根據(jù)預(yù)定規(guī)則或者由盤101的制造商或提供記錄在盤101上的數(shù)據(jù)的內(nèi)容提供商指定的原始規(guī)則來使用mark_data。
在當(dāng)前時(shí)刻與具有“標(biāo)記處理”屬性的時(shí)刻相匹配時(shí),從標(biāo)記時(shí)刻中識別目標(biāo)標(biāo)記,其中所述標(biāo)記時(shí)刻是具有“標(biāo)記處理”屬性的時(shí)刻。當(dāng)目標(biāo)標(biāo)記沒有描述標(biāo)識基本流的entry_ES_stream_id和entry_ES_private_stream_id時(shí),執(zhí)行對應(yīng)于目標(biāo)標(biāo)記的mark_type的處理。即使目標(biāo)標(biāo)記描述標(biāo)識基本流的entry_ES_stream_id和entry_ES_private_stream_id,當(dāng)再現(xiàn)entry_ES_stream_id和entry_ES private_stream_id標(biāo)識的基本流時(shí),執(zhí)行對應(yīng)于目標(biāo)標(biāo)記的mark_type的處理。
當(dāng)再現(xiàn)圖25示出的第二PlayList#1時(shí),執(zhí)行以下標(biāo)記處理。
換句話說,如圖28示出的下部表中示出,第二PlayList#1的PlayListMark()描述第一Mark()(Mark#0)、第二Mark()(Mark#1)和第三Mark()(Mark#2),其mark_time_stamp分別為90000、27090000和27540000。
此外,由于圖28示出的下部表中的PlayListMark()的第二Mark()和第三Mark()的entry_ES_stream_id描述0xE0和0xE1,因此第二Mark()和第三Mark()分別與由值為0xE0和0xE1的stream_id標(biāo)識的基本流相關(guān)聯(lián)。
如圖25所示,第二PlayList#1僅描述一個PlayItem()(PlayItem#0)。利用PlayItem#0,再現(xiàn)剪輯流文件“00003.PS”。如圖26A和26B示出的對應(yīng)于剪輯流文件“00003.PS”的剪輯信息文件“00003.CLP”所述,剪輯流文件“00003.PS”與三個基本流多路復(fù)用,其中這三個基本流是由值為0xE0的stream_id標(biāo)識的視頻流stream#0、由值為0xE1的stream_id標(biāo)識的視頻流stream#1、由值為0x00的private_stream_id標(biāo)識的音頻流stream#2。
因此,圖28示出的下部表中的PlayListMark()的第二Mark()與stream_id為0xE0的視頻流文件stream#0相關(guān)聯(lián),其中該視頻流文件與剪輯流文件“00003.PS”多路復(fù)用。第三Mark()與stream_id為0xE1的視頻流stream#1相關(guān)聯(lián),其中該視頻流與剪輯流文件“00003.PS”多路復(fù)用。
當(dāng)再現(xiàn)圖25示出的第二PlayItem#1的PlayItem#0時(shí),如圖30示出的步驟S124所述,播放器控制模塊212識別出圖28示出的下部表中的PlayListMark()中包含的3個Mark()屬于PlayList#1的PlayItem#0,并將作為3個Mark()的mark_time_stamp的{90000}、{27090000}和{27540000}與表示該時(shí)刻具有“標(biāo)記處理”屬性的信息一起提供給解碼控制模塊214。
在標(biāo)記處理中,在再現(xiàn)PlayList#1的PlayItem#0時(shí),解碼控制模塊214始終確定時(shí)刻{90000}、{27090000}和{27540000}中哪一個與由計(jì)時(shí)部分214A計(jì)數(shù)的當(dāng)前時(shí)刻相匹配(在步驟S301)。在當(dāng)前時(shí)刻與具有“標(biāo)記處理”屬性的時(shí)刻相匹配時(shí),解碼控制模塊214將與當(dāng)前時(shí)刻匹配、作為具有“標(biāo)記處理”屬性的時(shí)刻的標(biāo)記時(shí)刻,與表示當(dāng)前時(shí)刻變?yōu)榫哂小皹?biāo)記處理”屬性的時(shí)刻的消息一起提供給播放器控制模塊212。
在當(dāng)前時(shí)刻與具有“標(biāo)記處理”屬性的時(shí)刻{90000}、{27090000}和{27540000}中的27090000相匹配時(shí),解碼控制模塊214將具有“標(biāo)記處理”屬性的標(biāo)記時(shí)刻27090000,與表示當(dāng)前時(shí)刻變?yōu)榫哂小皹?biāo)記處理”屬性的時(shí)刻的消息一起提供給播放器控制模塊212。
播放器控制模塊212識別出正在再現(xiàn)PlayList#1的PlayItem#0。播放器控制模塊212將作為3個Mark()的mark_time_stamp的90000、27090000和27540000與作為從解碼控制模塊214提供的標(biāo)記時(shí)刻的27090000相比較,并識別出其mark_time_stamp與作為標(biāo)記時(shí)刻的27090000相匹配的Mark(),即圖28示出的下部表中的PlayListMark()內(nèi)描述的第二Mark()(Mark#1)是目標(biāo)標(biāo)記(在步驟S302),其中所述3個Mark()屬于圖28示出的下部表中的PlayListMark()內(nèi)描述的Mark()的PlayItem#0。
在圖28示出的下部表中的PlayListMark()內(nèi)描述的、作為目標(biāo)標(biāo)記的第二Mark()中,entry_ES_stream_id為0xE0。如上所述,值為0xE0的entry_ES_stream_id表示stream_id為0xE0的、與剪輯流文件“00003.PS”多路復(fù)用的視頻流stream#0(圖26A和圖26B)。播放器控制模塊212確定正被再現(xiàn)的基本流是否包含視頻流stream#0(步驟S303和S304)。
當(dāng)正被再現(xiàn)的基本流不包含視頻流stream#0時(shí),播放器控制模塊212忽略目標(biāo)標(biāo)記(在步驟S304)。
相反,當(dāng)正被再現(xiàn)的基本流包含視頻流stream#0時(shí),播放器控制模塊212將目標(biāo)標(biāo)記視為有效,并執(zhí)行對應(yīng)于目標(biāo)標(biāo)記的處理(在步驟S305到S308)。
在該情況下,在圖28示出的下部表中的PlayListMark()內(nèi)描述的、作為目標(biāo)標(biāo)記的第二Mark()中,mark_type為“事件”。因此,第二Mark()是事件標(biāo)記。播放器控制模塊212將表示事件已發(fā)生的事件信息和該目標(biāo)標(biāo)記的mark_data提供給腳本控制模塊211(在步驟S305和S307)。腳本控制模塊211對應(yīng)于從播放器控制模塊212接收的事件消息的中斷請求,執(zhí)行在具有mark_data的自變量的“SCRIPT.DAT”中描述的處理序列(在步驟S308)。
如上所述,在標(biāo)記處理中,播放器控制模塊確定當(dāng)前時(shí)刻是否與mark_time_stamp相匹配,其中,當(dāng)前時(shí)刻是對應(yīng)于mark_time_stamp、表示Mark()類型的mark_type和包含PlayListMark()(圖7)的PlayList()而再現(xiàn)的剪輯流文件的再現(xiàn)時(shí)刻,其中所述mark_time_stamp表示PlayList()的時(shí)間軸上的一個再現(xiàn)時(shí)刻,所述PlayListMark()不包含Mark()或包含具有作為事件標(biāo)記自變量的mark_data的多于一個Mark()。在當(dāng)前時(shí)刻與mark_time_stamp匹配時(shí),播放器控制模塊212將具有等于標(biāo)記時(shí)刻的mark_time_stamp的Mark()識別為目標(biāo)標(biāo)記,其中所述標(biāo)記時(shí)刻是當(dāng)前時(shí)刻。當(dāng)具有目標(biāo)標(biāo)記的mark_type表示事件發(fā)生的類型、即目標(biāo)標(biāo)記是事件標(biāo)記時(shí),提供目標(biāo)標(biāo)記所具有的mark_type和事件消息。播放器控制模塊212執(zhí)行對應(yīng)于mark_data的處理。因此,播放器控制模塊212可以在剪輯流文件的再現(xiàn)時(shí)刻內(nèi)執(zhí)行對應(yīng)于mark_data的處理。
接下來,將參考圖41示出的流程圖,詳細(xì)描述圖30示出的步驟S126處執(zhí)行的輸出屬性控制處理。
如圖30示出的步驟S126所述,播放器控制模塊212檢查表示DynamicInfo()(圖13)的數(shù)量的number_of_DynamicInfo(圖10),其中DynamicInfo()描述要再現(xiàn)的至少一個基本流,即在步驟S125被判定為要再現(xiàn)的至少一個基本流的輸出屬性。
當(dāng)要再現(xiàn)的至少一個基本流的每一個的number_of_DynamicInfo為0時(shí),播放器控制模塊212不執(zhí)行任何處理。
相反,當(dāng)要播放的基本流的number_of_DynamicInfo不為0時(shí),播放器控制模塊212執(zhí)行對應(yīng)于圖41示出的流程圖的輸出屬性控制處理。
因此,當(dāng)記錄在盤101上的3個剪輯信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”如圖26A和圖26B所示,并且再現(xiàn)對應(yīng)于剪輯信息文件“00001.CLP”的剪輯流文件“00001.PS”(再現(xiàn)剪輯流文件“00001.PS”的第一PlayList#0的第一PlayItem#0)時(shí),由于所有四個基本流stream#0到stream#3的number_of_DynamicInfo都為0,因此播放器控制模塊212不執(zhí)行輸出屬性控制處理。
同樣,當(dāng)再現(xiàn)對應(yīng)于剪輯信息文件“00002.CLP”的剪輯流文件“00002.PS”(再現(xiàn)剪輯流文件“00002.PS”的第一PlayList#0的第二PlayItem#1)時(shí),由于與剪輯流文件“00002.PS”多路復(fù)用的四個基本流stream#0到stream#3的number_of_DynamicInfo都為0,因此播放器控制模塊212不執(zhí)行輸出屬性控制處理。
相反,當(dāng)再現(xiàn)對應(yīng)于剪輯信息文件“00003.CLP”的剪輯流文件“00003.PS”(再現(xiàn)剪輯流文件“00003.PS”的第二PlayList#1的PlayItem#0)時(shí),由于作為第一基本流的視頻流stream#0、和作為第三基本流的音頻流stream#2的number_of_DynamicInfo分別為2和3,因此播放器控制模塊212執(zhí)行輸出屬性控制處理。
換句話說,在輸出屬性控制處理中,在步驟S320,播放器控制模塊212將在對應(yīng)于要再現(xiàn)的剪輯流文件的剪輯信息文件Clip()(圖10)中描述的pts_change_point與表示具有“DynamicInfo()處理”屬性的時(shí)刻的信息一起提供給解碼控制模塊214。解碼控制模塊214從播放器控制模塊212接收pts_change_point,其中所述pts_change_point是具有“DynamicInfo()處理”屬性的時(shí)刻。然后,流程前進(jìn)到步驟S321。
在步驟S321,解碼控制模塊214確定由計(jì)時(shí)部分214A計(jì)數(shù)的當(dāng)前時(shí)刻是否與pts_change_point中的一個相匹配,其中所述pts_change_point是具有“DynamicInfo()處理”屬性的時(shí)刻。當(dāng)步驟S321處的確定結(jié)果表明當(dāng)前時(shí)刻與pts_change_point中的任何一個都不匹配時(shí),流程返回步驟S321。
相反,當(dāng)步驟S321處的確定結(jié)果表明當(dāng)前時(shí)刻與具有“DynamicInfo()處理”屬性的任一時(shí)刻相匹配時(shí),解碼控制模塊214將表示當(dāng)前時(shí)刻變?yōu)榫哂小癉ynamicInfo()處理”屬性的時(shí)刻的消息、和所匹配的具有“DynamicInfo()處理”屬性的時(shí)刻(在下文中有時(shí)稱為DynamicInfo時(shí)刻)提供給播放器控制模塊212。然后,流程前進(jìn)到步驟S322。
在步驟S322,播放器控制模塊212從解碼控制模塊214接收表示當(dāng)前時(shí)刻變?yōu)榫哂小癉ynamicInfo()處理”屬性的時(shí)刻的消息以及DynamicInfo時(shí)刻,并將和與該DynamicInfo時(shí)刻相匹配的pts_change_point(圖10)配對的DynamicInfo()識別為目標(biāo)DynamicInfo()。然后,流程前進(jìn)到步驟S323。
在步驟S323,播放器控制模塊212將在作為目標(biāo)DynamicInfo()的DynamicInfo()(圖13)中描述的輸出屬性提供給圖形處理模塊219或音頻輸出模塊221。然后,流程前進(jìn)到步驟S324。
在步驟S324,對應(yīng)于在步驟S323從播放器控制模塊212提供的輸出屬性,圖形處理模塊219或音頻輸出模塊221開始控制視頻數(shù)據(jù)或音頻數(shù)據(jù)的輸出。然后,流程返回S321。
因此,對應(yīng)于例如作為輸出屬性(顯示模式)而描述的高寬比,輸出視頻數(shù)據(jù)。可替換地,對應(yīng)于例如作為輸出屬性而描述的立體聲模式或雙聲道(雙語)模式,輸出音頻數(shù)據(jù)。
接下來,將參考圖42詳細(xì)描述輸出屬性控制處理。
圖42示出了圖26A和圖26B示出的剪輯信息文件“00003.CLP”中描述的一對pts_change_point和DynamicInfo()(圖10)。
如上所述,在圖26A和圖26B示出的剪輯信息文件“00003.CLP”中,視頻流stream#0和音頻流stream#2的number_of_DynamicInfo分別為2和3,其中,所述視頻流stream#0和音頻流stream#2是與剪輯流文件“00003.PS”多路復(fù)用的三個基本流stream#0至stream#2中的第一基本流和第三基本流。
因此,剪輯信息文件“00003.CLP”描述了剪輯流文件“00003.PS”的第一視頻流stream#0的兩組pts_change_point和DynamicInfo()、以及剪輯流文件“00003.PS”的第三音頻流stream#2的三組pts_change_point和DynamicInfo()。
圖42所示的上部表示出了剪輯流文件“00003.PS”的第一視頻流stream#0的兩組pts_change_point和DynamicInfo()。圖42所示的下部表示出了剪輯流文件“00003.PS”的第三音頻流stream#2的三組pts_change_point和DynamicInfo()。
除了第一視頻流stream#0的這兩組pts_change_point和DynamicInfo()之外,圖42所示的上部表還表示了圖26A和圖26B示出的第一視頻stream#0的剪輯信息文件“00003.CLP”的stream_id(=0xE0)、private_stream_id(=0x00)和number_of_DynamicInfo(=2)。同樣,除了第三音頻流stream#2的三組pts_change_point和DynamicInfo()之外,圖42所示的下部表還表示了圖26A和圖26B示出的音頻流stream#2的剪輯信息文件“00003.CLP”的stream_id(=0xBD)、private_stream_id(=0x00)和number_of_DynamicInfo(=3)。
在圖42示出的上部表中,視頻流stream#0的兩組pts_change_point和DynamicInfo()中的第一組的pts_change_point為90000,并且其DynamicInfo()的display_aspect_ratio(圖13)為“4∶3”。第二組的pts_change_point為54090000,并且其DynamicInfo()的display_aspect_ratio為“16∶9”。
在圖42示出的下部表中,音頻流stream#2的三組pts_change_point和DynamicInfo()中的第一組的pts_change_point為90000,并且其DynamicInfo()的channel_assignment(圖13)為“雙聲道(Dual)”。第二組的pts_change_point為27090000,并且其DynamicInfo()的channel_assignment為“立體聲(Stereo)”。第三組的pts_change_point為32490000,并且其DynamicInfo()的channel_assignment為“雙聲道”。
現(xiàn)在,假設(shè)在圖30示出的步驟S125,將由值為0xE0的stream_id標(biāo)識的第一視頻流stream#0、以及由值為0xBD的stream_id和值為0x00的private_stream_id標(biāo)識的第三音頻流stream#2判定為要從剪輯流文件“00003.PS”的流。
在該情況下,播放器控制模塊212檢查圖42示出的上部表中的由值為0xE0的stream_id標(biāo)識的視頻流stream#0的兩組pts_change_point和DynamicInfo()、以及圖42示出的下部表中的由值為0xBD的stream_id和值為0x00的private_stream_id標(biāo)識的音頻流stream#2的三組pts_change_point和DynamicInfo(),并識別初始值。
換句話說,由值為0xE0的stream_id標(biāo)識的視頻流stream#0的、圖42示出的上部表中的兩組pts_change_point和DynamicInfo()中的第一組的pts_change_point為90000。90000與在presentation_start_time中描述的90000相匹配,其中presentation_start_time表示圖26A和圖26B示出的剪輯信息文件“00003.CLP”中的剪輯流文件“00003.PS”的開始時(shí)刻,其中所述剪輯信息文件“00003.CLP”對應(yīng)于視頻流stream#0與之多路復(fù)用的剪輯流文件“00003.PS”。
同樣,圖42示出的下部表中的、由值為0xBD的stream_id和值為0x00的private_stream_id標(biāo)識的音頻流stream#2的三組pts_change_point和DynamicInfo()中的第一組的pts_change_point為90000。90000與在presentation_start_time中描述的90000相匹配,其中presentation_start_time表示圖26A和圖26B示出的剪輯信息文件“00003.CLP”中的剪輯流文件“00003.PS”的開始時(shí)刻,其中所述剪輯信息文件“00003.CLP”對應(yīng)于音頻流stream#2與之多路復(fù)用的剪輯流文件“00003.PS”。
播放器控制模塊212將與presentation_start_time中描述的90000相匹配的pts_change_point識別為初始值,其中presentation_start_time表示剪輯流文件“00003.PS”的開始時(shí)刻。因此,播放器控制模塊212將圖42示出的上部表中的兩組pts_change_point和DynamicInfo()的第一組的pts_change_point、和圖42示出的下部表中的三組pts_change_point和DynamicInfo()的第一組的pts_change_point識別為初始值。
在再現(xiàn)剪輯流文件“00003.PS”之前,播放器控制模塊212指定基本流的輸出屬性(圖30中示出的步驟S126),其中所述基本流對應(yīng)于與被識別為初始值的pts_change_point配對的DynamicInfp()。
對于圖42示出的上部表中、由值為0xE0的stream_id標(biāo)識的視頻流stream#0,與pts_change_point配對的DynamicInfo()的display_aspect_ratio為“4∶3”,其中所述pts_change_point是作為初始值的90000。在該情況下,播放器控制模塊212采用表示display_aspect_ratio為“4∶3”的信息、即關(guān)于表示視頻流stream#0是高寬比為4∶3的視頻數(shù)據(jù)的輸出屬性的信息,控制圖形處理模塊219。
對于圖42示出的下部表中、由值為0xBD的stream_id和值為0x00的private_stream_id標(biāo)識的音頻流stream#2,與pts_change_point配對的DynamicInfo()的channel_assignment為“雙聲道”,其中所述pts_change_point是作為初始值的90000。在該情況下,播放器控制模塊212將表示channel_assignment為“雙聲道”的信息、即關(guān)于表示音頻流stream#2是雙聲道音頻數(shù)據(jù)的輸出屬性的信息提供給音頻輸出模塊221。
在圖30示出的步驟S126,播放器控制模塊212對作為初始值的pts_change_point執(zhí)行輸出屬性控制處理。
隨后,播放器控制模塊212將作為圖42示出的上部表中的視頻流stream#0的兩個pts_change_point的90000和54090000,以及90000、27090000和32490000中的{27090000}和{32490000},與表示這些時(shí)刻具有“DynamicInfo()處理”屬性的信息一起提供給解碼控制模塊214(在步驟S320),其中,所述{27090000}和{32490000}是圖42示出的下部表中的音頻流stream#2的、除了作為初始值的90000之外的三個pts_change_point的時(shí)刻。
解碼控制模塊214從播放器控制模塊212接收具有“DynamicInfo()處理”屬性的時(shí)刻{27090000}、{32490000}和{54090000}。在開始再現(xiàn)視頻流stream#0和音頻流stream#2(再現(xiàn)剪輯流文件“00003.PS”的第二PlayList#1的PlayItem#0)之后,解碼控制模塊開始監(jiān)控由計(jì)時(shí)部分214A計(jì)數(shù)的當(dāng)前時(shí)刻。
在當(dāng)前時(shí)刻與具有“DynamicInfo()處理”屬性的時(shí)刻{27090000}、{32490000}和{54090000}之一匹配時(shí),解碼控制模塊214將DynamicInfo時(shí)刻提供給播放器控制模塊212(在步驟S321),其中所述DynamicInfo時(shí)刻是具有“DynamicInfo()處理”屬性、并與當(dāng)前時(shí)刻相匹配的時(shí)刻。
在當(dāng)前時(shí)刻變?yōu)槔?7090000時(shí),解碼控制模塊214將與當(dāng)前時(shí)刻相匹配并且是具有“DynamicInfo()處理”屬性的時(shí)刻之一的27090000作為DynamicInfo時(shí)刻提供給播放器控制模塊212。
播放器控制模塊212從解碼控制模塊214接收作為DynamicInfo時(shí)刻的27090000,從圖42示出的上部表中的視頻stream#0的兩個pts_change_point和圖42示出的下部表中的音頻stream#2的三個pts_change_point中,檢查與作為DynamicInfo時(shí)刻的27090000匹配的pts_change_point,并將與和27090000相匹配的pts_change_point配對的DynamicInfo()、即圖42示出的下部表中的音頻流stream#2的第二DynamicInfo()識別為目標(biāo)DynamicInfo()(在步驟S322)。
當(dāng)目標(biāo)DynamicInfo()是視頻流的DynamicInfo()時(shí),播放器控制模塊212將在目標(biāo)DynamicInfo()中描述的輸出屬性提供給圖形處理模塊219(在步驟S323)。當(dāng)目標(biāo)DynamicInfo()是音頻流的DynamicInfo()時(shí),播放器控制模塊212將在目標(biāo)DynamicInfo()中描述的輸出屬性提供給音頻輸出模塊221(在步驟S323)。
當(dāng)圖形處理模塊219從播放器控制模塊212接收到輸出屬性時(shí),圖形處理模塊219對應(yīng)于該輸出屬性而開始控制視頻數(shù)據(jù)的輸出(在步驟S324)。
換句話說,圖形處理模塊219對應(yīng)于由從例如播放器控制模塊212接收的輸出屬性所表示的視頻數(shù)據(jù)的高寬比(display_aspect_ratio(圖13))、以及連接到圖1示出的視頻輸出端120的視頻輸出設(shè)備的高寬比,轉(zhuǎn)換輸出到視頻輸出模塊220的視頻數(shù)據(jù)的高寬比。
具體地說,當(dāng)視頻輸出設(shè)備的高寬比為例如16∶9、并且由輸出屬性表示的視頻數(shù)據(jù)的高寬比為4∶3時(shí),圖形處理模塊219在水平方向上對輸出到視頻輸出模塊220的視頻數(shù)據(jù)執(zhí)行壓縮處理,并使視頻數(shù)據(jù)的左端和右端為黑(black)。當(dāng)視頻輸出設(shè)備的視頻數(shù)據(jù)的高寬比為例如4∶3、并且由輸出屬性表示的視頻數(shù)據(jù)的高寬比為16∶9時(shí),圖形處理模塊219在垂直方向上對輸出到視頻輸出模塊220的視頻數(shù)據(jù)執(zhí)行壓縮處理,并使視頻數(shù)據(jù)的上端和下端為黑。當(dāng)視頻輸出設(shè)備的高寬比和作為輸出屬性的視頻數(shù)據(jù)的高寬比相同,例如為4∶3或者16∶9時(shí),圖形處理模塊219將視頻數(shù)據(jù)輸出到視頻輸出模塊220,而不對視頻數(shù)據(jù)執(zhí)行壓縮處理。
利用圖42示出的上部表中由值為0xE0的stream_id標(biāo)識的視頻流stream#0的兩組pts_change_point和DynamicInfo(),在作為視頻流stream#0的再現(xiàn)開始時(shí)刻的時(shí)刻90000之后,在時(shí)刻54090000之前,獲得具有4∶3的高寬比的視頻數(shù)據(jù)。在時(shí)刻54090000之后,獲得具有16∶9的高寬比的視頻數(shù)據(jù)。
因此,假設(shè)連接到圖1示出的視頻輸出端120的視頻輸出設(shè)備的高寬比為4∶3,在時(shí)刻90000之后,在時(shí)刻54090000之前,圖形處理模塊219將從視頻流stream#0獲得的、具有4∶3的高寬比的視頻數(shù)據(jù)提供給高寬比為4∶3的視頻輸出設(shè)備。該視頻輸出設(shè)備顯示接收的視頻數(shù)據(jù)。
在時(shí)刻54090000之后,圖形處理模塊219在垂直方向上對具有16∶9的高寬比的視頻數(shù)據(jù)執(zhí)行壓縮處理,并使視頻數(shù)據(jù)的上端和下端為黑,以便將具有16∶9的高寬比的視頻數(shù)據(jù)轉(zhuǎn)換為具體4∶3的高寬比的視頻信號。將轉(zhuǎn)換后的視頻信號提供給視頻輸出設(shè)備。該視頻輸出設(shè)備顯示轉(zhuǎn)換后的視頻數(shù)據(jù)。
當(dāng)音頻輸出模塊221從播放器控制模塊212接收到輸出屬性時(shí),音頻輸出模塊221對應(yīng)于該輸出屬性而開始控制音頻數(shù)據(jù)的輸出(在步驟S324)。
換句話說,音頻輸出模塊221對應(yīng)于由從播放器控制模塊212接收的輸出屬性表示的音頻數(shù)據(jù)的聲道分配(channel_assignment(圖13))、以及對應(yīng)于從播放器控制模塊212通過用戶使用遙控器操作的輸入接口115(圖1)提供的音頻輸出模式,處理從音頻解碼器控制模塊217接收的音頻數(shù)據(jù),并將處理后的音頻數(shù)據(jù)輸出到音頻輸出端121(圖1)。
具體地說,當(dāng)由輸出屬性表示的音頻數(shù)據(jù)的聲道分配是雙聲道(雙語)模式時(shí),音頻輸出模塊221對應(yīng)于從播放器控制模塊212提供的音頻輸出模式,處理從音頻解碼器控制模塊217提供的音頻數(shù)據(jù),并將處理后的音頻數(shù)據(jù)輸出到音頻輸出端121,其中,所述雙聲道(雙語)模式的左聲道是“主音頻”數(shù)據(jù),而右聲道是“副音頻”數(shù)據(jù)。
換句話說,如果將“主聲音”指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)的左聲道復(fù)制為音頻數(shù)據(jù)的右聲道,并將音頻數(shù)據(jù)的左聲道和右聲道(“主音頻”數(shù)據(jù))輸出到音頻輸出端121。如果將“副音頻”指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)的右聲道復(fù)制為左聲道,并將左聲道和右聲道(“副音頻”數(shù)據(jù))輸出到音頻輸出端121。如果“主音頻和副音頻”均被指定為音頻輸出模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)直接輸出到音頻輸出端121。
如果由輸出屬性表示的音頻數(shù)據(jù)的聲道分配是例如立體聲模式,則音頻輸出模塊221將從音頻解碼器控制模塊217接收的音頻數(shù)據(jù)直接輸出到音頻輸出端121,而不管指定了什么音頻輸出模式。
使用圖42示出的下部表中由值為0xBD的stream_id和值為0x00的private_stream_id標(biāo)識的音頻流stream#2的三組pts_change_point和DynamicInfo(),在作為再現(xiàn)開始時(shí)刻的90000之后,在時(shí)刻27090000之前,從音頻流stream#2獲得雙聲道音頻數(shù)據(jù)。此外,在時(shí)刻27090000之后,在時(shí)刻32490000之前,從音頻流stream#2獲得立體聲音頻數(shù)據(jù)。此外,在時(shí)刻32490000之后,從音頻流stream#2獲得雙聲道音頻數(shù)據(jù)。
因此,當(dāng)把“主音頻”指定為音頻輸出模式時(shí),音頻輸出模塊221將雙聲道音頻數(shù)據(jù)的左聲道的音頻數(shù)據(jù)復(fù)制為音頻數(shù)據(jù)的右聲道,其中所述雙聲道音頻數(shù)據(jù)是在時(shí)刻90000之后、在時(shí)刻27090000之前從音頻流stream#2獲得的。將音頻數(shù)據(jù)的左聲道和右聲道輸出到音頻輸出端121。
將在時(shí)刻27090000之后、在時(shí)刻32490000之前從音頻流stream#2獲得的立體聲音頻數(shù)據(jù)輸出到音頻輸出端121。
將在時(shí)刻32490000之后從音頻流stream#2獲得的雙聲道音頻數(shù)據(jù)的左聲道復(fù)制為音頻數(shù)據(jù)的右聲道。將音頻數(shù)據(jù)的左聲道和右聲道輸出到音頻輸出端121。
如上所述,在輸出屬性控制處理中,確定正被再現(xiàn)的基本流的再現(xiàn)時(shí)刻是否與對應(yīng)于剪輯信息文件Clip()(圖10)的pts_change_point相匹配,所述剪輯信息文件Clip()包含n組pts_change_point和DynamicInfo()(其中,n為0或更大的任意整數(shù)),其中該pts_change_point表示與剪輯流文件多路復(fù)用的每個基本流的再現(xiàn)時(shí)刻,該DynamicInfo()表示基本流的輸出屬性。當(dāng)正在再現(xiàn)的基本流的再現(xiàn)時(shí)刻與pts_change_point匹配時(shí),識別出與pts_change_point配對的DynamicInfo()。根據(jù)在DynamicInfo()中描述的輸出屬性,控制正在再現(xiàn)的基本流的輸出。因此,能夠根據(jù)基本流的再現(xiàn)時(shí)刻和輸出屬性來控制基本流的輸出。
接下來,將參考圖43示出的流程圖,描述控制對應(yīng)于字幕流的字幕數(shù)據(jù)的顯示的字幕顯示控制處理。
當(dāng)PlayList()的再現(xiàn)(圖5)(其PlayList())開始時(shí),播放器控制模塊212在步驟S341初始化圖形處理模塊219的字幕數(shù)據(jù)顯示模式。換句話說,播放器控制模塊212控制圖形處理模塊219將字幕數(shù)據(jù)顯示模式改變成默認(rèn)顯示模式。在步驟S341執(zhí)行的顯示模式的初始化對應(yīng)在圖30示出的步驟S127執(zhí)行的顯示模式的初始化。
在步驟S341之后,流程前進(jìn)到步驟S342。在步驟S342,播放器控制模塊212確定用戶是否通過遙控器將新字幕數(shù)據(jù)顯示模式命令輸出到輸入接口115。
當(dāng)在步驟S342的確定結(jié)果表明輸入了新顯示模式命令時(shí),流程前進(jìn)到步驟S343。在步驟S343,播放器控制模塊212確定是否正在再現(xiàn)字幕流(與其對應(yīng)的字幕數(shù)據(jù))。
當(dāng)在步驟S343的確定結(jié)果表明沒有再現(xiàn)字幕流時(shí),流程返回步驟S342。
相反,當(dāng)在步驟S343的確定結(jié)果表明正在再現(xiàn)字幕流時(shí),流程前進(jìn)到步驟S345。在步驟S345,播放器控制模塊212確定新顯示模式命令是否是默認(rèn)顯示模式命令。當(dāng)在步驟S343的確定結(jié)果表明新顯示模式命令是默認(rèn)顯示模式命令時(shí),流程返回步驟S341。在步驟S341,如上所述,播放器控制模塊212控制圖形處理模塊219將字幕數(shù)據(jù)顯示模式改變成默認(rèn)顯示模式。
相反,當(dāng)在步驟S345的確定結(jié)果表明新顯示模式命令不是默認(rèn)顯示模式命令、即新顯示模式命令是非默認(rèn)顯示模式命令例如字幕數(shù)據(jù)放大命令、字幕數(shù)據(jù)縮小命令或亮度增加命令時(shí),流程前進(jìn)到步驟S346。在步驟S346,播放器控制模塊212獲得剪輯信息文件Clip()(圖10)的StaticInfo()(圖12)的正在再現(xiàn)的字幕流的StaticInfo(),其中所述剪輯信息文件Clip()對應(yīng)于正在再現(xiàn)的字幕流與之多路復(fù)用的剪輯流文件。隨后,流程前進(jìn)到步驟S347。
在步驟S347,播放器控制模塊212確定在步驟S346獲得的StaticInfo()的configurable_flag。
當(dāng)在步驟S347的確定結(jié)果表明configurable_flag是表示不允許改變字幕數(shù)據(jù)顯示模式的0時(shí),流程前進(jìn)到步驟S348。在步驟S348,播放器控制模塊212控制圖形處理模塊219用表示不能改變字幕數(shù)據(jù)顯示模式的消息覆蓋輸出的視頻數(shù)據(jù)。隨后,流程返回步驟S342。在步驟S342,顯示錯誤消息。
相反,當(dāng)在步驟S347的確定結(jié)果表明configurable_flag是表示允許改變字幕數(shù)據(jù)顯示模式的1時(shí),流程前進(jìn)到步驟S349。在步驟S349,播放器控制模塊212提供新顯示模式命令到圖形處理模塊219,其中所述新顯示模式命令是由用戶通過輸入接口115從遙控器輸入的。隨后,流程前進(jìn)到步驟S350。
在步驟S350,圖形處理模塊219根據(jù)在步驟S349從播放器控制模塊212提供的顯示模式命令,對從字冪解碼器控制模塊218提供的字幕數(shù)據(jù)執(zhí)行放大處理、縮小處理或亮度改變處理。隨后,流程返回步驟S342。這樣,以對應(yīng)于用戶通過遙控器輸入的顯示模式命令的顯示大小、顯示位置或顯示顏色顯示字幕數(shù)據(jù)。
相反,當(dāng)在步驟S342的確定結(jié)果表明沒有輸入新顯示模式命令時(shí),流程前進(jìn)到步驟S351。在步驟S351,播放器控制模塊212確定是否已經(jīng)如圖31所述改變了PlayItem()。當(dāng)在步驟S342的確定結(jié)果表明沒有改變PlayItem()時(shí),流程返回步驟S342。
相反,當(dāng)在步驟S351的確定結(jié)果表明PlayItem()已被改變時(shí),流程返回步驟S341。在步驟S341,如上所述,播放器控制模塊212控制圖形處理模塊219將字幕數(shù)據(jù)顯示模式改變成默認(rèn)顯示模式。換句話說,當(dāng)PlayItem()已被改變時(shí),字幕數(shù)據(jù)顯示模式被恢復(fù)為默認(rèn)顯示模式。
如上所述,僅在字幕流的configurable_flag是表示允許改變顯示模式的1時(shí),才可以根據(jù)用戶通過遙控器輸入的顯示模式命令,改變字幕流的字幕數(shù)據(jù)顯示模式。
因此,例如在圖26A和圖26B示出的剪輯信息文件“00001.CLP”中,由于字幕流stream#2的configurable_flag是表示在顯示字幕流stream#2時(shí)不允許改變顯示模式的0,因此即使用戶操作遙控器改變字幕顯示模式,也不會改變該顯示模式,其中所述字幕流stream#2是與剪輯流文件“00001.PS”多路復(fù)用的四個基本流的第三基本流。
相反,由于字幕流stream#3的configurable_flag是表示在顯示字幕流stream#3時(shí)允許改變顯示模式的1,因此當(dāng)用戶操作遙控器改變字幕顯示模式時(shí),字幕的顯示大小被改變,其中,所述字幕流stream#3是與剪輯流文件“00001.PS”多路復(fù)用的四個基本流的第四基本流。
現(xiàn)在,假設(shè)對應(yīng)于圖25示出的第一PlayList#1的第一PlayItem#1,正在再現(xiàn)剪輯流文件“00001.PS”。此外,在圖26A和圖26B所述的剪輯信息文件“00001.CLP”中,假設(shè)與剪輯流文件“00001.PS”多路復(fù)用的四個基本流的第三和第四基本流是字幕流,并且正在再現(xiàn)該第三和第四字幕流stream#2和stream#3的第三字幕流stream#2。
當(dāng)用戶操作遙控器輸入字幕顯示模式命令(在步驟S342)時(shí),將該顯示模式命令從輸入接口115(圖1)提供給播放器控制模塊212。當(dāng)播放器控制模塊212接收到該顯示模式命令時(shí),播放器控制模塊212在剪輯信息文件中搜索對應(yīng)于正在再現(xiàn)的字幕流的StaticInfo()(圖10)(在步驟S346)。
換句話說,正在再現(xiàn)的字幕流是與剪輯流文件“00001.PS”多路復(fù)用的第三字幕流stream#2。播放器控制模塊212在對應(yīng)的剪輯信息文件“00001.CLP”中搜索第三字幕流stream#2的StaticInfo()。
此外,播放器控制模塊212確定在圖26A和圖26B示出的第三字幕流stream#2的StaticInfo()中描述的configurable_flag(在步驟S347),其中所述configurable_flag是0。這樣,播放器控制模塊212識別出不允許改變第三字幕流stream#2的顯示模式。
在此情況中,播放器控制模塊212確定正在再現(xiàn)的字幕流(與其對應(yīng)的字幕數(shù)據(jù))并不符合放大和縮小模式,并控制圖形處理模塊219產(chǎn)生對應(yīng)的錯誤消息(在步驟S348),用視頻數(shù)據(jù)覆蓋錯誤消息,并輸出覆蓋后的視頻數(shù)據(jù)。
在再現(xiàn)與剪輯流文件“00001.PS”多路復(fù)用的四個基本流的第三和第四字幕流stream#2和stream#3的第四字幕流stream#3的時(shí)候,當(dāng)播放器控制模塊212接收到用戶通過遙控器輸入的模式命令顯示時(shí),播放器控制模塊212在對應(yīng)的剪輯信息文件“00001.CLP”中搜索為第四字幕流stream#3的StaticInfo()。
播放器控制模塊212確定在圖26A和圖26B示出的第四字幕流stream#3的StaticInfo()中所述的configurable_flag(在步驟S347),其中所述configurable_flag是1。這樣,播放器控制模塊212識別出允許改變第四字幕流stream#3的顯示模式。
在此情況中,播放器控制模塊212確定正在再現(xiàn)的字幕流(與其對應(yīng)的字幕數(shù)據(jù))對應(yīng)于放大模式或縮小模式,并且向圖形處理模塊219提供用戶通過遙控器輸入的顯示模式命令(在步驟S349)。
因此,例如,圖形處理模塊219對應(yīng)于從播放器控制模塊212接收的顯示模式命令,放大或縮小從字幕解碼器控制模塊218接收的字幕數(shù)據(jù),用從視頻解碼器控制模塊212提供的視頻數(shù)據(jù)覆蓋所得的字幕數(shù)據(jù),并輸出覆蓋后的數(shù)據(jù)。
當(dāng)播放器控制模塊212開始再現(xiàn)PlayList()的第一PlayItem()時(shí),播放器控制模塊212初始化圖形處理模塊219的字幕數(shù)據(jù)顯示模式(在步驟S341)。換句話說,播放器控制模塊212控制圖形處理模塊219將字幕數(shù)據(jù)顯示模式改變成默認(rèn)顯示模式。
當(dāng)PlayItem()被改變時(shí),播放器控制模塊212初始化圖形處理模塊219的字幕數(shù)據(jù)顯示模式(在步驟S341和S351)。
當(dāng)PlayItem()被改變時(shí),播放器控制模塊212對應(yīng)于最近再現(xiàn)的PlayItem(),檢查要再現(xiàn)的新字幕流的configurable_flag。當(dāng)configurable_flag是0時(shí),播放器控制模塊212初始化圖形處理模塊219的字幕數(shù)據(jù)顯示模式。當(dāng)configurable_flag是1時(shí),播放器控制模塊212使圖形處理模塊219保持PlayItem()的顯示模式。
在圖43示出的字幕顯示控制處理中,當(dāng)用戶通過遙控器輸入新顯示模式命令時(shí),該新顯示模式命令被提供給圖形處理模塊219(在步驟S349)。顯示模式命令可存儲在例如組成存儲器113(圖1)的非易失性存儲器中??梢詫⒋鎯υ诜且资源鎯ζ髦械娘@示模式命令提供給圖形處理模塊219。
假設(shè)將用戶設(shè)置的顯示模式命令作為圖1示出的盤設(shè)備的初始設(shè)置存儲在非易失性存儲器中,當(dāng)用戶用遙控器輸入新顯示模式命令時(shí),存儲在非易失性存儲器中的顯示模式命令被新顯示模式命令代替,并且將存儲在非易失性存儲器中的新顯示模式命令提供給圖形處理模塊219。在此情況中,由于非易失性存儲器存儲了在上次再現(xiàn)完成時(shí)設(shè)置的顯示模式命令,因此當(dāng)再現(xiàn)下一個PlayList()時(shí),利用該顯示模式命令顯示字幕數(shù)據(jù),而無需通過遙控器輸入顯示命令。
在此情況中,假設(shè)存儲在非易失性存儲器中的顯示模式命令包括例如放大或縮小字幕流的放大率或縮小率。
如上所述,在字幕顯示控制處理中,對應(yīng)于在再現(xiàn)剪輯信息文件Clip()(圖10)中包含的基本流時(shí)未改變的字幕數(shù)據(jù)的StaticInfo()中包含的configurable_flag,確定是否允許從默認(rèn)顯示模式改變字幕數(shù)據(jù)顯示模式。當(dāng)允許改變正在再現(xiàn)的字幕數(shù)據(jù)的默認(rèn)顯示模式時(shí),執(zhí)行對字幕數(shù)據(jù)的顯示處理,例如放大處理、縮小處理或顏色改變處理。因此,可以控制字幕數(shù)據(jù)顯示模式。

接下來,將參照圖44示出的流程圖,描述控制對應(yīng)于視頻流的視頻數(shù)據(jù)的捕捉的捕捉控制處理。圖44還示出了描述背景/屏幕保護(hù)程序處理的流程圖,其中所述背景/屏幕保護(hù)程序處理二次使用在捕捉控制處理中捕捉的視頻數(shù)據(jù)。
當(dāng)用戶通過輸入接口115(圖1)從遙控器輸入視頻數(shù)據(jù)捕捉命令到播放器控制模塊212時(shí),捕捉控制處理開始。
換句話說,在捕捉控制處理中,在步驟S371,播放器控制模塊212確定是否正在再現(xiàn)視頻流。當(dāng)在步驟S371的確定結(jié)果表明沒有再現(xiàn)視頻流時(shí),播放器控制模塊212結(jié)束捕捉控制處理。
相反,當(dāng)在步驟S371的確定結(jié)果表明正在再現(xiàn)視頻流時(shí),流程前進(jìn)到步驟S372。播放器控制模塊212從對應(yīng)于正在再現(xiàn)的視頻流的PlayList()(圖5)獲取capture_enable_flag_PlayList,并從對應(yīng)于正在再現(xiàn)的視頻流的剪輯信息文件Clip()(圖10)獲取capture_enable_flag_Clip。
如圖5所述,PlayList()的capture_enable_flag_PlayList表示是否允許二次使用對應(yīng)于視頻流的視頻數(shù)據(jù)(PlayList()中包含的視頻數(shù)據(jù)),其中對應(yīng)于PlayList()而再現(xiàn)所述視頻流。另一方面,如圖10所述,剪輯信息文件Clip()的capture_enable_flag_Clip表示是否允許二次使用對應(yīng)于視頻流的視頻數(shù)據(jù),其中所述視頻流存儲在對應(yīng)于剪輯信息文件Clip()的剪輯流文件中。
在步驟S372之后,流程前進(jìn)到步驟S373。播放器控制模塊212對應(yīng)于在步驟S373獲取的capture_enable_flag_PlayList和capture_enable_flag_Clip,確定是否允許捕捉當(dāng)從輸入接口115(圖1)輸入捕捉命令時(shí)正在再現(xiàn)的視頻數(shù)據(jù)的畫面。
當(dāng)在步驟S373的確定結(jié)果表明不允許捕捉當(dāng)從輸入接口115輸入捕捉命令時(shí)正在再現(xiàn)的視頻數(shù)據(jù)的畫面、即在步驟S373獲得的capture_enable_flag_PlayList和capture_enable_flag_Clip中的至少一個是表示不允許二次使用視頻數(shù)據(jù)的0時(shí),流程前進(jìn)到步驟S374。在步驟S374,播放器控制模塊212控制圖形處理模塊219用視頻數(shù)據(jù)覆蓋表示不允許捕捉視頻數(shù)據(jù)的錯誤消息,并結(jié)束捕捉控制處理。作為結(jié)果,顯示該錯誤消息。
相反,當(dāng)在步驟S373的確定結(jié)果表明允許捕捉當(dāng)從輸入接口115輸入捕捉命令時(shí)正在再現(xiàn)的視頻數(shù)據(jù)的畫面、即在步驟S373獲得的capture_enable_flag_PlayList和capture_enable_flag_Clip二者均為表示允許二次使用視頻數(shù)據(jù)的1時(shí),流程前進(jìn)到步驟S375。在步驟S375,播放器控制模塊212將對當(dāng)從輸入接口115輸入捕捉命令時(shí)正在再現(xiàn)的視頻數(shù)據(jù)的捕捉命令提供給圖形處理模塊219。隨后,流程前進(jìn)到步驟S376。
在步驟S376,圖形處理模塊219對應(yīng)于從播放器控制模塊212接收的捕捉命令,從視頻解碼器控制模塊216捕捉視頻數(shù)據(jù)的畫面,將該畫面存儲在存儲器113(圖1)中,并結(jié)束捕捉控制處理。當(dāng)capture_enable_flag由多個位組成并指定了它們的使用條件時(shí),此時(shí),執(zhí)行對應(yīng)的操作。換句話說,當(dāng)限制了捕捉畫面的大小時(shí),捕捉尺寸縮小了的畫面。當(dāng)限制了所使用的應(yīng)用程序時(shí),還記錄表示該限制的標(biāo)志。
如上所述,在捕捉控制處理中,將對應(yīng)于當(dāng)用戶輸入捕捉命令時(shí)正在再現(xiàn)的視頻流的PlayList()(圖5)和剪輯信息文件Clip()(圖10)的capture_enable_flag_PlayList和capture_enable_flag_Clip進(jìn)行與操作。當(dāng)與操作的結(jié)果是1、即capture_enable_flag_PlayList和capture_enable_flag_Clip二者均為表示允許二次使用視頻數(shù)據(jù)的1時(shí),確定視頻數(shù)據(jù)可以二次使用。作為結(jié)果,捕捉該視頻數(shù)據(jù)。
當(dāng)對應(yīng)于圖25示出的第一PlayList#0的第一PlayItem#0而再現(xiàn)視頻流、即正在再現(xiàn)與剪輯流文件“00001.PS”多路復(fù)用的視頻流時(shí),如果用戶輸入捕捉命令,則由于第一PlayList#0的capture_enable_flag_PlayList是1,并且圖26A和圖26B示出的、對應(yīng)于由第一PlayItem#0再現(xiàn)的剪輯流文件“00001.PS”的剪輯信息文件“00001.CLP”的capture_enable_flag_Clip是1,因此確定可以二次使用正在再現(xiàn)的視頻數(shù)據(jù)(對應(yīng)于與剪輯流文件“00001.PS”多路復(fù)用的視頻流的視頻數(shù)據(jù)),并捕捉該視頻數(shù)據(jù)。
在對應(yīng)于圖25示出的第一PlayList#0的第二PlayItem#1而再現(xiàn)視頻流、即正在再現(xiàn)與剪輯流文件“00002.PS”多路復(fù)用的視頻流的時(shí)候,當(dāng)用戶輸入捕捉命令時(shí),由于第一PlayList#0的capture_enable_flag_PlayList是l,并且圖26A和圖26B中示出的、對應(yīng)于剪輯流文件“00002.PS”的剪輯信息文件“00002.CLP”的capture_enable_flag_Clip是0,其中對應(yīng)于第二PlayItem#1而表示所述剪輯流文件“00002.PS”,因此確定不能二次使用正在再現(xiàn)的視頻數(shù)據(jù)(對應(yīng)于與剪輯流文件“00002.PS”多路復(fù)用的視頻流的視頻數(shù)據(jù)),并且不捕捉該視頻數(shù)據(jù)。
在對應(yīng)于圖25示出的第二PlayList#1的PlayItem#0而再現(xiàn)視頻流、即正在再現(xiàn)與剪輯流文件“00003.PS”多路復(fù)用的視頻流的時(shí)候,當(dāng)用戶輸入捕捉命令時(shí),由于第二PlayList#1的capture_enable_flag_PlayList是0,并且圖26A和圖26B示出的、對應(yīng)于剪輯流文件“00003.PS”的剪輯信息文件“00003.CLP”的capture_enable_flag_Clip是1,其中對應(yīng)于第二PlayList#1的PlayItem#0而再現(xiàn)所述剪輯流文件“00003.PS”,因此確定不允許二次使用正在再現(xiàn)的視頻數(shù)據(jù)(對應(yīng)于與剪輯流文件“00003.PS”多路復(fù)用的視頻流的視頻數(shù)據(jù))。因此,不捕捉該視頻數(shù)據(jù)。
在此情況中,當(dāng)檢查到第二PlayList#1的capture_enable_flag_PlayList是0時(shí),可以確定不允許二次使用該視頻數(shù)據(jù)。因此,可以省略對圖26A和圖26B示出的、對應(yīng)于剪輯流文件“00003.PS”的剪輯信息文件“00003.CLP”的capture_enable_flag_Clip的檢查,其中對應(yīng)于第二PlayList#1的PlayItem#0而再現(xiàn)所述剪輯流文件“00003.PS”。
可以在背景/屏幕保護(hù)程序處理中二次使用在捕捉控制處理中捕捉并存儲在存儲器113中的畫面。
例如,當(dāng)播放器控制模塊212正在操作但是沒有再現(xiàn)基本流、即盤101尚未插入盤驅(qū)動器102(圖1)或者已經(jīng)再現(xiàn)了基本流時(shí),執(zhí)行背景/屏幕保護(hù)程序處理。
在背景/屏幕保護(hù)程序處理中,在步驟S381,播放器控制模塊212控制圖形處理模塊219顯示在捕捉控制處理中存儲在存儲器113中的畫面。圖形處理模塊219在播放器控制模塊212的控制下,顯示在捕捉控制處理中存儲在存儲器113內(nèi)的畫面。
當(dāng)圖形處理模塊219將存儲在存儲器113中的畫面顯示成靜止畫面時(shí),實(shí)現(xiàn)了所謂的墻紙(背景)。當(dāng)在放大、縮小和移動畫面時(shí)顯示該畫面時(shí),實(shí)現(xiàn)了屏幕保護(hù)程序。顯示在捕捉控制處理中存儲在存儲器113內(nèi)的畫面的背景/屏幕保護(hù)程序處理可以由另一獨(dú)立應(yīng)用程序而不是播放器控制模塊212執(zhí)行。
當(dāng)表示限制的標(biāo)志被添加到存儲在存儲器113中的畫面上時(shí),根據(jù)該標(biāo)記限制所顯示的畫面。
如上所述,根據(jù)例如大于視頻存取單元的PlayList()或PlayItem(),獲得表示是否允許二次使用正在再現(xiàn)的視頻數(shù)據(jù)的capture_enable_flag_PlayList和capture_enable_flag_Clip。對應(yīng)于capture_enable_flag_PlayList和capture_enable_flag_Clip,確定是否允許二次使用正在再現(xiàn)的視頻數(shù)據(jù)。當(dāng)確定結(jié)果表明允許二次使用正在再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正在再現(xiàn)的視頻數(shù)據(jù),并且執(zhí)行使用所捕捉的視頻數(shù)據(jù)的背景/屏幕保護(hù)程序處理。因此,可以控制視頻數(shù)據(jù)的二次使用。
在圖44示出的捕捉控制處理中,PlayList()(圖5)包含capture_enable_flag_PlayList,并且對應(yīng)于由PlayItem()再現(xiàn)的剪輯流文件的剪輯信息文件(圖10)包含capture_enable_flag_Clip。利用capture_enable_flag_PlayList和capture_enable_flag_Clip二者,確定是否允許二次使用視頻數(shù)據(jù)。可替換地,當(dāng)PlayList()(圖5)包含capture_enable_flag_PlayList,并且對應(yīng)于由PlayItem()再現(xiàn)的剪輯流文件的剪輯信息文件(圖10)包含capture_enable_flag_Clip時(shí),利用capture_enable_flag_PlayList或capture_enable_flag_Clip,可以確定是否允許二次使用視頻數(shù)據(jù)。
在圖44示出的捕捉控制處理中,在步驟S376,圖形處理模塊219對應(yīng)于從播放器控制模塊212接收的捕捉命令,僅僅從視頻解碼器控制模塊216捕捉視頻數(shù)據(jù)的一個畫面??商鎿Q地,圖形處理模塊219可以從視頻解碼器控制模塊216捕捉多個畫面。換句話說,可以捕捉視頻解碼器控制模塊216輸出的多個畫面(作為運(yùn)動圖像的一系列多個畫面)。在此情況中,可以預(yù)先指定每次捕捉的畫面數(shù)量??商鎿Q地,可以針對表示每次能捕捉的畫面數(shù)量的信息而擴(kuò)展capture_enable_flag_PlayList和capture_enable_flag_Clip的位。
在上述情況中,在PlayList()和剪輯信息文件Clip()中描述表示是否允許二次使用視頻數(shù)據(jù)的使用許可信息,即capture_enable_flag_PlayList和capture_enable_flag_Clip。利用該使用許可信息,確定是否允許二次使用對應(yīng)于PlayList()而再現(xiàn)的全部視頻數(shù)據(jù)以及對應(yīng)于視頻流的全部視頻數(shù)據(jù),其中所述視頻流與對應(yīng)于剪輯信息文件Clip()的剪輯流文件多路復(fù)用。使用許可信息可以描述任何單元的視頻數(shù)據(jù)。利用該使用許可信息,可以確定是否允許二次使用任何單元的視頻數(shù)據(jù)。
圖45示出了包含使用許可信息的private_stream2_PES_payload()的語法。圖46示出了包含使用許可信息的au_information()的語法。
除了video_stream_id緊接在作為使用許可信息的capture_enable_flag_ps2之后以外,圖45示出的private_stream2_PES_payload()與圖23示出的private_stream2_PES_payload()相同。同樣,除了pic_struct_copy緊接在作為使用許可信息的capture_enable_flag_AU之后以外,在圖46中示出的au_information()與圖24中示出的au_information()相同。
圖45中示出的private_stream2_PES_payload()中包含的capture_enable_flag_ps2表示是否允許二次使用視頻流的視頻數(shù)據(jù),其中所述視頻流在包含private_stream2_PES_payload()的private_stream_2的PES_packet()之后,在下一個private_stream_2的PES_packet()之前。因此,利用圖45示出的private_stream2_PES_payload()中包含的capture_enable_flag_ps2,可以確定是否允許二次使用在特定可解碼起點(diǎn)之后在下一可解碼起點(diǎn)之前的視頻數(shù)據(jù)。
此外,圖46示出的au_information()中包含的capture_enable_flag_AU表示是否允許二次使用對應(yīng)于capture_enable_flag_AU的每個視頻存取單元中的視頻數(shù)據(jù)。因此,利用圖46示出的au_information()中包含的capture_enable_flag_AU,可以確定是否允許二次使用每個視頻存取單元中、即每個畫面中的視頻數(shù)據(jù)。
可以同時(shí)使用作為PlayList()(圖5)的使用許可信息的capture_enable_flag_PlayList、作為剪輯信息文件Clip()(圖10)的使用許可信息的capture_enable_flag_Clip、作為private_stream2_PES_payload()(圖45)的使用許可信息的capture_enable_flag_Ps2、和作為au_information()(圖46)的使用許可信息的capture_enable_flag_AU中的至少兩個。在此情況中,利用對作為使用許可信息的它們中的至少兩個進(jìn)行與操作的結(jié)果,可以確定是否允許二次使用視頻數(shù)據(jù)的畫面。
如圖36示出的步驟S211所述,視頻讀取功能部分233在存儲于緩沖區(qū)215A的程序流中搜索圖23或圖34示出的包含private_stream2_PES_payload()的private_stream_2的PES_packet(),其中所述private_stream2_PES_payload()包含圖46示出的au_information()。因此,當(dāng)使用圖45示出的包含capture_enable_flag_ps2的private_stream2_PES_payload()以及圖45示出的包含capture_enable_flag_AU的au_information()時(shí),播放器控制模塊212需要向視頻讀取功能部分233請求capture_enable_flag_ps2和capture_enable_flag_AU,以確定是否允許二次使用視頻數(shù)據(jù)。
根據(jù)上述實(shí)施例,可以由軟件執(zhí)行所述處理序列??商鎿Q地,可以由專用硬件執(zhí)行這些處理。
此外,根據(jù)實(shí)施例,視頻解碼器116(圖1)是硬件解碼器??商鎿Q地,視頻解碼器116可以是軟件解碼器。該關(guān)系適用于音頻解碼器117(圖1)。
此外,根據(jù)實(shí)施例,字幕解碼器是軟件解碼器。可替換地,字幕解碼器可以是硬件解碼器。
本領(lǐng)域技術(shù)人員應(yīng)該理解,可以根據(jù)設(shè)計(jì)需要和其它因素進(jìn)行各種修改、組合、次組合和變換,只要它們處于所附權(quán)利要求或其同等物的范圍內(nèi)即可。
權(quán)利要求
1.一種數(shù)據(jù)處理裝置,其處理記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù),該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該數(shù)據(jù)處理裝置包括獲取部件,用于獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;確定部件,用于對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及捕捉部件,用于在確定部件確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
2.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,記錄數(shù)據(jù)還包含表示視頻數(shù)據(jù)的再現(xiàn)過程的播放列表,以及其中,在播放列表中描述許可信息,該播放列表表示是否允許二次使用所再現(xiàn)的視頻數(shù)據(jù)。
3.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,記錄數(shù)據(jù)包含多路復(fù)用數(shù)據(jù),至少其編碼視頻數(shù)據(jù)已經(jīng)被多路復(fù)用;關(guān)于該多路復(fù)用數(shù)據(jù)的元數(shù)據(jù),并且其中,元數(shù)據(jù)包含許可信息,表示是否允許二次使用對應(yīng)于與多路復(fù)用數(shù)據(jù)多路復(fù)用的編碼視頻數(shù)據(jù)的視頻數(shù)據(jù)。
4.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,記錄數(shù)據(jù)還包含緊接在每個存取單元的編碼視頻數(shù)據(jù)的至少一個可解碼起點(diǎn)的每一個之后、并用于將編碼視頻數(shù)據(jù)解碼的使用信息,并且其中,該使用信息包含許可信息,表示是否允許二次使用與位于該使用信息自身和下一使用信息之間的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
5.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,記錄數(shù)據(jù)還包含緊接在每個存取單元的編碼視頻數(shù)據(jù)的至少一個可解碼起點(diǎn)的每一個之后、并用于將編碼視頻數(shù)據(jù)解碼的使用信息,并且其中,該使用信息包含許可信息,表示對于每個存儲單元,是否允許二次使用與位于該使用信息自身和下一使用信息之間的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
6.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,記錄數(shù)據(jù)包含以下幾項(xiàng)作為許可信息第一許可信息,表示是否允許二次使用與具有等于或大于存取單元的第一單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),以及第二許可信息,表示是否允許二次使用與具有等于或大于存取單元的第二單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
7.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,還包括執(zhí)行部件,用于執(zhí)行使用由捕捉部件捕捉的視頻數(shù)據(jù)來顯示背景或屏幕保護(hù)程序的處理。
8.一種用于處理記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)的數(shù)據(jù)處理裝置的數(shù)據(jù)處理方法,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該數(shù)據(jù)處理方法包括以下步驟獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
9.一種使計(jì)算機(jī)對記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)執(zhí)行數(shù)據(jù)處理的程序,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在計(jì)算機(jī)中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該程序包括以下步驟獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
10.一種在其上記錄了程序的程序記錄介質(zhì),該程序使計(jì)算機(jī)對記錄在數(shù)據(jù)記錄介質(zhì)上的記錄數(shù)據(jù)執(zhí)行數(shù)據(jù)處理,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在計(jì)算機(jī)中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù),該程序包括以下步驟獲取關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息;對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù);以及當(dāng)在確定步驟確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),捕捉正被再現(xiàn)的視頻數(shù)據(jù)。
11.一種在其上記錄了記錄數(shù)據(jù)的數(shù)據(jù)記錄介質(zhì),該記錄數(shù)據(jù)由數(shù)據(jù)處理裝置處理,該記錄數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
12.一種由數(shù)據(jù)處理裝置處理的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)包含編碼視頻數(shù)據(jù),由每一預(yù)定單元就被編碼的視頻數(shù)據(jù)組成,其中所述預(yù)定單元是存取單元,以及許可信息,表示是否允許在數(shù)據(jù)處理裝置中二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)。
全文摘要
在步驟S372,從表示是否允許二次使用與等于或大于存取單元的編碼視頻數(shù)據(jù)相對應(yīng)的視頻數(shù)據(jù)的許可信息,獲得關(guān)于正被再現(xiàn)的視頻數(shù)據(jù)的許可信息。在步驟S373,對應(yīng)于該許可信息,確定是否允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)。當(dāng)確定允許二次使用正被再現(xiàn)的視頻數(shù)據(jù)時(shí),在步驟S376,捕捉正被再現(xiàn)的視頻數(shù)據(jù)。在步驟S381,執(zhí)行使用所捕捉的視頻數(shù)據(jù)的處理。本發(fā)明可應(yīng)用于例如使用DVD的游戲設(shè)備。
文檔編號G11B20/10GK1767616SQ200510103900
公開日2006年5月3日 申請日期2005年6月13日 優(yōu)先權(quán)日2004年6月11日
發(fā)明者藤波靖, 大島武德, 早川悟郎, 浜田俊也 申請人:索尼株式會社, 索尼計(jì)算機(jī)娛樂公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
汨罗市| 安西县| 文昌市| 咸阳市| 平邑县| 故城县| 巴林左旗| 喀喇沁旗| 嘉禾县| 文安县| 鄯善县| 乳山市| 扬州市| 中宁县| 洪雅县| 屏边| 论坛| 忻州市| 太仆寺旗| 襄汾县| 甘南县| 朝阳市| 清远市| 隆尧县| 新田县| 库尔勒市| 芮城县| 青神县| 涡阳县| 北京市| 客服| 宁国市| 浪卡子县| 松阳县| 香格里拉县| 安泽县| 阳高县| 房产| 大化| 永平县| 塔河县|