劉利容 蔣慶洲

摘要??? 在數字電視機頂盒的招標測試中,運營商客戶越來越看重機頂盒的性能指標。其中,搜索速度又是顯得非常重要的一環。但是由于數字電視前端規范的限制,表格的發送速度是一定的,這就限制了數字電視機頂盒的搜索速度。本文以數字電視有線產品為例,探討了怎樣通過基本的NIT,PAT,PMT,SDT表格實現快速搜索的方法,以便數字電視產業軟件人員進行參考。
【關鍵詞】嵌入式產品 PSI/SI表格 節目搜索
1 前言
1993年,歐洲成立了國際數字視頻廣播組織(DVB組織)。DVB組織決定新的技術必須是建立在MPEG-2壓縮算法上的數字技術,必須是以市場為導向的數字技術。DVB的宗旨是要設計一個通用的數字電視系統,在此系統內的各種傳輸方式之間的轉換有最簡單的方式,盡可能的增加通用性。DVB標準提供了一套完整的、適用于不同媒介的數字電視系統規范。DVB數字廣播傳輸系統利用了包括衛星、有線、地面、SMATV、MNDSD在內的所有通用電視廣播傳輸媒體。它們分別對應的DVB標準:DVB-S、DVB-C、DVB-T、DVB-SMATV、DVB-MS和DVB-MC。
隨著DVB組織的成立,DVB規范的發布。數字電視市場在全球如春筍成長起來。至今已有20余年的時間。在市場上諸如衛星,地面波,有線,雙向,智能的數字電視機頂盒層出不窮。中國也成為了全球最大的DTH和數字有線電視機頂盒市場。但是無論這些產品形態怎么變,使用什么信道。都需要通過使用DVB標準中的PSI/SI表格進行節目搜索安裝。
2 DVB標準的四種表格
在DVB標準中,有一個非常重要的標準,名叫《En300468_e3》,在這個標準里面規定了數字電視的表格指引規范。本文中重點用到了NIT、PAT、PMT和SDT四種表格:
NIT(Network Information Table)網絡信息表:在一個運營商整個數字網絡中是唯一的。其描述了網絡里面所有的頻點的信息,以及頻點里面節目的一些基本信息。在這個表格中,包括了下面的一些描述子,見表1。
播出頻率:5秒一次
注意:國內運營商發的NIT里面,多數情況下是沒有0x41及0x83描述子的。
PAT(Program Association Table)節目映射表:在運營商每個頻點中是唯一的,起描述了這個頻點里面所有的PMT表格信息。在這個表格中,包括了每個PMT表對應的節目號及對應的PMT表的PID。節目數量根據運營商在每個頻點的配置相關,一般為6到20個。
播出頻率:0.25秒一次
PMT(Program Map Table)節目信息表:通過這個表格,可以拿到對應節目的實際視頻及音頻的PID,以供使用者可以觀看節目。
播出頻率:0.25秒一次
SDT(Service Description Table)節目描述表:在運營商每個頻點中是唯一的(Act SDT),但是可以同時描述其他頻點的SDT表格(Other SDT)。在這個表格中,有比較多的描述子,本文只需要使用到節目名描述子。它在SDT表每個節目段的描述里面。
播出頻率:5秒一次
注意:國內運營商發送的頻點內,通常不會描述其他頻點的SDT表格(Other SDT)。
3 數字電視機頂盒節目搜索流程
節目搜索過程,就是一個解析運營商所有頻點信息,并去每個頻點搜索相關表格,從而獲取每個節目的音視頻PID,及節目名的過程。在這個過程中,數字電視機頂盒一般會按照下面的步驟進行節目搜索:
(1)到運營商預置的頻點去獲取NIT表格,從NIT表格中解析出每個頻點的參數。
(2)利用高頻頭鎖定NIT表格信息中指定的一個頻點。
(3)從這些頻點中取出PAT表,解析得出PMT表格的PID。
(4)通過上述PID,搜索PMT表格,再通過PMT表格解析獲取音視頻的PID。
(5)再搜索這個頻點的SDT表格,解析得出這些節目的名字。
(6)把得到的節目音視頻PID,及節目名存儲到數據庫中。
由于NIT和SDT表格的標準循環周期比較長,達到5秒左右,一個頻點通常需要7秒鐘才能搜索完畢,如果一個運營商有20個頻點就需要:
主頻點NIT5秒+20*7=145秒的時間才能搜索完畢。
4 節目搜索效率提高的方法
經過多年機頂盒軟件編寫的經驗,我們總結出了一套行之有效的方法,能夠大幅提高節目搜索的效率:
(1)首先,我們在主頻點搜索NIT表,通過NIT表解析出每個頻點的參數。這一點和普通的搜索方法無異。
(2)然后,我們在NIT表里面,利用0x41節目描述子的特性,把每個頻點下的節目列表的ServiceID也可以分析出來。
(3)接著,我們搜索主頻點上所有的Act SDT及Other SDT表格,再根據第二步搜索出來的ServiceID列表對應上所有節目的節目名。這樣,我們就拿到所有節目的節目名了。
(4)接著,我們再到每個頻點上去拿這個頻點的PAT和PMT,通過搜索解析這兩個表格,得到這個節目的音視頻PID。上文提到PAT,PMT的間隔只有0.25秒,是非常小的,每個頻點只需要2秒鐘的時間就可以完成搜索和解析。
(5)最后,我們把得到的節目音視頻PID,及節目名存儲到數據庫中。
這樣,我們也假設運營商有20個頻點,由于SDT表格是順序發送的,我們可以簡單的認為SDT表就只有一個,這樣我們就需要:主頻點NIT+SDT5秒+20*2=45秒的時間。比標準的搜索周期節約了接近68.9%的時間。大大提高了搜索效率。
5 探討
(1)我們在上文中提到了,NIT表的0x41描述子及Other SDT表在國內運營商中是很少用的。這就需要數字電視機頂盒軟件從業人員多花時間吃透文檔,具有比較深厚的基本功。和運營商前端工程師共同探討怎樣才能找到提高數字電視機頂盒搜索效率的方法,以提升終端用戶體驗。
(2)在搜索主頻點的Other SDT表格的時候,如果采用搜索一個,解析一個的方法,對于機頂盒的數據搜索及解析部分的效率要求比較高,很容易造成掉包搜不到的情況。建議使用一次出發多個過濾器,把所有的Other SDT表全部抓下來一次解析的方法。但這樣對于數字機頂盒的底層驅動并發搜索能力的要求比較高,一不小心就容易造成數字電視機頂盒死鎖,需要軟件開發人員特別留意,內部多設計測試項進行測試,避免發貨后造成大面積死鎖。
(3)在搜索完主頻點后,數字電視機頂盒已經拿到了所有的頻點信息和節目的Service ID及節目名。其實完全可以不再需要到各個頻點進行PAT,PMT表格的搜索,只需要實際播出節目的時候,再到節目所在頻點去獲取并解析相關表格得到音視頻的PID。這樣可以把搜索速度做到極致,但是搜索完畢后每到一個新的頻點都會額外需要2秒的時間去獲取解析PAT,PMT表格。無法達到換臺快的性能指標。此點需要數字電視機頂盒軟件從業人員擁有豐富經驗,以便和運營商前端人員一同商討,怎樣取舍才能使最終用戶得到最滿意的用戶體驗。
6 結論
數字電視的標準看起來很簡單,但是需要軟件從業人員花很多時間認真學習,不斷摸索,掌握其中的原理。從而才能做出更高效,易用的軟件,使終端用戶體驗達到極致。
參考文獻
[1]DVB組織標準:《EN 300 468 V1.3.1 1998-02》.