韓洪波 ,孫 鵬 ,倪 宏 ,朱小勇
(1.中國科學(xué)院研究生院,北京 100039;2.中國科學(xué)院 聲學(xué)研究所國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,北京 100190)
數(shù)字電視的逐步普及使電視成為家庭娛樂和信息獲取中最主要的方式之一。個人視頻錄像機(jī)(PVR)的出現(xiàn)改變了人們收看電視節(jié)目的方式,讓用戶可以錄制、時移收看電視節(jié)目,不再受電視臺廣播計劃的約束。隨著節(jié)目制作、數(shù)字化和數(shù)字電視廣播傳輸技術(shù)的逐漸成熟,數(shù)字電視節(jié)目內(nèi)容日益豐富,再加上存儲成本的不斷下降,使得PVR可以錄制存儲的節(jié)目越來越多。因此,如何對這日益龐大的節(jié)目內(nèi)容進(jìn)行索引、搜索、過濾和管理成為新的技術(shù)要求。MPEG組織制定了致力于媒體內(nèi)容描述的MPEG-7標(biāo)準(zhǔn)[1],TV-Anytime也定義了互動相關(guān)的結(jié)構(gòu)和元數(shù)據(jù)描述方法[2],這些針對媒體內(nèi)容描述的信息可用于建立對媒體內(nèi)容的檢索機(jī)制。然而如何對現(xiàn)在尚未使用這些標(biāo)準(zhǔn)的數(shù)字電視廣播內(nèi)容進(jìn)行索引、搜索、過濾和管理,已經(jīng)成為使用中的難題。有研究提出了一種基于XML的元數(shù)據(jù)方法來實現(xiàn)PVR應(yīng)用中的存儲和檢索[3],也有人提出了支持基于片段的時移收看的高級PVR結(jié)構(gòu)[4]。
筆者基于EPG和音視頻數(shù)據(jù)幀顯示時間標(biāo)簽(PTS)提出了一種面向PVR應(yīng)用的兩級元數(shù)據(jù)存儲檢索結(jié)構(gòu),并在此基礎(chǔ)上,設(shè)計了PVR應(yīng)用中的節(jié)目錄制、內(nèi)容檢索、時移電視以及對已錄制內(nèi)容的非線性回看的實現(xiàn)方法。
目前國內(nèi)正式運營的數(shù)字電視節(jié)目內(nèi)容主要以MPEG-2傳輸流(TS)的方式廣播下發(fā)。通常一個頻點的TS中會復(fù)用多路節(jié)目。通過對特定頻點的TS進(jìn)行解復(fù)用可以得到復(fù)用在該頻點中的各路節(jié)目的音視頻分組原始流(PES)和EPG信息表,通過PES分組頭解析可以得到PES中各幀的顯示時間標(biāo)簽(PTS)。把要錄制的電視節(jié)目的音視頻PES打包成TS格式存儲下來,并基于EPG信息和PTS信息為之建立起兩級索引結(jié)構(gòu)。
EPG是數(shù)字電視的重要特性,數(shù)字電視接收終端均可利用DVB-SI表信息建立“頻道-時間-節(jié)目”形式的電子節(jié)目單[5]。參照DVB中傳遞EPG信息的PSI/SI表的內(nèi)容[6],定義一級索引元數(shù)據(jù)語法結(jié)構(gòu)如下:
其中shortDescriptor和longDescriptor可以從事件信息表(EIT)中提取。
根據(jù)MPEG-2標(biāo)準(zhǔn),音視頻數(shù)據(jù)解碼和顯示通過相應(yīng)的時間戳來控制,以實現(xiàn)唇音同步。而音視頻數(shù)據(jù)幀的PTS是該幀聲音或圖像呈現(xiàn)給用戶的相對時間[7-9]。基于視頻關(guān)鍵幀的PTS定義二級索引元數(shù)據(jù)語法結(jié)構(gòu)如下:
音視頻數(shù)據(jù)按照TS格式存儲,通過二級索引元數(shù)據(jù)可以對音視頻數(shù)據(jù)進(jìn)行分段。如圖1所示,IV0,IV1,…,IVN為TS中的視頻關(guān)鍵幀;FV0L,F(xiàn)V1L,…,F(xiàn)VNL為相鄰視頻關(guān)鍵幀間的非關(guān)鍵幀和音頻數(shù)據(jù)的集合;定義SegV0,SegA0,SegV1,SegA1,…,SegVN,SegAN為數(shù)據(jù)片段,則數(shù)據(jù)片段是音視頻幀的集合,數(shù)據(jù)片段的第1幀為視頻關(guān)鍵幀,其余為非關(guān)鍵幀和音頻幀。
圖1節(jié)目TS數(shù)據(jù)存儲結(jié)構(gòu)圖
PVR錄制節(jié)目時,通過解析SDT表和EIT表可得到當(dāng)前播放節(jié)目的節(jié)目描述信息以及節(jié)目的開始和結(jié)束時間,從而為錄制的每個節(jié)目建立“存儲位置+節(jié)目描述+二級索引”的一級索引信息;在將音視頻PES數(shù)據(jù)打包成TS之前對PES頭進(jìn)行解析,可以得到視頻幀的PTS信息,從中抽取關(guān)鍵幀的PTS以及關(guān)鍵幀存儲到TS中的位置為每個節(jié)目建立“關(guān)鍵幀位置+關(guān)鍵幀PTS”的二級索引信息,這樣就為錄制的節(jié)目建立了兩級索引信息。DVB節(jié)目會有切換,即當(dāng)前節(jié)目結(jié)束,下一個節(jié)目開始。根據(jù)EIT中當(dāng)前節(jié)目的開始結(jié)束時間可以預(yù)測當(dāng)前節(jié)目的開始和結(jié)束,從而保證在節(jié)目發(fā)生切換時及時為新的節(jié)目建立新的兩級索引項。
采用上述的兩級索引元數(shù)據(jù)存儲結(jié)構(gòu)可以高效的實現(xiàn)時移電視、節(jié)目錄制和檢索以及節(jié)目內(nèi)容的非線性回看等功能。
PVR錄制節(jié)目時,使用解復(fù)用模塊將想要錄制的節(jié)目的音視頻PES數(shù)據(jù)從復(fù)用了多路節(jié)目的TS中提取出來,經(jīng)PES分組頭解析可以得到視頻數(shù)據(jù)幀的PTS以及各視頻幀的起始位置。把音視頻數(shù)據(jù)打成TS寫入本地存儲,同時利用過濾得到的PSI/SI信息表以及視頻關(guān)鍵幀的PTS和存儲位置按照2.3中描述的方法建立和更新兩級索引元數(shù)據(jù),并將用戶想要同時觀看的節(jié)目的音視頻PES數(shù)據(jù)送給播放器解碼播放。
圖2為PVR錄制與觀看節(jié)目時的系統(tǒng)結(jié)構(gòu)圖。復(fù)用了多路節(jié)目的TS數(shù)據(jù)被送入解復(fù)用(DEMUX)處理器,DEMUX 通道【1】,【2】和【3】用于提取用戶想要觀看的節(jié)目音視頻 PES數(shù)據(jù)和 PCR 信息;DEMUX 通道【4】,【5】和【6】用于提取要錄制的節(jié)目音視頻PES數(shù)據(jù)和PCR信息;PES解析器從視頻PES數(shù)據(jù)中解析出各視頻幀的PTS,將視頻關(guān)鍵幀的PTS送給兩級索引引擎;TS打包器將音視頻PES數(shù)據(jù)打包(需要更改音視頻數(shù)據(jù)及PCR的PID,用于時移時使用)成TS后寫入到本地存儲,并將視頻關(guān)鍵幀的存儲位置反饋到兩級索引引擎;DEMUX通道【7】用于過濾流中的PSI/SI信息表,將得到的SDT和EIT提交給兩級索引引擎。
圖2 PVR錄制結(jié)構(gòu)圖
通過錄制時建立的一級索引元數(shù)據(jù),PVR系統(tǒng)可以建立本地存儲中已錄制內(nèi)容的一級節(jié)目索引 (“節(jié)目描述-二級索引-音視頻數(shù)據(jù)”方式的本地電子節(jié)目指南)。通過一級節(jié)目索引,PVR系統(tǒng)可快速定位其中的某個節(jié)目的存儲位置,并得到該節(jié)目的二級索引元數(shù)據(jù),建立該節(jié)目“視頻關(guān)鍵幀位置-關(guān)鍵幀PTS”的二級索引結(jié)構(gòu),從而建立了PVR內(nèi)容的兩級索引結(jié)構(gòu),如圖3所示。根據(jù)2.2分析,該索引列表也可以看作是“PTS-數(shù)據(jù)片段存儲位置”的索引表,其中PTS為數(shù)據(jù)片段第1個視頻關(guān)鍵幀的PTS。
圖3兩級索引結(jié)構(gòu)圖
非線性回看是指用戶可以隨意選擇節(jié)目內(nèi)容中某個時間點作為下個要觀看的畫面,如快進(jìn)、快退、暫停和跳進(jìn)等操作是非線性回看的常用方式。當(dāng)用戶回看某個節(jié)目時,可以根據(jù)二級索引元數(shù)據(jù)在內(nèi)存中建立該節(jié)目的“PTS-數(shù)據(jù)片段存儲位置”索引表。圖4為節(jié)目非線性回看示意圖,其中ST為節(jié)目內(nèi)容播放進(jìn)度時間軸,STr0和STr1為兩個隨機(jī)時間點,ST0為回看起始點,STe為回看終點。該節(jié)目共有(n+1)個數(shù)據(jù)片段,第1個和最后1個數(shù)據(jù)片段的關(guān)鍵幀PTS分別為T0和Tn。
圖4 節(jié)目非線性回看示意圖
式中:αn為最后1個數(shù)據(jù)片段的播放時長,單位為秒(s);F為顯示標(biāo)簽時鐘,多為90 000 Hz或45 000 Hz,由節(jié)目制作方在內(nèi)容編碼時決定?;乜磿r,假如用戶要求下一畫面播放節(jié)目STr0時刻的數(shù)據(jù),可以通過“時間-數(shù)據(jù)片段”索引快速定位到STr0所在的數(shù)據(jù)片段m。因為該索引表中的PTS值是遞增的,所以可使用二分法進(jìn)行定位,其時間復(fù)雜度為θ(lbn)。片段m滿足如下條件
由圖4可得如下關(guān)系式
因為數(shù)據(jù)片段的第1幀為視頻關(guān)鍵幀,而且每個音頻幀都可以獨立解碼,所以所有數(shù)據(jù)片段都可以獨立解碼。數(shù)據(jù)片段中除第1幀外的其他視頻幀都不是關(guān)鍵幀,所以不能被獨立解碼。如式(3),(4)所示,用戶想看到的畫面必然包含在數(shù)據(jù)片段m中。通過二級索引項可快速找到數(shù)據(jù)片段m,并解碼播放,即完成了該非線性回看功能。這里會有一段用戶沒有要求看到的畫面,其持續(xù)時間應(yīng)小于αm,αm為數(shù)據(jù)片段m的播放時長。
時移觀看是指用戶在收看DVB實時節(jié)目時可以暫停、快退,并可對已過時的節(jié)目進(jìn)行非線性瀏覽。時移觀看是PVR錄制和內(nèi)容回看的有機(jī)結(jié)合,它是DVB實時節(jié)目收看和已錄制內(nèi)容非線性回看的無縫銜接。
如圖5所示,用戶觀看實時節(jié)目時,播放器直接播放DEMUX 通道 【4】,【5】,【6】提取的實時節(jié)目音視頻 PES數(shù)據(jù),同時PVR將這些數(shù)據(jù)寫入到本地存儲并建立兩級索引元數(shù)據(jù);當(dāng)用戶選擇暫停時,系統(tǒng)記錄下正在播放的視頻幀PTS,利用兩級索引快速定位到該PTS指向的數(shù)據(jù)片段,在用戶選擇播放后,從該數(shù)據(jù)片段開始回看本地存儲中錄制下來的內(nèi)容;當(dāng)用戶選擇快退操作時,用戶從已錄制下來的最后1個數(shù)據(jù)片段開始向前以用戶要求的倍率逆序回看本地存儲中的各個數(shù)據(jù)片段;當(dāng)用戶選擇向前跳轉(zhuǎn)操作時,系統(tǒng)使用用戶選擇的時間換算成PVR錄制時的PTS,并快速定位到本地存儲內(nèi)容中的相應(yīng)數(shù)據(jù)片段,從該片段開始正常播放。時移觀看時PVR錄制在同時進(jìn)行,本地存儲的節(jié)目內(nèi)容實時增長。當(dāng)快進(jìn)操作到達(dá)節(jié)目的實時進(jìn)度時,播放器重新開始播放DEMUX通道【4】,【5】和【6】提取出的實時數(shù)據(jù)。 在播放已錄制內(nèi)容時,DEMUX 通道【1】,【2】和【3】用于對已錄制的 TS 的解復(fù)用。
提出了一種基于EPG和PTS的兩級索引元數(shù)據(jù)存儲結(jié)構(gòu),適用于采用MPEG-2標(biāo)準(zhǔn)的數(shù)字電視節(jié)目的PVR應(yīng)用。與文獻(xiàn)[3]相比,該架構(gòu)只需利用當(dāng)前數(shù)字電視廣播流中的信息即可建立,適用于目前的數(shù)字電視系統(tǒng)。與文獻(xiàn)[4]相比,該架構(gòu)的一級內(nèi)容檢索精度同樣可以精確到每個節(jié)目,而二級檢索則可以精確到每個視頻關(guān)鍵幀,可用于提高非線性回看的精度。筆者采用Sigma Design的EM8623高清平臺,結(jié)合上海高清的HD2812解調(diào)芯片,采用上述兩級存儲檢索結(jié)構(gòu)及相關(guān)方法,設(shè)計實現(xiàn)了一款面向國標(biāo)地面廣播高清數(shù)字電視的PVR機(jī)頂盒,證明了該結(jié)構(gòu)及相關(guān)方法的有效性。
圖5 PVR時移播放結(jié)構(gòu)圖
:
[1]CHANG S F,SIKORA T,PURI A.Overview of the MPEG-7 standard.circuits and systems for video technology[J].IEEE Trans.Circuits and Systems for Video Technology,2001,11(6):760-764.
[2]TV-Anytime Forum[EB/OL].[2009-10-12].http://www.tv-anytime.org/.
[3]SHIN H.A storage and retrieval method of XML-based metadata in PVR environment[J].IEEE Trans. Consumer Electronics,2003,49 (4):1136-1140.
[4]LIM S Y,CHOI J H,SEOK J M,et al.Advanced PVR architecture with segment-based time-shift.consumer electronics[C]//Proc.ICCE 2007.Las Vegas,NV:[s.n.],2007:1-2.
[5]GY/Z 230—2008,數(shù)字電視廣播業(yè)務(wù)信息規(guī)范[S].2008.
[6]EN 300468 v1.6.1,Digital video broadcasting (DVB); specification for service information (SI)in DVB systems[S].2004.
[7]ISO/IEC 13818-1,Information technology-generic coding of moving pictures and associated audio information-part 1:systems[S].2000.
[8]ISO/IEC 13818-2,Information technology-generic coding of moving pictures and associated audio information-part 2:video[S].1995.
[9]ISO/IEC 13818-3,Information technology-generic coding of moving pictures and associated audio information-part 3:audio[S].1998.