新聞中心

EEPW首頁 > 消費電子 > 設計應用 > PVR技術應用于SDTV機頂盒的研究與實現(xiàn)

PVR技術應用于SDTV機頂盒的研究與實現(xiàn)

——
作者:天津大學電信學院(300072) 國澄明 劉 康 呂宏偉 高宏偉 傅建軍 時間:2005-12-19 來源: 收藏
數(shù)字電視與模擬電視相比,不僅圖像質量有了很大提高,而且還提供了模擬電視所無法提供的多種服務業(yè)務。應用于數(shù)字電視的數(shù)字視頻錄像機,采用硬盤作為數(shù)字電視節(jié)目的載體,除可完成傳統(tǒng)磁帶式錄像機的基本功能外,還可以實現(xiàn)時移播放這種新的播放功能。本文主要研究如何在標準清晰度機頂盒上實現(xiàn)個人數(shù)字視頻錄像機系統(tǒng)(PVR),開發(fā)出了機頂盒新的功能,提高了其應用價值。

1 PVR概念和技術介紹

隨著硬盤技術的發(fā)展,硬盤的容量和速度在不斷地提高,基于硬盤的個人視頻錄像機已成為新型消費類產品,將逐步取代磁帶式錄像機。PVR的突出特點是以硬盤作為存儲媒介,建立本地的海量緩沖區(qū)和巨大的節(jié)目存儲庫,利用數(shù)字化處理技術對節(jié)目進行控制和管理。硬盤容量大、數(shù)字式、訪問快速的存儲特性使得機頂盒PVR與傳統(tǒng)的錄像機相比具有如下特點:

(1)存儲容量巨大,能夠進行更長時間的節(jié)目存儲。以40G硬盤為例,能錄制長達20小時的標準清晰度數(shù)字電視節(jié)目;

(2)硬盤的尋道和定位速度非常快,可以輕易找到已錄制的節(jié)目,立即播放,節(jié)省了倒帶時間。

(3)硬盤載體中數(shù)據的存儲和讀取非常準確,有效地降低了存儲和讀取過程中可能出現(xiàn)的誤碼現(xiàn)象。

(4)可以實現(xiàn)時移播放功能。

時移播放是PVR技術的一大特點,也是機頂盒PVR的基本功能。機頂盒PVR在硬盤中開設了海量緩存區(qū),在播放數(shù)字電視的同時,對節(jié)目進行實時存儲,緩存區(qū)間可以錄制長達數(shù)小時的節(jié)目。通過緩存技術,用戶可以對正在播放的電視節(jié)目進行暫停,過一段時間后又可以從節(jié)目的暫停處繼續(xù)播放,就好象時間發(fā)生了移動一樣,如圖1所示。


 

  

2 PVR數(shù)字電視機頂盒硬件平臺

本課題的研究內容是開發(fā)一種應用于有線電視的具有PVR功能的標準清晰度數(shù)字電視機頂盒。系統(tǒng)采用ST公司的單片信源解碼器芯片STi5518實現(xiàn)標準清晰度數(shù)字電視解碼,其內嵌的ATAPI接口實現(xiàn)了與硬盤的無縫連接,為機頂盒實現(xiàn)PVR功能提供了條件。機頂盒的原理框圖如圖2所示。信號經過QAM解調后,以TS流的形式傳入STi5518,通過解復用將其分解為音、視頻PES包。PES包既可以被送往音、視頻解碼器解碼,也可以被送到ATAPI接口作為數(shù)據存入硬盤。 


 

  

3 STi5518與硬盤接口的連接

STi5518內嵌的ATAPI接口可提供最高為PIO模式4的數(shù)據傳輸,傳輸速率為16.7MB/s。ATAPI設備可作為STi5518的存儲器映像設備。本系統(tǒng)將硬盤映射到CPU可編程的外部存儲器接口EMI的BANKl上。圖3給出了STi5518與硬盤的接口圖。 


 

STi5518地址線的第20、19位分別與硬盤的CSl、CS0相連,地址線的第18、17、16位分別與硬盤的DA2、DAl、DA0相連,這樣可通過訪問BANKl的存儲空間實現(xiàn)對硬盤的讀寫操作。ST5518提供的可編程I/O口中的ATAPI_WR和ATAPI_RD專門用來連接硬盤的DIOW和DIOR。ST5518的讀寫信號CPU_RW用來控制傳輸門的數(shù)據傳送方向。

4硬盤基本讀寫操作的控制

主機對硬盤的操作是通過將命令代碼和訪問的地址寫入硬盤控制電路中的相應I/O寄存器來實現(xiàn)的。以寫一個扇區(qū)的操作為例。首先,主機查詢硬盤狀態(tài)寄存器,如果BSY位為0、DRDY位為1,則可以執(zhí)行操作。然后把所要寫的CHS參數(shù)或LBA參數(shù)寫入扇區(qū)號寄存器、柱面低位寄存器、柱面高位寄存器、扇區(qū)數(shù)寄存器和設備/磁頭號寄存器,同時將寫扇區(qū)命令號0x30h寫入命令寄存器。如果沒有發(fā)生錯誤,查詢狀態(tài)寄存器的DRQ位。如果為1,表示硬盤已經做好傳送數(shù)據的準備。最后將數(shù)據寫入數(shù)據寄存器并查詢狀態(tài)寄存器的ERR位,如果沒有發(fā)生錯誤則寫扇區(qū)成功。

5機頂盒中PVR的系統(tǒng)軟件設計

在系統(tǒng)軟件設計上,沒有用到中間件,所有開發(fā)的上層應用程序都是直接利用ST公司提供的底層硬件驅動庫完成的。PVR的系統(tǒng)軟件結構如圖4所示。主要分三個層次:


 

  

(1)ATAPI接口驅動層,用來實現(xiàn)讀寫硬盤的基本控制。這部分的軟件設計主要是利用ANSI制訂的ATAPI接口標準中所規(guī)定的命令格式來實現(xiàn)STi5518對硬盤數(shù)據的讀寫控制。

(2)文件系統(tǒng)驅動層,主要是建立文件系統(tǒng),實現(xiàn)操作節(jié)目文件的基本功能。

(3)節(jié)目管理層,用來完成節(jié)目記錄、回放、管理等功能。

5.1 PVR的音視頻文件系統(tǒng)

5.1.1 PVR文件系統(tǒng)結構

為了在硬盤上實現(xiàn)數(shù)據的有效管理必須建立文件系統(tǒng)。本系統(tǒng)硬盤上的數(shù)據按照其不同的特點和作用分為主引導區(qū)(MBR)、根扇區(qū)(RS)、主CAT(簇分配表)區(qū)和數(shù)據區(qū)。

主引導區(qū)位于硬盤的第一個扇區(qū),也就是邏輯0扇區(qū),其結構如圖5所示。前446字節(jié)用于放置操作系統(tǒng)的引導程序,后64字節(jié)(偏移量1BEH-偏移量1FDH)存儲DPT(硬盤分區(qū)表),該分區(qū)表記錄4個分區(qū)信息,每個分區(qū)信息里分別記錄該分區(qū)的分區(qū)狀態(tài)、起始LBA地址、分區(qū)大小、分區(qū)類型,系統(tǒng)初始化時通過讀取分區(qū)表來獲得硬盤空間的分配情況。最后兩個字節(jié)"55,AA"(偏移量1FEH-偏移量1FFH)是分區(qū)的結束標志。整個512字節(jié)構成了硬盤的主引導區(qū)。


 

  

根扇區(qū)位于每一個分區(qū)的前兩個扇區(qū),用于記錄與文件系統(tǒng)相關的數(shù)據,包括文件系統(tǒng)的版本號、文件系統(tǒng)狀態(tài)標志、簇的大小、主CAT大小、文件數(shù)據區(qū)起始地址及大小、根目錄地址。文件系統(tǒng)中數(shù)據存儲的最小單位是簇。簇一般由若干扇區(qū)組成,其數(shù)目根據硬盤的大小和操作的實際要求來定,數(shù)目過大或過小都會影響系統(tǒng)的運行性能。本系統(tǒng)根據具體試驗采用每簇大小為32個扇區(qū)。

主CAT區(qū)記錄了每一個簇塊(255個簇)中末使用的簇的數(shù)目,通過它可以方便地計算一個硬盤分區(qū)剩余空間的大小。

數(shù)據區(qū)是真正意義上的數(shù)據存儲的地方。本系統(tǒng)將一個分區(qū)中的數(shù)據區(qū)分成若干個簇塊,每個簇塊由三部分組成:區(qū)域CAT表、備份區(qū)和255個簇。每個區(qū)域CAT表記錄了其所屬簇塊的起始地址、255個簇的使用情況、存儲已占用簇的前繼內容和后繼內容的簇的地址似及CRC校驗值。通過采用簇塊方式將簇分配表分散在每個簇塊中,可以減少磁頭移動次數(shù),從而提高硬盤的訪問速度。

在數(shù)據區(qū)中存有目錄,每個目錄包含36個目錄項,每個目錄項記錄硬盤中某一文件的文件名、大小、起始地址和結束簇地址、文件狀態(tài)標志等信息。系統(tǒng)在讀取文件時,可以根據目錄中的文件的起始簇地址以及區(qū)域CAT表準確地定位存儲文件的各簇的位置。在本系統(tǒng)中只建立了一個目錄--根目錄,它的位置由根扇區(qū)中的分區(qū)表給定,大小固定為一個簇。

5.1.2文件系統(tǒng)的完整性設計

在設計,文件系統(tǒng)時,不僅要保證正常條件下系統(tǒng)的可靠的數(shù)據記錄功能,而且還要考慮異常情況下出現(xiàn)的系統(tǒng)錯誤能夠被修復。系統(tǒng)在根扇區(qū)設置了一個標志位用以表明文件系統(tǒng)是否打開。如果要打開一個關閉的文件系統(tǒng),而標志位表明該文件系統(tǒng)已經打開,則說明文件系統(tǒng)沒有被正確關閉,此時就要進行系統(tǒng)檢查以糾正系統(tǒng)中的錯誤。文件系統(tǒng)的恢復包括:恢復任何寫操作時被中斷的系統(tǒng)數(shù)據、重新完成未完成的操作、重建主CAT表、重建文件數(shù)據。實現(xiàn)的方法是訪問根目錄中所有目錄項及其相關的區(qū)域CAT表,沿著文件指針鏈表檢查簇指針的鏈接是否正確,并核對空閑簇的數(shù)量是否和主CAT表的一致。圖6給出了一個完整的系統(tǒng)文件檢錯并恢復的流程圖。


 

  

為了保護系統(tǒng)數(shù)據,本文件系統(tǒng)使用了寫備份的方法,即在將數(shù)據寫入原始地址之前先寫入備份區(qū),當數(shù)據發(fā)生錯誤時可以通過備份數(shù)據恢復文件。

在讀取數(shù)據時系統(tǒng)首先檢查區(qū)域CAT表的CRC值,如果不正確就從備份區(qū)讀出數(shù)據,同時檢查備份區(qū)的CRC值;如果正確則讀出數(shù)據并把備份的數(shù)據寫入簇塊地址,否則文件數(shù)據無法恢復。對于根扇區(qū),由于它沒有簇塊,因而沒有備份區(qū)。系統(tǒng)選用分區(qū)表的第二個扇區(qū)作為根扇區(qū)的備份。主CAT表的備份方法與簇塊的方法相同。圖7、圖8分別為系統(tǒng)數(shù)據備份時的寫、讀流程。


 
 

  

5.2 PVR系統(tǒng)的節(jié)目操作與管理

節(jié)目操作與管理對應PVR系統(tǒng)軟件層次上的節(jié)目管理層,該層用來完成節(jié)目記錄、回放、時移、特技播放等功能。

5.2.1節(jié)目流的記錄

TS流從外部接口進入STi5518的解復用模塊,通過PID濾波器選出指定的一路節(jié)目并拆包成PES流。在錄制節(jié)目時需要將PES流數(shù)據寫入硬盤。由于硬盤的讀寫速度較慢,因此在系統(tǒng)中開辟一個PreBuffer來緩沖數(shù)據。當PreBuffer中的數(shù)據達到門限值時,將其所存數(shù)據寫入硬盤。在設計時,寫PreBuffer與寫硬盤的操作采用兩個并行的Task來完成,任務間通過信號燈同步。記錄流程如圖9所示。


 

  

5.2.2節(jié)目流的回放

當播放硬盤上的節(jié)目時,從硬盤中讀出的數(shù)據要放到讀緩沖區(qū)中。PES包的頭部信息中的stream_id字段標明了PES包內的信息類型。首先通過程序判別把視頻和音頻數(shù)據分開,送到視頻和音頻的Bit_buffer中,然后分別通過視頻和音頻解碼器解碼。Bit_buffer中的數(shù)據應該始終保持一定的數(shù)量以保證有足夠的數(shù)據進行解碼。因此程序要不斷檢測Bit_buffer的數(shù)據大小,如果小于一定門限值就通知數(shù)據傳輸Task把新的數(shù)據送到Bit_buffer中。節(jié)目回放流程如圖10所示。

5.2.3節(jié)目的時移播放

記錄在硬盤上的文件有兩種類型:常規(guī)文件和循環(huán)文件。正常錄制的節(jié)目為常規(guī)文件,文件的大小會隨著記錄時間的增長而增加,直到節(jié)目錄制完成或硬盤空間耗盡為止;而時移播放時使用一種特殊的文件記錄格式--循環(huán)文件,循環(huán)文件大小固定,有一個讀指針和一個寫指針。由于時移錄像的目的不是把節(jié)目錄下來回放而是使節(jié)目在硬盤上緩存一定的時間,因而播放過的部分就不再需要存儲了。當開始時移錄像時,系統(tǒng)要把節(jié)目數(shù)據存儲到硬盤中,寫指針會向后移動,畫面靜止在錄像開始的時刻;當恢復收看時,系統(tǒng)讀取硬盤中的節(jié)目數(shù)據播放,讀指針開始向后移動,此時讀指針和寫指針之間的距離就是節(jié)目的延時時間。當指針到達文件尾時會回到文件頭部繼續(xù)移動,直到時移播放結束為止。由此可知,循環(huán)文件的大小決定了蘆目的最大時移。

5.2.4節(jié)目的特技播放 

特技播放是指快放、慢放等非逗常速度的播放方式。它復磁帶式錄像機所具有的功能,在模擬的磁帶錄像機中可以通過改變磁帶的播放方向和速度來實現(xiàn)。但是在數(shù)字錄像機中,這個功能需要采用不同的方法來實現(xiàn)。數(shù)字視頻的動態(tài)圖像是由一幀一幀的畫面組成的,為了實現(xiàn)快速播放,解碼器需要跳過某些幀。根據播放的速度,可以計算出每個GOP中跳過的幀的數(shù)目,對剩下的幀以正常速度解碼,就可以實現(xiàn)快速播放。很明顯,速度越快,跳過不解碼的幀數(shù)就越多。同樣,慢放時可以讓解碼器每幀重復播放一次,就可以使播放速度放慢一倍,而實現(xiàn)慢放。

本課題在實現(xiàn)了標準清晰度數(shù)字電視信源解碼器的基礎上,完成了數(shù)字錄像機的功能,實現(xiàn)了數(shù)字電視節(jié)目的錄像和時移播放等功能,提高了機頂盒的應用價值。本論文所介紹的內容是天津市數(shù)字信息技術研究與開發(fā)中心的"標準清晰度數(shù)字電視機頂盒"項目的一部分,現(xiàn)已實現(xiàn)了由科研樣機向產品樣機的轉化。該項目技術已向相關企業(yè)進行了技術轉讓。


評論


相關推薦

技術專區(qū)

關閉