基于地面高清機頂盒的PVR系統設計與開(kāi)發(fā)
(4)錄像播放模式:通道3開(kāi),通道1、通道2關(guān)。打開(kāi)硬盤(pán)音視頻文件,將數據送到系統緩存,然后經(jīng)過(guò)音視頻同步處理后再傳輸到DECODER,最后進(jìn)行相應的音/視頻輸出。
(5)時(shí)移播放模式:通道2、通道3開(kāi),通道1關(guān)。時(shí)移播放即指通過(guò)硬盤(pán)的緩存能力,用戶(hù)可以像操作本地文件一樣暫停當前播放的電視節目,過(guò)任意時(shí)間后繼續播放,或者隨時(shí)回放已播精彩鏡頭。在這種模式下,系統先將APES/VPES流經(jīng)系統緩存后保存為硬盤(pán)音/視頻文件,然后根據用戶(hù)需要可以隨時(shí)將硬盤(pán)文件音/視頻解碼并輸出。
(6)預約錄制模式:與邊播邊錄模式類(lèi)似,不同之處在于利用EPG和時(shí)鐘板定時(shí)喚醒系統進(jìn)行節目的錄制。本文引用地址:http://dyxdggzs.com/article/166862.htm
2 軟件結構
本系統采用sigma Designs公司提供的配套軟件開(kāi)發(fā)包(SDK),主要分為兩個(gè)部分:Armutils開(kāi)發(fā)包與EM8623L開(kāi)發(fā)包。
Armutils開(kāi)發(fā)包主要包含uClinux內核、文件系統、編譯工具、編譯環(huán)境等與ARM芯片相關(guān)的軟件。使用Armutils開(kāi)發(fā)包來(lái)生成PVR機頂盒的運行內核,以及機頂盒應用程序的編譯與調試環(huán)境。
EM8620L開(kāi)發(fā)包主要包含Envision EM8623L開(kāi)發(fā)板的相關(guān)驅動(dòng),啟動(dòng)引導程序(Boot Loader),以及名為DCC(Decoding Chain Control)的用戶(hù)接口,用戶(hù)程序可通過(guò)DCC庫的調用實(shí)現對底層硬件的訪(fǎng)問(wèn),PVR機頂盒應用程序的開(kāi)發(fā)都是基于這些接口與驅動(dòng)之上的。圖2簡(jiǎn)單描述了解決方案提出的軟件開(kāi)發(fā)層次結構。
3 關(guān)鍵實(shí)現技術(shù)
3.1 音、視頻同步技術(shù)
電視信號錄制產(chǎn)生的音、視頻數據各自以PES包的形式存儲在硬盤(pán)上,當它們被讀出并且被解碼播放時(shí),隨之就會(huì )產(chǎn)生音頻和視頻之間的同步問(wèn)題。
數字電視廣播的MPEG-2數字碼流中包括兩種時(shí)間信息:用于機頂盒本地系統時(shí)鐘與廣播系統前端時(shí)鐘同步的節目時(shí)鐘參考(Program Clock Reference,PCR),位于TS包的首部;以及用于音視頻同步的展現時(shí)間戳/解碼時(shí)間戳(Presentation Time stamp/Decoding Timestamp,PTS/DTS),位于PES包的首部。在本PVR系統中,由于音、視頻數據是以PES包的格式被存儲到硬盤(pán)的,所以PCR并沒(méi)有被存儲;而另外一方面,在播放已錄節目時(shí),音、視頻數據是實(shí)時(shí)從硬盤(pán)中讀出的,讀取數據和播放數據都同屬于PVR系統內部的操作,所以并不存在系統間時(shí)鐘同步的問(wèn)題,因此,在PVR系統的回放操作中不用考慮PCR。所以在錄像回放過(guò)程中,只能利用PTS/DTS來(lái)維持音頻與視頻的同步。播放錄像時(shí),幀速率(FrameRate)決定了視頻數據的解碼速率,所以可以將視頻PTS作為基準,將音頻PTS與之相比較,以此調整音頻解碼的速率,從而達到使音頻與視頻同步的目的,具體采用的方法如下:
(1)視頻數據被傳送到解碼單元的視頻緩沖區的過(guò)程中,對它進(jìn)行解析,記錄其中的PTS,并構建視頻PTS表;
(2)對于音頻數據,也同樣構建音頻PTS表;
(3)在解碼過(guò)程中將視頻PTS作為基準,修正解碼單元中由系統時(shí)鐘驅動(dòng)的SCR(系統時(shí)鐘參考)計數器的值;
(4)根據音頻緩沖區指針的位置,在音頻PTS表中查找相應的PTS值,將此值與SCR計數器的值相比較,作為調整音頻解碼速率的依據,從而控制音頻解碼器解碼動(dòng)作,實(shí)現音頻數據跟隨視頻數據的同步。
3.2 緩存技術(shù)
如圖2所示,經(jīng)過(guò)前端解調得到的TS流經(jīng)由2D圖像引擎處理后進(jìn)入DEMUX模塊。DEMUX模塊是一個(gè)集成在主控芯片中的特殊微處理器,主要任務(wù)是進(jìn)行TS流的分析和解復用。由于硬盤(pán)的傳輸速率有限,因此為了減少磁盤(pán)讀寫(xiě)次數,系統在內存中開(kāi)辟一塊緩沖區用以緩沖音、視頻數據,當緩沖區數值達到門(mén)限時(shí),將其存儲數據寫(xiě)入硬盤(pán)。寫(xiě)數據與寫(xiě)硬盤(pán)兩個(gè)操作采用并行的線(xiàn)程來(lái)執行,線(xiàn)程間通過(guò)信號進(jìn)行同步。
而在錄像文件的回放過(guò)程中,從硬盤(pán)中讀出的音、視頻PES文件分別放入音、視頻緩沖區中,系統不斷檢測緩沖區數據大小,如果數據小于門(mén)限值,則通知數據傳輸線(xiàn)程把新數據送入。
錄像文件的記錄方式包括兩種。正常錄制的文件大小隨著(zhù)錄制時(shí)長(cháng)的增長(cháng)而增加,直到節目錄制完成或者硬盤(pán)空間耗盡為止。而在時(shí)移錄制模式下,錄像文件大小固定,它包括了寫(xiě)指針和讀指針。在開(kāi)始時(shí)移錄制時(shí),寫(xiě)指針開(kāi)始往后移動(dòng),畫(huà)面靜止在開(kāi)始錄制的時(shí)刻。當回復收看時(shí),讀指針與寫(xiě)指針同步向后移動(dòng),寫(xiě)指針在節目結束時(shí)停止移動(dòng),而讀指針自然在與寫(xiě)指針重合時(shí)停止移動(dòng)。需要指出的是,由于時(shí)移錄制并不以錄制文件并回放為目的,所以播放過(guò)的節目即被丟棄,因此該文件是一個(gè)循環(huán)文件,寫(xiě)指針與讀指針在到達文件末尾時(shí)跳回文件開(kāi)頭。由于硬盤(pán)空間所限,循環(huán)文件大小即為最大時(shí)移錄制時(shí)長(cháng),超過(guò)該時(shí)長(cháng)則時(shí)移模式失效。
通過(guò)緩存技術(shù)的使用,系統大幅度減少了硬盤(pán)I/O次數,提高了系統效率,同時(shí)也達到了保護硬盤(pán)的效果。同時(shí),緩存技術(shù)和音、視頻同步技術(shù)相結合,實(shí)現了電視節目的回放以及時(shí)移播放,真正體現了數字化PVR的強大人機交互功能。
評論