基于地面高清機頂盒的PVR系統設計與開發
3.3 EPG信息的提取和使用
本系統的EPG通過兩種方式獲取,其一是在播放節目時按下EPG按鍵顯示的present/following(當前/隨后)信息,其二是通過主界面的EPG菜單進入節目指南,顯示出頻道列表和按照時間排列的各頻道節目信息,為用戶提供電視節目列表。系統通過Tuner板的解調芯片,從接收的TS流中解析出服務信息(Service information,SI)數據,并在系統緩存中建立SI數據庫,用戶通過EPG的用戶界面(UserInterface,UI)與SI數據庫進行交互。EPG的SI以節目為單位,將與每個節目相關的事件都存儲在該節目的事件鏈表上,對于單個頻道的事件,其數據結構如下:本文引用地址:http://www.104case.com/article/166862.htm
如上所示,EPG信息主要包含了每個節目所對應的節目名、開始時間、持續時長以及相鄰事件的指針,當然,事件信息還包括它所對應的頻道信息三要素(transportid,network id,service id)。
EPG的信息量非常大,并且經常更新,但是由于系統搜索一次EPG信息周期長達8~10s,所以除了開機之后的第一次獲取外,當用戶按鍵瀏覽EPG時,只有當前節目已經過期的情形下,系統才實時地分析獲取,并將其緩存至系統內存,其余情形下系統讀取緩存數據以大幅度提高響應速度。由于EPG的信息時效性很強,因此在退出系統時無需保存。
用戶通過UI來實現與EPG之間的交互,在UI部分,向用戶提供了非常友好的EPG菜單界面,實現了節目的按頻道分類以及按日期分類,用戶通過這些菜單界面,可以方便地瀏覽節目中近期播放的事件的信息,選擇自己喜歡的節目來播放,并且可以設置自動錄制指定某個頻道的某個時間段的節目。
3.4 預錄節目管理
前文已經提到了使用EPG信息與時鐘板來進行電視節目的預約錄制。用戶在瀏覽EPG列表時選中想要錄制的節目,按下預約錄制按鈕,系統自動將預錄信息寫入配置文件,并存儲至硬盤,文件條目格式如下:
其中條目按照開始時間的先后順序排列,開始時間與結束時間均以BCD碼的形式保存以節省存儲空間,同時也可以與通用的struct tm格式方便地進行轉換。用戶可以隨時進入預錄條目管理界面刪除不需要的條目,也可以再次進入EPG界面選擇并添加新條目,系統將根據已有條目情況判斷是否有時間沖突,若有則無法預錄,若無則選擇正確的位置插入條目。系統在開機時自動檢測硬盤上是否存在配置文件,若存在,則讀取文件第一個沒有過期的條目,取出節目開始時間,與從時鐘板獲得的系統當前時間進行循環比較,一旦到點,系統將停止當前音、視頻的播放,并且跳轉至預約節目的錄制。通過配置文件的使用,系統實現了電視節目的一鍵錄制,錄制信息,包括節目名、頻道名以及錄制開始時間,均以文件名的形式記錄,方便用戶對于錄制文件的查找與分類管理。由于配置文件被寫入硬盤,所以除了極端特殊情況,比如在寫配置文件時意外斷電,通常情形下在系統斷電后文件仍然存在,從而實現了預錄節目的斷電續錄功能。
4 結束語
本文開發的PVR系統已經產品化,并隨著地面高清信號的開播同步大批量投放市場。由于采用成熟的uClinux操作系統、sigma FM8622L芯片組以及配套的SDK進行二次開發,系統表現穩定,在電視信號質量良好的情況下,錄像文件碼率平穩,播放效果流暢,長時問錄制與播放均不會出現死機等系統異常狀況,配合液晶高清電視和家庭影院,完全體現了分辨率高達1920×1080的高質量視頻以及高保真音頻所帶來的震撼感受,并且通過優化的UI設計,使得EPG無縫嵌入電視播放流程,用戶查看節目指南、錄制當前節目以及預錄節目均可一鍵實現,相比PC平臺同類型產品而言,具有性價比高、系統穩定、防病毒木馬侵襲、以及使用專用音、視頻解碼芯片,高清解碼能力更出色等優點。當前系統仍存在一些缺點,如天線對信號方位敏感,雨雪天氣收看效果不佳,以及錄制高清信號時由于碼率較高,占用大量系統緩存,從而妨礙其他功能(比如BT下載)的并發執行。下一步工作是設法在硬件上提高天線性能,以及優化代碼,減少系統開銷,確保各項功能并發執行互不影響。
評論