摘要:隨著數(shù)字電視的普及,電視節(jié)目無論在數(shù)量還是種類上都在不斷的增加,給用戶帶來了眾多的可選擇性。雖然在選擇性上具有了較大的提升,但是用戶搜索自己感興趣的節(jié)目成為了一個繁瑣的過程。針對這一問題,設(shè)計并實現(xiàn)了基于TS傳輸流的數(shù)字電視節(jié)目推薦系統(tǒng)。系統(tǒng)分為服務(wù)端和客戶端,服務(wù)端根據(jù)數(shù)字電視的電子節(jié)目指南(EPG)信息,針對每一個節(jié)目,利用節(jié)目的相關(guān)屬性形成節(jié)目推薦列表,對所形成的節(jié)目推薦列表進(jìn)行TS打包,以TS流的方式進(jìn)行傳輸。客戶端解析TS流,得到節(jié)目推薦列表。
關(guān)鍵詞: 節(jié)目推薦;數(shù)字電視;傳輸流
中圖分類號:TP37 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)04-0875-05
The Design of Program Recommendation System Based on TS
MENG Ling-jun 1,2, LI Xiao-feng 1,2,WANG Mei 1, ZHANG Li-jun 1
(1.Shandong Jianzhu University, Ji’nan 250101, China; 2.Department of Digital Media, Inspur Group, Ji’nan 250101, China)
Abstract:With the popularity of digital television, the television program are constantly increasing in terms of the number or kind , and brought a multitude of optional to the user. Although selectivity has been greatly improved, but the user to search for programs of interest has become a tedious process. To solve this problem, this paper design and simulation of digital TV program recommendation system based on TS transport stream. The system is divided into server and client, The server using the program attributes to the formation of the program recommendation list. The program recommendation information packaged by TS and transport to client. The client analysis TS to get recommendation information.
Key words:program recommendation; digital television; transport stream
《中國廣播電影電視發(fā)展報告(2012)》顯示,2011年我國有線廣播用戶總量突破2億,入戶率達(dá)到49.43%,其中數(shù)字電視用戶突破1億戶。數(shù)字電視高效的承載能力使得有線電視的電視臺套數(shù)迅速增加,一般都提供100套以上的節(jié)目,傳統(tǒng)的電視報模式已經(jīng)完全不適用。數(shù)字電視的電子節(jié)目導(dǎo)航(Electronic Program Guide,EPG)成為重要的節(jié)目引導(dǎo)工具,用戶可以即時查看不同臺的節(jié)目列表。然而各臺EPG相互獨立,隨著節(jié)目臺套增加也使得查看EPG變得效率低下。因此需要對EPG信息進(jìn)行挖掘,為觀眾主動地進(jìn)行節(jié)目臺間的關(guān)聯(lián)推薦,提升觀眾進(jìn)行節(jié)目欣賞的目標(biāo)性。
1 問題提出
EPG在美、歐等數(shù)字電視發(fā)展較早的國家已得到廣泛應(yīng)用,成為數(shù)字電視的基本業(yè)務(wù)之一,并迅速發(fā)展成為一個行業(yè),是觀眾進(jìn)入數(shù)字電視和IPTV的門戶。目前我國EPG的應(yīng)用越來越廣泛,數(shù)字電視所提供的各種業(yè)務(wù)的導(dǎo)航大多是通過EPG來實現(xiàn)。為使得各個運營商之間的EPG相互兼容,國家廣播電視總局對EPG做了以下規(guī)范:
1) 為了確保EPG基本信息的兼容性,EPG基本信息必須使用業(yè)務(wù)信息(SI)傳送。用戶可以使用專用數(shù)據(jù)傳送個性化的EPG信息。
2) 為用戶提供良好的導(dǎo)航機(jī)制,方便用戶查看節(jié)目的附加信息,EGP應(yīng)包含節(jié)目單、當(dāng)前播放、節(jié)目附加信息(如情節(jié)介紹、演員名單等)、節(jié)目分類(如娛樂、體育、綜藝等)、節(jié)目預(yù)定、家長分級控制(對節(jié)目分級控制)。
數(shù)字電視各頻道的制作方每周發(fā)布一次下周EPG信息,采用簡單文本文件進(jìn)行存儲,包括頻道名稱、播出日期、播出時分和播出節(jié)目名稱等信息,如圖1。
有線電視運營商將所有頻道的EPG信息進(jìn)行匯總后通過數(shù)字電視播出系統(tǒng)進(jìn)行發(fā)布,用戶可以通過EPG信息可以了解正在播出及將要播出的電視節(jié)目的其他信息,并能夠快速定位到所選擇的電視節(jié)目,傳統(tǒng)的EPG具有以下缺點:
1) 各頻道EPG信息相互獨立,每次只能查看某一頻道的EPG信息。
2) 無法適應(yīng)用戶的不同需要,不能提供個性化的服務(wù)。
3) 機(jī)頂盒沒有能力進(jìn)行節(jié)目查詢和EPG節(jié)目搜索。
4) EPG效率低下,隨著頻道書目的增加,搜索節(jié)目變得繁瑣。
經(jīng)過對DVB-C標(biāo)準(zhǔn)及EPG信息進(jìn)行研究,該論文提出一種節(jié)目推薦思想,當(dāng)用戶在收看電視節(jié)目時,根據(jù)其所收看的內(nèi)容,向其推薦與之相關(guān)的其他頻道的電視節(jié)目,提高EPG效率,向用戶提供個性化服務(wù)。
2 解決方案
2.1 EPG實現(xiàn)原理
我國有線數(shù)字電視采用DVB-C標(biāo)準(zhǔn),其采用MPEG-2作為信源部分編碼標(biāo)準(zhǔn)。在MPEG-2標(biāo)準(zhǔn)中由于TS流適用于誤碼較多的環(huán)境,故DVB-C采用TS流的方式傳輸音視頻、及數(shù)據(jù)等信息。TS包由包頭、自適應(yīng)區(qū)及包數(shù)據(jù)三部分組成。其中TS包頭中的PID作為區(qū)分包類型的標(biāo)識。數(shù)字廣播業(yè)務(wù)信息SI中的網(wǎng)絡(luò)信息表NIT、業(yè)務(wù)群關(guān)聯(lián)表BAT、業(yè)務(wù)描述表SDT及事件信息表EIT等表都是通過TS流的方式傳輸?shù)絊TB。
NIT表、BAT表、SDT表及EIT表對EPG進(jìn)行描述。機(jī)頂盒通過解析上述表提取EPG信息,解析過程如下:
首先從NIT(PID=0x0010)中提取網(wǎng)絡(luò)和傳輸流信息,可以得到網(wǎng)絡(luò)的名稱、網(wǎng)絡(luò)傳輸流標(biāo)識和參數(shù),如果網(wǎng)絡(luò)傳輸?shù)墓?jié)目被分組可以從BAT(PID=0x0011)中得到每個節(jié)目包的信息。在沒有特定傳輸流攜帶網(wǎng)絡(luò)或節(jié)目分組中信息的情況下需要搜索每個頻道中的STD(PID=0x0011,與BAT的PID相同,可通過tableid區(qū)分),得到每個頻道的服務(wù)信息。如果STD中有馬賽克描述子,則將馬賽克節(jié)目圖像作為EPG界面。為獲取每個電視節(jié)目的具體事件信息,需要解析每個傳輸流中的EIT(PID=0x0012)。
2.2 解決方案
針對傳統(tǒng)EPG方式的缺點,為使用戶在收看的節(jié)目時向其推薦與之相關(guān)聯(lián)其他任何頻道的電視節(jié)目,解決機(jī)頂盒沒有查詢能力的缺陷,提高EPG搜索效率,該論文給出了以下解決方案:
首先考慮到傳統(tǒng)方式的EPG通過解析SI中的NIT、BAT、STD、EIT等表獲得,通過這種方式,STB只能獲取當(dāng)前頻道的EPG信息,無法搜索其他頻道的EPG信息,為解決該問題,將EPG節(jié)目推薦表的生成工作放在頭端服務(wù)器進(jìn)行。生成步驟如下:
1)將所有頻道的EPG信息通過程序?qū)霐?shù)據(jù)庫表epg中。
2)將epg表中的每個節(jié)目,利用相關(guān)度算法(見3.1),查找出相關(guān)的節(jié)目,將其導(dǎo)入節(jié)目推薦表recommendList中。
導(dǎo)入完成后,機(jī)頂盒呈現(xiàn)的最直接方式是將數(shù)據(jù)庫下發(fā)到機(jī)頂盒存儲中,后臺可以隨時通過查詢數(shù)據(jù)庫呈現(xiàn)推薦節(jié)目信息,然而數(shù)據(jù)導(dǎo)入完成后,數(shù)據(jù)庫RecommendEpg大小為20M左右,如圖2。限于機(jī)頂盒端的存儲能力有限,不能存儲所生成的數(shù)據(jù)。此方案不可行。
另一個方案是采用webservice的方式,STB請求推薦節(jié)目信息,此方式有兩個問題,一是需要與用戶交互,只有發(fā)送了請求才能接收推薦節(jié)目信息,二是對服務(wù)器的要求比較高,如果全市的用戶同時發(fā)送請求,并發(fā)量大,需要較高性能的服務(wù)器才能滿足要求,導(dǎo)致系統(tǒng)成本較高,此方案可行,但成本較高。
在考慮成本的因素下,為使機(jī)頂盒端接收推薦節(jié)目表,通過對DVB-T系統(tǒng)的研究,利用現(xiàn)有的系統(tǒng),將節(jié)目推薦表打包為Tnj8HMi0EiXfxvZtUC+ejz5ZmCYszTxKhtFCAmnUXztc=S實時發(fā)布。在發(fā)布推薦節(jié)目信息時,以頻點為單位,在所有頻點上找出每個頻點的所有頻道,然后找出所有頻道正在播出的電視節(jié)目,TS打包服務(wù)器只發(fā)送當(dāng)前時間正在播出節(jié)目的推薦節(jié)目信息。打包的TS包的信息量很小,一般情況下一個TS包就可滿足要求,對現(xiàn)有的傳輸系統(tǒng)的帶寬幾乎不構(gòu)成影響。為此需要設(shè)計傳輸協(xié)議,傳輸協(xié)議中需要規(guī)定該TS包中所承載的推薦節(jié)目表屬于哪個頻道,以及TS包數(shù)據(jù)部分的打包規(guī)范。
3 開發(fā)設(shè)計
該系統(tǒng)主要涉及頭端計算設(shè)計和傳輸協(xié)議設(shè)計,頭端計算主要是獲取EPG信息后,生成每個節(jié)目的推薦節(jié)目列表,將所有節(jié)目的推薦節(jié)目列表匯總為推薦節(jié)目表。傳輸協(xié)議主要是描述了推薦節(jié)目列表打包TS的規(guī)范。
3.1 頭端計算設(shè)計
由于大部分EPG信息沒有對節(jié)目進(jìn)行分類,直接通過節(jié)目類型對節(jié)目進(jìn)行推薦的方法行不通,為挖掘相關(guān)電視節(jié)目,目前能夠采用的方法是利用節(jié)目名稱的相關(guān)度,對epg表中的每個電視節(jié)目逐個匹配epg表中的節(jié)目,相關(guān)度算法公式(1)如下:
LCS算法計算節(jié)目A和節(jié)目B的最長公共子序列(如bcdf和dbcdfg的最長公共子序列為bcd),然后除以節(jié)目A和節(jié)目B節(jié)目名稱長度的最大值,得到的值為其相關(guān)度,相關(guān)度越大的表示關(guān)聯(lián)程度越大。若相關(guān)度大于某一閾值(可設(shè)定為0.5),則可認(rèn)定相關(guān)度比較高,值得推薦,將其信息導(dǎo)入推薦節(jié)目表中。
設(shè)計一個系統(tǒng)時,效率問題是不可回避的主題,在該系統(tǒng)中,每個頻道一天大約有30個節(jié)目,每周就有210個節(jié)目,以100個頻道為例,每周就需要為2萬個節(jié)目生成推薦節(jié)目信息,所以導(dǎo)致效率比較低,大約需要1個小時左右完成,但我們可以提前獲取EPG信息,并且每周只生成一次,所以本系統(tǒng)對效率要求不是特別高。另外一個是精確度問題,精確度可由閾值來控制,閾值越高匹配越精確。
3.2 傳輸協(xié)議設(shè)計
TS實際是面向數(shù)字化分配媒介(有線、衛(wèi)星、地面網(wǎng))的傳輸層接口。TS包由包頭、自適應(yīng)區(qū)和包數(shù)據(jù)3部分組成。每個包長度為固定的188字節(jié),包頭長度占4字節(jié),自適應(yīng)區(qū)和包數(shù)據(jù)長度占184字節(jié)。184字節(jié)為有用信息空間,用于傳送已編碼的音頻流、視頻流或者數(shù)據(jù)流。需在TS規(guī)范下設(shè)計EPG推薦節(jié)目信息規(guī)范,EPG推薦信息作為TS的包數(shù)據(jù)傳送到機(jī)頂盒端。EPG推薦信息規(guī)范分為頭信息規(guī)范和數(shù)據(jù)信息規(guī)范兩部分。
頭信息設(shè)計規(guī)范設(shè)計如圖3。
serviceId:根據(jù)MPEG-2標(biāo)準(zhǔn),16位字段,用于標(biāo)識節(jié)目號;
version:版本號,取值范圍0~31,循環(huán)遞增,STB根據(jù)版本號更新EPG推薦節(jié)目列表。
數(shù)據(jù)信息設(shè)計規(guī)范如圖4。
tsId:根據(jù)MPEG-2標(biāo)準(zhǔn),16位字段,流標(biāo)識符,其值與頻點一一對應(yīng),用于在多路復(fù)用中識別此傳送流,其值由用戶定義;
serviceId:根據(jù)MPEG-2標(biāo)準(zhǔn),16位字段,用于標(biāo)識節(jié)目號,根據(jù)此字段,可獲取頻道名稱;
classified:本規(guī)范定義,3位字段,隨著視頻業(yè)務(wù)的發(fā)展,電視節(jié)目的種類也在增加,例如普通的電視節(jié)目,視頻點播等等,此字段000代表普通電視節(jié)目,001代表點播節(jié)目,其它作為保留;
convert:本規(guī)范定義,2位字段,用戶在收到視頻推薦信息時,可選擇繼續(xù)收看當(dāng)前節(jié)目不跳轉(zhuǎn)、立即跳轉(zhuǎn)到推薦節(jié)目和預(yù)約推薦的節(jié)目。00為繼續(xù)收看當(dāng)前節(jié)目不跳轉(zhuǎn),01為立即跳轉(zhuǎn)到推薦節(jié)目,10為預(yù)約收看所推薦的節(jié)目。默認(rèn)值為00;
sumCount:本規(guī)范定義,3位字段,推薦信息以TS包為單位來傳送,此字段標(biāo)識推薦信息TS包的數(shù)量;
currentCount:本規(guī)范定義,3位字段,標(biāo)識當(dāng)前TS包是第幾個TS包,若currentCount等于sumCount值,表示推薦信息發(fā)送完成;
programName:本規(guī)范定義,160位字段即20字節(jié),標(biāo)識推薦節(jié)目的名稱;
time:本規(guī)范定義16位字段即2個字節(jié),標(biāo)識推薦節(jié)目播放的時間。
在此推薦信息打包規(guī)范下,一個推薦信息共占30字節(jié)。一個TS包的最大有效載荷為184字節(jié),按此計算,一個TS包最多可承載6個完整推薦信息。TS包數(shù)據(jù)中,未滿188字節(jié)部分填充字節(jié)0。
在TS包頭中有一字段PID,此PID值為唯一,用于標(biāo)識TS包的類型,可由廣電處提供PID值作為推薦信息TS包的包類型。
4 仿真測試
4.1 系統(tǒng)總體設(shè)計
本系統(tǒng)設(shè)計如圖5所示,主要包括以下部分:
1) 數(shù)據(jù)庫服務(wù)器,主要存儲EPG信息,EPG推薦信息及頻點映射等信息。
2) TS打包服務(wù)器,根據(jù)EPG推薦信息打包為TS。
3) 交換機(jī),打包后的TS通過IP的方式傳送到復(fù)用器;
4) 復(fù)用器,對EPG推薦信息TS包進(jìn)行復(fù)用。
5) IPQAM,對信息號進(jìn)行調(diào)制。
6) 機(jī)頂盒,對EPG推薦信息進(jìn)行解析。
4.2 打包發(fā)送過程
在頭端生成推薦節(jié)目表后,通過檢索epg表,得到當(dāng)前時間正在播出的節(jié)目,將各個正在播出節(jié)目的推薦節(jié)目信息按照傳輸協(xié)議的設(shè)計分別打包為TS,將數(shù)據(jù)傳輸?shù)絊TB端,STB通過解析TS包,獲取當(dāng)前正在播出節(jié)目的推薦信息。
具體發(fā)送過程如下:
1)檢索數(shù)據(jù)庫中epg表,獲取各個頻道正在播出的節(jié)目。
2)根據(jù)各頻道正在播出的節(jié)目,通過推薦節(jié)目表recommendList,查詢出其推薦節(jié)目內(nèi)容。
3)根據(jù)各頻道的serviceId及推薦節(jié)目內(nèi)容,按照所設(shè)計的傳輸協(xié)議打包為TS,version值循環(huán)遞增,STB根據(jù)version值來更新推薦節(jié)目表。
4)將形成的TS包,根據(jù)頻道所載頻點的IP及端口通過交換機(jī)發(fā)送到復(fù)用器。
5)復(fù)用器將EPG推薦節(jié)目信息發(fā)送到IPQAM調(diào)制后傳輸?shù)綑C(jī)頂盒端。
由于用戶隨時都可以觀看每一個頻道,所以各個頻道需要持續(xù)的發(fā)送節(jié)當(dāng)前正在播放電視節(jié)目的推薦節(jié)目列表。在本地主機(jī)上模擬TS打包服務(wù)器的發(fā)送過程,用wireshark軟件進(jìn)行抓包分析,結(jié)果如下圖6所示。
從上圖可以看出,本機(jī)源IP地址及目的IP地址,并且所發(fā)送的TS包被wireshark所識別,符合ISO/IEC 13818-1規(guī)范。
4.3 機(jī)頂盒端解析仿真
機(jī)頂盒端接收TS流后,根據(jù)用戶所觀看的頻道進(jìn)行解析,解析過程如下:
1)首先在機(jī)頂盒端,初始化一個空的EPG推薦節(jié)目列表。
2)解析TS包頭,若PID類型為推薦節(jié)目信息則執(zhí)行2),否則丟棄;
3)解析TS包數(shù)據(jù),獲取EPG推薦節(jié)目信息協(xié)議頭信息中的serviceId,若該值與當(dāng)前頻道的serviceId對應(yīng)則執(zhí)行3),否則丟棄;
4)如果serviceId與當(dāng)前頻道對應(yīng),查看version是否與EPG推薦節(jié)目信息列表相等,如果相等,則不做任何操作,如果不相等,則根據(jù)serviceId得到被推薦節(jié)目所在頻道的名稱,然后將頻道名稱,節(jié)目名稱,播出時間,是否預(yù)約信息等信息更新EPG推薦節(jié)目信息列表。分析結(jié)果如圖7所示。
從解析結(jié)果圖中可以看到,當(dāng)用戶在觀看北京衛(wèi)視的養(yǎng)生堂時,我們向其推薦了安徽衛(wèi)視頻道的養(yǎng)生堂,家庭健康頻道的中華養(yǎng)生寶典及衛(wèi)生健康頻道的立秋防燥宜養(yǎng)生等節(jié)目,可以很好的方便用戶了解其它頻道正在播出或?qū)⒁コ龅南嚓P(guān)節(jié)目。
5 結(jié)束語
本文對傳統(tǒng)EPG信息的原理進(jìn)行了綜述,并且給出了其缺點,對其缺點進(jìn)行分析后,根據(jù)用戶的需求,在TS規(guī)范下設(shè)計了EPG節(jié)目推薦信息系統(tǒng),滿足用戶個性化需求,并且本文對EPG推薦信息的生成,發(fā)送及接收做了詳細(xì)的設(shè)計,并給出了仿真的結(jié)果。當(dāng)用戶在收看節(jié)目時,幫助用戶了解其他頻道相關(guān)電視節(jié)目的相關(guān)信息,使得數(shù)字電視更具智能化。
參考文獻(xiàn):
[1] 黃成輝,鄧裕昭.MPEG-2中TS碼流包結(jié)構(gòu)和應(yīng)用功能[J].中國有線電視,2008(3):246-250.
[2] 王福奎.收看數(shù)字電視導(dǎo)游-電子節(jié)目指南EPG[J].電子世界,2005(8):9-11.
[3] 國家廣電總局發(fā)展研究中心.中國廣播電影電視發(fā)展報告(2012)[R].北京: 社會科學(xué)文獻(xiàn)出版社,2012:2-4.
[4] 鐘玉琢,王琪,趙黎,等.MPEG-2運動圖像壓縮編碼國際標(biāo)準(zhǔn)及MPEG的新進(jìn)展[M].北京:清華大學(xué)出版社,2002:37-46.
[5] 陳遠(yuǎn).機(jī)頂盒EPG的數(shù)據(jù)組織[J].電視廣播與傳輸,2000(10):34-38.
[6] Lee Gwang Soon,Kim Kwang Yong,Lee Soo In. Design and implementation of EPG (Electronic Program Guide) service platform in T-DMB[C].2008(8):1-4.
[7] Basic R,Mocinic M. User's requirements for electronic program guide (EPG) in interactive television (iTV)[C]. Video/Image Processing and Multimedia Communications 4th EURASIP-IEEE Region 8 International Symposium on VIPromCom,2002:457-462.
[8] 劉雪,王保保.數(shù)字電視機(jī)頂盒EPG系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2008(19):5129-5131.