基于地面高清機頂盒的 PVR 系統設計與開發
1引言
2006 年8 月18 日,國家標準化管理委員會正式發布了我國具有自主知識產權的《數字電視地面廣播傳輸系統幀結構、信道編碼和調制》標準(簡稱“中國數字電視地面傳輸標準”)。該標準支持高清晰度電視(HDTV)、標準清晰度電視(SDTV)和多媒體數據廣播(MMDB)等多種業務,滿足大范圍固定覆蓋和移動接收的需要。地面高清數字廣播系統于2008 年7 月投入使用,已成功進行了北京奧運會的全程直播,并將直播2010 年上海世博會。針對地面高清市場的各類產品及技術應運而生,而PVR 功能則是相關產品技術中的難點和亮點。
PVR 的全稱是Personal Video Recorder(個人視頻錄像機),但其實際功能超出了名稱的表述。PVR 的突出特點是以硬盤為存儲媒介,建立本地的海量緩沖區和節目存儲庫,利用數字化處理技術,實現對節目的控制和管理。數字化和存儲技術是PVR 技術的核心,PVR 技術和數字機頂盒結合而產生的PVR 機頂盒,將兩種先進技術相結合,將電視生活向前推進了一步。PVR 數字機頂盒應用于數字電視系統,相對于模擬PVR,它把數字化放在前端,而不是在機頂盒客戶端上來進行數字編碼,使得節目更清晰、終端成本更低、節目控制更方便。.PVR 機頂盒把硬盤錄放技術和電子節目指南(Electronic Program Guide,EPG)相結合,將節目的內容和節目的信息相關聯,方便節目的查詢和管理,亦可根據節目單進行預約錄像,操作簡單方便。PVR 技術和
數字機頂盒的結合是電視節目播放技術發展的必然趨勢。
本文研究在嵌入式系統下 ADTB-T 高清電視信號以及標清電視信號的PVR 功能的實現。論文主要針對高清電視信號特有的高碼率TS 流傳輸和處理與嵌入式系統的相對緊張的系統資源這一矛盾進行研究,過軟硬件的配合實現PVR 的各項基本功能,并在此基礎上,通過緩存技術,實現錄制與播放的無縫連接,同時充分利用ADBT-T 信號提供的EPG 信息,方便用戶預約錄制,并提供人性化的界面設計,提高用戶友好度。1 硬件架構本系統基于 Sigma Designs 公司的EM8622 平臺進行開發,使用主頻為202MHz 的ARM7 中央處理器、128MBDDR 內存、以及8MB FLAsH 芯片,配合上海高清HD2910 國際融合芯片,可以支持地面高清數字信號以及標清模擬信號的兼容播放與無損錄制,同時配合時鐘板和地面廣播信號配套EPG,可以實現電視節目的定時錄制、自動開機預約錄制以及斷電續錄功能。硬件框架圖如下圖1 所示:
如圖,射頻信號由天線接收后送至HD2910TUNER(調諧器)板解調為MPEG2格式的TS(Transport Stream)流,經RISC架構的2D圖形引擎處理后傳輸至DEMUX(解復用)芯片,經解復用后分為APES流(打包的音頻基本碼流)和VPES流(打包的視頻基本碼流)。此時根據錄制模式的不同,數據的走向也不同,具體分類如下:
(1)只播模式:通道1開,通道2、通道3關。APES/VPES流輸送到DECODER(解碼芯片)解碼后生成音/視頻數據,分別進行音/視頻輸出。
(2)只錄模式:通道2開,通道1、通道3關。為了保證錄制文件碼率的穩定,將APES/VPES流經過PCI總線送至系統緩存,緩沖3至5s后再經PCI總線分別保存為音/視頻硬盤文件。
(3)邊播邊錄模式:通道1、通道2開,通道3關。打開通道1,APES/VPES流經DECODER解碼后輸出至音/視頻終端,同時打開通道2,將PES流數據經系統緩存后保存至硬盤。
(4)錄像播放模式:通道3開,通道1、通道2關。打開硬盤音視頻文件,將數據送到系統緩存,然后經過音視頻同步處理后再傳輸到DECODER,最后進行相應的音/視頻輸出。
(5)時移播放模式:通道2、通道3開,通道1關。時移播放即指通過硬盤的緩存能力,用戶可以像操作本地文件一樣暫停當前播放的電視節目,過任意時間后繼續播放,或者隨時回放已播精彩鏡頭。在這種模式下,系統先將APES/VPES流經系統緩存后保存為硬盤音/視頻文件,然后根據用戶需要可以隨時將硬盤文件音/視頻解碼并輸出。
(6)預約錄制模式:與邊播邊錄模式類似,不同之處在于利用EPG和時鐘板定時喚醒系統進行節目的錄制。
2 軟件結構
本系統采用sigma Designs公司提供的配套軟件開發包(SDK),主要分為兩個部分:Armutils開發包與EM8623L開發包。
Armutils開發包主要包含uClinux內核、文件系統、編譯工具、編譯環境等與ARM芯片相關的軟件。使用Armutils開發包來生成PVR機頂盒的運行內核,以及機頂盒應用程序的編譯與調試環境。
EM8620L開發包主要包含Envision EM8623L開發板的相關驅動,啟動引導程序(Boot Loader),以及名為DCC(Decoding Chain Control)的用戶接口,用戶程序可通過DCC庫的調用實現對底層硬件的訪問,PVR機頂盒應用程序的開發都是基于這些接口與驅動之上的。圖2簡單描述了解決方案提出的軟件開發層次結構。
3 關鍵實現技術
3.1 音、視頻同步技術
電視信號錄制產生的音、視頻數據各自以PES包的形式存儲在硬盤上,當它們被讀出并且被解碼播放時,隨之就會產生音頻和視頻之間的同步問題。
數字電視廣播的MPEG-2數字碼流中包括兩種時間信息:用于機頂盒本地系統時鐘與廣播系統前端時鐘同步的節目時鐘參考(Program Clock Reference,PCR),位于TS包的首部;以及用于音視頻同步的展現時間戳/解碼時間戳(Presentation Time stamp/Decoding Timestamp,PTS/DTS),位于PES包的首部。在本PVR系統中,由于音、視頻數據是以PES包的格式被存儲到硬盤的,所以PCR并沒有被存儲;而另外一方面,在播放已錄節目時,音、視頻數據是實時從硬盤中讀出的,讀取數據和播放數據都同屬于PVR系統內部的操作,所以并不存在系統間時鐘同步的問題,因此,在PVR系統的回放操作中不用考慮PCR。所以在錄像回放過程中,只能利用PTS/DTS來維持音頻與視頻的同步。播放錄像時,幀速率(FrameRate)決定了視頻數據的解碼速率,所以可以將視頻PTS作為基準,將音頻PTS與之相比較,以此調整音頻解碼的速率,從而達到使音頻與視頻同步的目的,具體采用的方法如下:
(1)視頻數據被傳送到解碼單元的視頻緩沖區的過程中,對它進行解析,記錄其中的PTS,并構建視頻PTS表;
(2)對于音頻數據,也同樣構建音頻PTS表;
(3)在解碼過程中將視頻PTS作為基準,修正解碼單元中由系統時鐘驅動的SCR(系統時鐘參考)計數器的值;
(4)根據音頻緩沖區指針的位置,在音頻PTS表中查找相應的PTS值,將此值與SCR計數器的值相比較,作為調整音頻解碼速率的依據,從而控制音頻解碼器解碼動作,實現音頻數據跟隨視頻數據的同步。
3.2 緩存技術
如圖2所示,經過前端解調得到的TS流經由2D圖像引擎處理后進入DEMUX模塊。DEMUX模塊是一個集成在主控芯片中的特殊微處理器,主要任務是進行TS流的分析和解復用。由于硬盤的傳輸速率有限,因此為了減少磁盤讀寫次數,系統在內存中開辟一塊緩沖區用以緩沖音、視頻數據,當緩沖區數值達到門限時,將其存儲數據寫入硬盤。寫數據與寫硬盤兩個操作采用并行的線程來執行,線程間通過信號進行同步。
而在錄像文件的回放過程中,從硬盤中讀出的音、視頻PES文件分別放入音、視頻緩沖區中,系統不斷檢測緩沖區數據大小,如果數據小于門限值,則通知數據傳輸線程把新數據送入。
錄像文件的記錄方式包括兩種。正常錄制的文件大小隨著錄制時長的增長而增加,直到節目錄制完成或者硬盤空間耗盡為止。而在時移錄制模式下,錄像文件大小固定,它包括了寫指針和讀指針。在開始時移錄制時,寫指針開始往后移動,畫面靜止在開始錄制的時刻。當回復收看時,讀指針與寫指針同步向后移動,寫指針在節目結束時停止移動,而讀指針自然在與寫指針重合時停止移動。需要指出的是,由于時移錄制并不以錄制文件并回放為目的,所以播放過的節目即被丟棄,因此該文件是一個循環文件,寫指針與讀指針在到達文件末尾時跳回文件開頭。由于硬盤空間所限,循環文件大小即為最大時移錄制時長,超過該時長則時移模式失效。
通過緩存技術的使用,系統大幅度減少了硬盤I/O次數,提高了系統效率,同時也達到了保護硬盤的效果。同時,緩存技術和音、視頻同步技術相結合,實現了電視節目的回放以及時移播放,真正體現了數字化PVR的強大人機交互功能。
3.3 EPG信息的提取和使用
本系統的EPG通過兩種方式獲取,其一是在播放節目時按下EPG按鍵顯示的present/following(當前/隨后)信息,其二是通過主界面的EPG菜單進入節目指南,顯示出頻道列表和按照時間排列的各頻道節目信息,為用戶提供電視節目列表。系統通過Tuner板的解調芯片,從接收的TS流中解析出服務信息(Service information,SI)數據,并在系統緩存中建立SI數據庫,用戶通過EPG的用戶界面(UserInterface,UI)與SI數據庫進行交互。EPG的SI以節目為單位,將與每個節目相關的事件都存儲在該節目的事件鏈表上,對于單個頻道的事件,其數據結構如下:
如上所示,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下載)的并發執行。下一步工作是設法在硬件上提高天線性能,以及優化代碼,減少系統開銷,確保各項功能并發執行互不影響。
評論
查看更多