基于地面高清機頂盒的 PVR 系統(tǒng)設(shè)計與開發(fā)
1引言
2006 年8 月18 日,國家標準化管理委員會正式發(fā)布了我國具有自主知識產(chǎn)權(quán)的《數(shù)字電視地面廣播傳輸系統(tǒng)幀結(jié)構(gòu)、信道編碼和調(diào)制》標準(簡稱“中國數(shù)字電視地面?zhèn)鬏敇藴省?。該標準支持高清晰度電視(HDTV)、標準清晰度電視(SDTV)和多媒體數(shù)據(jù)廣播(MMDB)等多種業(yè)務(wù),滿足大范圍固定覆蓋和移動接收的需要。地面高清數(shù)字廣播系統(tǒng)于2008 年7 月投入使用,已成功進行了北京奧運會的全程直播,并將直播2010 年上海世博會。針對地面高清市場的各類產(chǎn)品及技術(shù)應(yīng)運而生,而PVR 功能則是相關(guān)產(chǎn)品技術(shù)中的難點和亮點。
PVR 的全稱是Personal Video Recorder(個人視頻錄像機),但其實際功能超出了名稱的表述。PVR 的突出特點是以硬盤為存儲媒介,建立本地的海量緩沖區(qū)和節(jié)目存儲庫,利用數(shù)字化處理技術(shù),實現(xiàn)對節(jié)目的控制和管理。數(shù)字化和存儲技術(shù)是PVR 技術(shù)的核心,PVR 技術(shù)和數(shù)字機頂盒結(jié)合而產(chǎn)生的PVR 機頂盒,將兩種先進技術(shù)相結(jié)合,將電視生活向前推進了一步。PVR 數(shù)字機頂盒應(yīng)用于數(shù)字電視系統(tǒng),相對于模擬PVR,它把數(shù)字化放在前端,而不是在機頂盒客戶端上來進行數(shù)字編碼,使得節(jié)目更清晰、終端成本更低、節(jié)目控制更方便。.PVR 機頂盒把硬盤錄放技術(shù)和電子節(jié)目指南(Electronic Program Guide,EPG)相結(jié)合,將節(jié)目的內(nèi)容和節(jié)目的信息相關(guān)聯(lián),方便節(jié)目的查詢和管理,亦可根據(jù)節(jié)目單進行預(yù)約錄像,操作簡單方便。PVR 技術(shù)和
數(shù)字機頂盒的結(jié)合是電視節(jié)目播放技術(shù)發(fā)展的必然趨勢。
本文研究在嵌入式系統(tǒng)下 ADTB-T 高清電視信號以及標清電視信號的PVR 功能的實現(xiàn)。論文主要針對高清電視信號特有的高碼率TS 流傳輸和處理與嵌入式系統(tǒng)的相對緊張的系統(tǒng)資源這一矛盾進行研究,過軟硬件的配合實現(xiàn)PVR 的各項基本功能,并在此基礎(chǔ)上,通過緩存技術(shù),實現(xiàn)錄制與播放的無縫連接,同時充分利用ADBT-T 信號提供的EPG 信息,方便用戶預(yù)約錄制,并提供人性化的界面設(shè)計,提高用戶友好度。1 硬件架構(gòu)本系統(tǒng)基于 Sigma Designs 公司的EM8622 平臺進行開發(fā),使用主頻為202MHz 的ARM7 中央處理器、128MBDDR 內(nèi)存、以及8MB FLAsH 芯片,配合上海高清HD2910 國際融合芯片,可以支持地面高清數(shù)字信號以及標清模擬信號的兼容播放與無損錄制,同時配合時鐘板和地面廣播信號配套EPG,可以實現(xiàn)電視節(jié)目的定時錄制、自動開機預(yù)約錄制以及斷電續(xù)錄功能。硬件框架圖如下圖1 所示:
如圖,射頻信號由天線接收后送至HD2910TUNER(調(diào)諧器)板解調(diào)為MPEG2格式的TS(Transport Stream)流,經(jīng)RISC架構(gòu)的2D圖形引擎處理后傳輸至DEMUX(解復(fù)用)芯片,經(jīng)解復(fù)用后分為APES流(打包的音頻基本碼流)和VPES流(打包的視頻基本碼流)。此時根據(jù)錄制模式的不同,數(shù)據(jù)的走向也不同,具體分類如下:
(1)只播模式:通道1開,通道2、通道3關(guān)。APES/VPES流輸送到DECODER(解碼芯片)解碼后生成音/視頻數(shù)據(jù),分別進行音/視頻輸出。
(2)只錄模式:通道2開,通道1、通道3關(guān)。為了保證錄制文件碼率的穩(wěn)定,將APES/VPES流經(jīng)過PCI總線送至系統(tǒng)緩存,緩沖3至5s后再經(jīng)PCI總線分別保存為音/視頻硬盤文件。
(3)邊播邊錄模式:通道1、通道2開,通道3關(guān)。打開通道1,APES/VPES流經(jīng)DECODER解碼后輸出至音/視頻終端,同時打開通道2,將PES流數(shù)據(jù)經(jīng)系統(tǒng)緩存后保存至硬盤。
(4)錄像播放模式:通道3開,通道1、通道2關(guān)。打開硬盤音視頻文件,將數(shù)據(jù)送到系統(tǒng)緩存,然后經(jīng)過音視頻同步處理后再傳輸?shù)紻ECODER,最后進行相應(yīng)的音/視頻輸出。
(5)時移播放模式:通道2、通道3開,通道1關(guān)。時移播放即指通過硬盤的緩存能力,用戶可以像操作本地文件一樣暫停當前播放的電視節(jié)目,過任意時間后繼續(xù)播放,或者隨時回放已播精彩鏡頭。在這種模式下,系統(tǒng)先將APES/VPES流經(jīng)系統(tǒng)緩存后保存為硬盤音/視頻文件,然后根據(jù)用戶需要可以隨時將硬盤文件音/視頻解碼并輸出。
(6)預(yù)約錄制模式:與邊播邊錄模式類似,不同之處在于利用EPG和時鐘板定時喚醒系統(tǒng)進行節(jié)目的錄制。
2 軟件結(jié)構(gòu)
本系統(tǒng)采用sigma Designs公司提供的配套軟件開發(fā)包(SDK),主要分為兩個部分:Armutils開發(fā)包與EM8623L開發(fā)包。
Armutils開發(fā)包主要包含uClinux內(nèi)核、文件系統(tǒng)、編譯工具、編譯環(huán)境等與ARM芯片相關(guān)的軟件。使用Armutils開發(fā)包來生成PVR機頂盒的運行內(nèi)核,以及機頂盒應(yīng)用程序的編譯與調(diào)試環(huán)境。
EM8620L開發(fā)包主要包含Envision EM8623L開發(fā)板的相關(guān)驅(qū)動,啟動引導(dǎo)程序(Boot Loader),以及名為DCC(Decoding Chain Control)的用戶接口,用戶程序可通過DCC庫的調(diào)用實現(xiàn)對底層硬件的訪問,PVR機頂盒應(yīng)用程序的開發(fā)都是基于這些接口與驅(qū)動之上的。圖2簡單描述了解決方案提出的軟件開發(fā)層次結(jié)構(gòu)。
3 關(guān)鍵實現(xiàn)技術(shù)
3.1 音、視頻同步技術(shù)
電視信號錄制產(chǎn)生的音、視頻數(shù)據(jù)各自以PES包的形式存儲在硬盤上,當它們被讀出并且被解碼播放時,隨之就會產(chǎn)生音頻和視頻之間的同步問題。
數(shù)字電視廣播的MPEG-2數(shù)字碼流中包括兩種時間信息:用于機頂盒本地系統(tǒng)時鐘與廣播系統(tǒng)前端時鐘同步的節(jié)目時鐘參考(Program Clock Reference,PCR),位于TS包的首部;以及用于音視頻同步的展現(xiàn)時間戳/解碼時間戳(Presentation Time stamp/Decoding Timestamp,PTS/DTS),位于PES包的首部。在本PVR系統(tǒng)中,由于音、視頻數(shù)據(jù)是以PES包的格式被存儲到硬盤的,所以PCR并沒有被存儲;而另外一方面,在播放已錄節(jié)目時,音、視頻數(shù)據(jù)是實時從硬盤中讀出的,讀取數(shù)據(jù)和播放數(shù)據(jù)都同屬于PVR系統(tǒng)內(nèi)部的操作,所以并不存在系統(tǒng)間時鐘同步的問題,因此,在PVR系統(tǒng)的回放操作中不用考慮PCR。所以在錄像回放過程中,只能利用PTS/DTS來維持音頻與視頻的同步。播放錄像時,幀速率(FrameRate)決定了視頻數(shù)據(jù)的解碼速率,所以可以將視頻PTS作為基準,將音頻PTS與之相比較,以此調(diào)整音頻解碼的速率,從而達到使音頻與視頻同步的目的,具體采用的方法如下:
(1)視頻數(shù)據(jù)被傳送到解碼單元的視頻緩沖區(qū)的過程中,對它進行解析,記錄其中的PTS,并構(gòu)建視頻PTS表;
(2)對于音頻數(shù)據(jù),也同樣構(gòu)建音頻PTS表;
(3)在解碼過程中將視頻PTS作為基準,修正解碼單元中由系統(tǒng)時鐘驅(qū)動的SCR(系統(tǒng)時鐘參考)計數(shù)器的值;
(4)根據(jù)音頻緩沖區(qū)指針的位置,在音頻PTS表中查找相應(yīng)的PTS值,將此值與SCR計數(shù)器的值相比較,作為調(diào)整音頻解碼速率的依據(jù),從而控制音頻解碼器解碼動作,實現(xiàn)音頻數(shù)據(jù)跟隨視頻數(shù)據(jù)的同步。
3.2 緩存技術(shù)
如圖2所示,經(jīng)過前端解調(diào)得到的TS流經(jīng)由2D圖像引擎處理后進入DEMUX模塊。DEMUX模塊是一個集成在主控芯片中的特殊微處理器,主要任務(wù)是進行TS流的分析和解復(fù)用。由于硬盤的傳輸速率有限,因此為了減少磁盤讀寫次數(shù),系統(tǒng)在內(nèi)存中開辟一塊緩沖區(qū)用以緩沖音、視頻數(shù)據(jù),當緩沖區(qū)數(shù)值達到門限時,將其存儲數(shù)據(jù)寫入硬盤。寫數(shù)據(jù)與寫硬盤兩個操作采用并行的線程來執(zhí)行,線程間通過信號進行同步。
而在錄像文件的回放過程中,從硬盤中讀出的音、視頻PES文件分別放入音、視頻緩沖區(qū)中,系統(tǒng)不斷檢測緩沖區(qū)數(shù)據(jù)大小,如果數(shù)據(jù)小于門限值,則通知數(shù)據(jù)傳輸線程把新數(shù)據(jù)送入。
錄像文件的記錄方式包括兩種。正常錄制的文件大小隨著錄制時長的增長而增加,直到節(jié)目錄制完成或者硬盤空間耗盡為止。而在時移錄制模式下,錄像文件大小固定,它包括了寫指針和讀指針。在開始時移錄制時,寫指針開始往后移動,畫面靜止在開始錄制的時刻。當回復(fù)收看時,讀指針與寫指針同步向后移動,寫指針在節(jié)目結(jié)束時停止移動,而讀指針自然在與寫指針重合時停止移動。需要指出的是,由于時移錄制并不以錄制文件并回放為目的,所以播放過的節(jié)目即被丟棄,因此該文件是一個循環(huán)文件,寫指針與讀指針在到達文件末尾時跳回文件開頭。由于硬盤空間所限,循環(huán)文件大小即為最大時移錄制時長,超過該時長則時移模式失效。
通過緩存技術(shù)的使用,系統(tǒng)大幅度減少了硬盤I/O次數(shù),提高了系統(tǒng)效率,同時也達到了保護硬盤的效果。同時,緩存技術(shù)和音、視頻同步技術(shù)相結(jié)合,實現(xiàn)了電視節(jié)目的回放以及時移播放,真正體現(xiàn)了數(shù)字化PVR的強大人機交互功能。
3.3 EPG信息的提取和使用
本系統(tǒng)的EPG通過兩種方式獲取,其一是在播放節(jié)目時按下EPG按鍵顯示的present/following(當前/隨后)信息,其二是通過主界面的EPG菜單進入節(jié)目指南,顯示出頻道列表和按照時間排列的各頻道節(jié)目信息,為用戶提供電視節(jié)目列表。系統(tǒng)通過Tuner板的解調(diào)芯片,從接收的TS流中解析出服務(wù)信息(Service information,SI)數(shù)據(jù),并在系統(tǒng)緩存中建立SI數(shù)據(jù)庫,用戶通過EPG的用戶界面(UserInterface,UI)與SI數(shù)據(jù)庫進行交互。EPG的SI以節(jié)目為單位,將與每個節(jié)目相關(guān)的事件都存儲在該節(jié)目的事件鏈表上,對于單個頻道的事件,其數(shù)據(jù)結(jié)構(gòu)如下:
如上所示,EPG信息主要包含了每個節(jié)目所對應(yīng)的節(jié)目名、開始時間、持續(xù)時長以及相鄰事件的指針,當然,事件信息還包括它所對應(yīng)的頻道信息三要素(transportid,network id,service id)。
EPG的信息量非常大,并且經(jīng)常更新,但是由于系統(tǒng)搜索一次EPG信息周期長達8~10s,所以除了開機之后的第一次獲取外,當用戶按鍵瀏覽EPG時,只有當前節(jié)目已經(jīng)過期的情形下,系統(tǒng)才實時地分析獲取,并將其緩存至系統(tǒng)內(nèi)存,其余情形下系統(tǒng)讀取緩存數(shù)據(jù)以大幅度提高響應(yīng)速度。由于EPG的信息時效性很強,因此在退出系統(tǒng)時無需保存。
用戶通過UI來實現(xiàn)與EPG之間的交互,在UI部分,向用戶提供了非常友好的EPG菜單界面,實現(xiàn)了節(jié)目的按頻道分類以及按日期分類,用戶通過這些菜單界面,可以方便地瀏覽節(jié)目中近期播放的事件的信息,選擇自己喜歡的節(jié)目來播放,并且可以設(shè)置自動錄制指定某個頻道的某個時間段的節(jié)目。3.4 預(yù)錄節(jié)目管理
前文已經(jīng)提到了使用EPG信息與時鐘板來進行電視節(jié)目的預(yù)約錄制。用戶在瀏覽EPG列表時選中想要錄制的節(jié)目,按下預(yù)約錄制按鈕,系統(tǒng)自動將預(yù)錄信息寫入配置文件,并存儲至硬盤,文件條目格式如下:
其中條目按照開始時間的先后順序排列,開始時間與結(jié)束時間均以BCD碼的形式保存以節(jié)省存儲空間,同時也可以與通用的struct tm格式方便地進行轉(zhuǎn)換。用戶可以隨時進入預(yù)錄條目管理界面刪除不需要的條目,也可以再次進入EPG界面選擇并添加新條目,系統(tǒng)將根據(jù)已有條目情況判斷是否有時間沖突,若有則無法預(yù)錄,若無則選擇正確的位置插入條目。系統(tǒng)在開機時自動檢測硬盤上是否存在配置文件,若存在,則讀取文件第一個沒有過期的條目,取出節(jié)目開始時間,與從時鐘板獲得的系統(tǒng)當前時間進行循環(huán)比較,一旦到點,系統(tǒng)將停止當前音、視頻的播放,并且跳轉(zhuǎn)至預(yù)約節(jié)目的錄制。通過配置文件的使用,系統(tǒng)實現(xiàn)了電視節(jié)目的一鍵錄制,錄制信息,包括節(jié)目名、頻道名以及錄制開始時間,均以文件名的形式記錄,方便用戶對于錄制文件的查找與分類管理。由于配置文件被寫入硬盤,所以除了極端特殊情況,比如在寫配置文件時意外斷電,通常情形下在系統(tǒng)斷電后文件仍然存在,從而實現(xiàn)了預(yù)錄節(jié)目的斷電續(xù)錄功能。
4 結(jié)束語
本文開發(fā)的PVR系統(tǒng)已經(jīng)產(chǎn)品化,并隨著地面高清信號的開播同步大批量投放市場。由于采用成熟的uClinux操作系統(tǒng)、sigma FM8622L芯片組以及配套的SDK進行二次開發(fā),系統(tǒng)表現(xiàn)穩(wěn)定,在電視信號質(zhì)量良好的情況下,錄像文件碼率平穩(wěn),播放效果流暢,長時問錄制與播放均不會出現(xiàn)死機等系統(tǒng)異常狀況,配合液晶高清電視和家庭影院,完全體現(xiàn)了分辨率高達1920×1080的高質(zhì)量視頻以及高保真音頻所帶來的震撼感受,并且通過優(yōu)化的UI設(shè)計,使得EPG無縫嵌入電視播放流程,用戶查看節(jié)目指南、錄制當前節(jié)目以及預(yù)錄節(jié)目均可一鍵實現(xiàn),相比PC平臺同類型產(chǎn)品而言,具有性價比高、系統(tǒng)穩(wěn)定、防病毒木馬侵襲、以及使用專用音、視頻解碼芯片,高清解碼能力更出色等優(yōu)點。當前系統(tǒng)仍存在一些缺點,如天線對信號方位敏感,雨雪天氣收看效果不佳,以及錄制高清信號時由于碼率較高,占用大量系統(tǒng)緩存,從而妨礙其他功能(比如BT下載)的并發(fā)執(zhí)行。下一步工作是設(shè)法在硬件上提高天線性能,以及優(yōu)化代碼,減少系統(tǒng)開銷,確保各項功能并發(fā)執(zhí)行互不影響。
評論
查看更多