韓洪波 ,孫 鵬 ,倪 宏 ,朱小勇
(1.中國科學院研究生院,北京 100039;2.中國科學院 聲學研究所國家網絡新媒體工程技術研究中心,北京 100190)
數(shù)字電視的逐步普及使電視成為家庭娛樂和信息獲取中最主要的方式之一。個人視頻錄像機(PVR)的出現(xiàn)改變了人們收看電視節(jié)目的方式,讓用戶可以錄制、時移收看電視節(jié)目,不再受電視臺廣播計劃的約束。隨著節(jié)目制作、數(shù)字化和數(shù)字電視廣播傳輸技術的逐漸成熟,數(shù)字電視節(jié)目內容日益豐富,再加上存儲成本的不斷下降,使得PVR可以錄制存儲的節(jié)目越來越多。因此,如何對這日益龐大的節(jié)目內容進行索引、搜索、過濾和管理成為新的技術要求。MPEG組織制定了致力于媒體內容描述的MPEG-7標準[1],TV-Anytime也定義了互動相關的結構和元數(shù)據(jù)描述方法[2],這些針對媒體內容描述的信息可用于建立對媒體內容的檢索機制。然而如何對現(xiàn)在尚未使用這些標準的數(shù)字電視廣播內容進行索引、搜索、過濾和管理,已經成為使用中的難題。有研究提出了一種基于XML的元數(shù)據(jù)方法來實現(xiàn)PVR應用中的存儲和檢索[3],也有人提出了支持基于片段的時移收看的高級PVR結構[4]。
筆者基于EPG和音視頻數(shù)據(jù)幀顯示時間標簽(PTS)提出了一種面向PVR應用的兩級元數(shù)據(jù)存儲檢索結構,并在此基礎上,設計了PVR應用中的節(jié)目錄制、內容檢索、時移電視以及對已錄制內容的非線性回看的實現(xiàn)方法。
目前國內正式運營的數(shù)字電視節(jié)目內容主要以MPEG-2傳輸流(TS)的方式廣播下發(fā)。通常一個頻點的TS中會復用多路節(jié)目。通過對特定頻點的TS進行解復用可以得到復用在該頻點中的各路節(jié)目的音視頻分組原始流(PES)和EPG信息表,通過PES分組頭解析可以得到PES中各幀的顯示時間標簽(PTS)。把要錄制的電視節(jié)目的音視頻PES打包成TS格式存儲下來,并基于EPG信息和PTS信息為之建立起兩級索引結構。
EPG是數(shù)字電視的重要特性,數(shù)字電視接收終端均可利用DVB-SI表信息建立“頻道-時間-節(jié)目”形式的電子節(jié)目單[5]。參照DVB中傳遞EPG信息的PSI/SI表的內容[6],定義一級索引元數(shù)據(jù)語法結構如下:

其中shortDescriptor和longDescriptor可以從事件信息表(EIT)中提取。
根據(jù)MPEG-2標準,音視頻數(shù)據(jù)解碼和顯示通過相應的時間戳來控制,以實現(xiàn)唇音同步。而音視頻數(shù)據(jù)幀的PTS是該幀聲音或圖像呈現(xiàn)給用戶的相對時間[7-9]。基于視頻關鍵幀的PTS定義二級索引元數(shù)據(jù)語法結構如下:

音視頻數(shù)據(jù)按照TS格式存儲,通過二級索引元數(shù)據(jù)可以對音視頻數(shù)據(jù)進行分段。如圖1所示,IV0,IV1,…,IVN為TS中的視頻關鍵幀;FV0L,F(xiàn)V1L,…,F(xiàn)VNL為相鄰視頻關鍵幀間的非關鍵幀和音頻數(shù)據(jù)的集合;定義SegV0,SegA0,SegV1,SegA1,…,SegVN,SegAN為數(shù)據(jù)片段,則數(shù)據(jù)片段是音視頻幀的集合,數(shù)據(jù)片段的第1幀為視頻關鍵幀,其余為非關鍵幀和音頻幀。

圖1節(jié)目TS數(shù)據(jù)存儲結構圖
PVR錄制節(jié)目時,通過解析SDT表和EIT表可得到當前播放節(jié)目的節(jié)目描述信息以及節(jié)目的開始和結束時間,從而為錄制的每個節(jié)目建立“存儲位置+節(jié)目描述+二級索引”的一級索引信息;在將音視頻PES數(shù)據(jù)打包成TS之前對PES頭進行解析,可以得到視頻幀的PTS信息,從中抽取關鍵幀的PTS以及關鍵幀存儲到TS中的位置為每個節(jié)目建立“關鍵幀位置+關鍵幀PTS”的二級索引信息,這樣就為錄制的節(jié)目建立了兩級索引信息。DVB節(jié)目會有切換,即當前節(jié)目結束,下一個節(jié)目開始。根據(jù)EIT中當前節(jié)目的開始結束時間可以預測當前節(jié)目的開始和結束,從而保證在節(jié)目發(fā)生切換時及時為新的節(jié)目建立新的兩級索引項。
采用上述的兩級索引元數(shù)據(jù)存儲結構可以高效的實現(xiàn)時移電視、節(jié)目錄制和檢索以及節(jié)目內容的非線性回看等功能。
PVR錄制節(jié)目時,使用解復用模塊將想要錄制的節(jié)目的音視頻PES數(shù)據(jù)從復用了多路節(jié)目的TS中提取出來,經PES分組頭解析可以得到視頻數(shù)據(jù)幀的PTS以及各視頻幀的起始位置。把音視頻數(shù)據(jù)打成TS寫入本地存儲,同時利用過濾得到的PSI/SI信息表以及視頻關鍵幀的PTS和存儲位置按照2.3中描述的方法建立和更新兩級索引元數(shù)據(jù),并將用戶想要同時觀看的節(jié)目的音視頻PES數(shù)據(jù)送給播放器解碼播放。
圖2為PVR錄制與觀看節(jié)目時的系統(tǒng)結構圖。復用了多路節(jié)目的TS數(shù)據(jù)被送入解復用(DEMUX)處理器,DEMUX 通道【1】,【2】和【3】用于提取用戶想要觀看的節(jié)目音視頻 PES數(shù)據(jù)和 PCR 信息;DEMUX 通道【4】,【5】和【6】用于提取要錄制的節(jié)目音視頻PES數(shù)據(jù)和PCR信息;PES解析器從視頻PES數(shù)據(jù)中解析出各視頻幀的PTS,將視頻關鍵幀的PTS送給兩級索引引擎;TS打包器將音視頻PES數(shù)據(jù)打包(需要更改音視頻數(shù)據(jù)及PCR的PID,用于時移時使用)成TS后寫入到本地存儲,并將視頻關鍵幀的存儲位置反饋到兩級索引引擎;DEMUX通道【7】用于過濾流中的PSI/SI信息表,將得到的SDT和EIT提交給兩級索引引擎。

圖2 PVR錄制結構圖
通過錄制時建立的一級索引元數(shù)據(jù),PVR系統(tǒng)可以建立本地存儲中已錄制內容的一級節(jié)目索引 (“節(jié)目描述-二級索引-音視頻數(shù)據(jù)”方式的本地電子節(jié)目指南)。通過一級節(jié)目索引,PVR系統(tǒng)可快速定位其中的某個節(jié)目的存儲位置,并得到該節(jié)目的二級索引元數(shù)據(jù),建立該節(jié)目“視頻關鍵幀位置-關鍵幀PTS”的二級索引結構,從而建立了PVR內容的兩級索引結構,如圖3所示。根據(jù)2.2分析,該索引列表也可以看作是“PTS-數(shù)據(jù)片段存儲位置”的索引表,其中PTS為數(shù)據(jù)片段第1個視頻關鍵幀的PTS。

圖3兩級索引結構圖
非線性回看是指用戶可以隨意選擇節(jié)目內容中某個時間點作為下個要觀看的畫面,如快進、快退、暫停和跳進等操作是非線性回看的常用方式。當用戶回看某個節(jié)目時,可以根據(jù)二級索引元數(shù)據(jù)在內存中建立該節(jié)目的“PTS-數(shù)據(jù)片段存儲位置”索引表。圖4為節(jié)目非線性回看示意圖,其中ST為節(jié)目內容播放進度時間軸,STr0和STr1為兩個隨機時間點,ST0為回看起始點,STe為回看終點。該節(jié)目共有(n+1)個數(shù)據(jù)片段,第1個和最后1個數(shù)據(jù)片段的關鍵幀PTS分別為T0和Tn。

圖4 節(jié)目非線性回看示意圖

式中:αn為最后1個數(shù)據(jù)片段的播放時長,單位為秒(s);F為顯示標簽時鐘,多為90 000 Hz或45 000 Hz,由節(jié)目制作方在內容編碼時決定。回看時,假如用戶要求下一畫面播放節(jié)目STr0時刻的數(shù)據(jù),可以通過“時間-數(shù)據(jù)片段”索引快速定位到STr0所在的數(shù)據(jù)片段m。因為該索引表中的PTS值是遞增的,所以可使用二分法進行定位,其時間復雜度為θ(lbn)。片段m滿足如下條件

由圖4可得如下關系式

因為數(shù)據(jù)片段的第1幀為視頻關鍵幀,而且每個音頻幀都可以獨立解碼,所以所有數(shù)據(jù)片段都可以獨立解碼。數(shù)據(jù)片段中除第1幀外的其他視頻幀都不是關鍵幀,所以不能被獨立解碼。如式(3),(4)所示,用戶想看到的畫面必然包含在數(shù)據(jù)片段m中。通過二級索引項可快速找到數(shù)據(jù)片段m,并解碼播放,即完成了該非線性回看功能。這里會有一段用戶沒有要求看到的畫面,其持續(xù)時間應小于αm,αm為數(shù)據(jù)片段m的播放時長。
時移觀看是指用戶在收看DVB實時節(jié)目時可以暫停、快退,并可對已過時的節(jié)目進行非線性瀏覽。時移觀看是PVR錄制和內容回看的有機結合,它是DVB實時節(jié)目收看和已錄制內容非線性回看的無縫銜接。
如圖5所示,用戶觀看實時節(jié)目時,播放器直接播放DEMUX 通道 【4】,【5】,【6】提取的實時節(jié)目音視頻 PES數(shù)據(jù),同時PVR將這些數(shù)據(jù)寫入到本地存儲并建立兩級索引元數(shù)據(jù);當用戶選擇暫停時,系統(tǒng)記錄下正在播放的視頻幀PTS,利用兩級索引快速定位到該PTS指向的數(shù)據(jù)片段,在用戶選擇播放后,從該數(shù)據(jù)片段開始回看本地存儲中錄制下來的內容;當用戶選擇快退操作時,用戶從已錄制下來的最后1個數(shù)據(jù)片段開始向前以用戶要求的倍率逆序回看本地存儲中的各個數(shù)據(jù)片段;當用戶選擇向前跳轉操作時,系統(tǒng)使用用戶選擇的時間換算成PVR錄制時的PTS,并快速定位到本地存儲內容中的相應數(shù)據(jù)片段,從該片段開始正常播放。時移觀看時PVR錄制在同時進行,本地存儲的節(jié)目內容實時增長。當快進操作到達節(jié)目的實時進度時,播放器重新開始播放DEMUX通道【4】,【5】和【6】提取出的實時數(shù)據(jù)。 在播放已錄制內容時,DEMUX 通道【1】,【2】和【3】用于對已錄制的 TS 的解復用。
提出了一種基于EPG和PTS的兩級索引元數(shù)據(jù)存儲結構,適用于采用MPEG-2標準的數(shù)字電視節(jié)目的PVR應用。與文獻[3]相比,該架構只需利用當前數(shù)字電視廣播流中的信息即可建立,適用于目前的數(shù)字電視系統(tǒng)。與文獻[4]相比,該架構的一級內容檢索精度同樣可以精確到每個節(jié)目,而二級檢索則可以精確到每個視頻關鍵幀,可用于提高非線性回看的精度。筆者采用Sigma Design的EM8623高清平臺,結合上海高清的HD2812解調芯片,采用上述兩級存儲檢索結構及相關方法,設計實現(xiàn)了一款面向國標地面廣播高清數(shù)字電視的PVR機頂盒,證明了該結構及相關方法的有效性。

圖5 PVR時移播放結構圖
:
[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è)務信息規(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.