科學技術的高速發展使廣播電視進入了由彩色電視向高清晰度電視HDTV(High-Definition Television)跨越的過渡時代?隨著HDTV在全球的興起以及數字技術的日趨成熟,音/視頻產品數字化?高清晰度化已成為未來家電視聽產品的大趨勢?HDTV采用了國際上流行的MPEG-2標準?MPEG-2規定了數字圖像的音?視頻編解碼算法以及傳送的碼流應該符合的語法和語義,而其編解碼算法又參考了聽覺心理模型和視覺心理模型?HDTV的圖像格式為1920×1080i,傳輸碼率高達20Mbps,同時采用視頻壓縮技術可使HDTV的每一幀包含更多的信息,大大提高了圖像的清晰度?HDTV在音頻壓縮方面采用了數字音頻的編碼和壓縮技術?現有的數字音頻編碼壓縮方案有MPEG-2?Dolby AC-3和美國AT&T的MPAC以及歐洲的MIX?它們都能實現5.1聲道,即三個前面的聲道(L?C?右聲道R)?兩個環繞聲道(左環繞聲道Ls?右環繞聲道Rs)和一個低音效果聲道LFE,使聲音效果可以達到家庭影院的音響效果?HDTV聲光效果上的優勢,注定它的發展有著技術和市場的雙重必然性?為了適應當前電視市場的過渡時期,需要一種即能接收數字電視信號,又能解碼輸出用于顯示的中間設備--機頂盒,充當電視臺信號與用戶顯示設備之間的橋梁?機頂盒是隨著數字電視廣播的發展而出現的,同時也必然隨著數字電視廣播的發展而不斷發展?本文論述的信源解碼器則是機頂盒的關鍵部件?
1 總體方案
根據本課題的任務和內容,選擇了ST公司的數字高清晰度電視機頂盒系統解決方案,即ST20+Sti7000+Sti4600的三片方案?該方案采用ST20-TP4作為系統的主控制芯片,它負責將前端或LVDS板輸入的TS流解復用,同時負責系統初始化和系統音?視頻解碼控制?為了配合ST20TP4ST20TP4的運行,需要配備一定數量的DRAM來提供運行程序的存儲空間,并存儲TS流?解復用后的音?視頻PES流數據等?TS流經ST20TP4解復用后分兩路輸出:一路是解復用后的音頻PES流,這路信號將被送入Sti4600STI4600進行音頻解碼,解碼后的數字信號再通過DAC轉換電路轉變為模擬信號輸出?另一路解復用后的視頻PES流將送入Sti7000STI7000進行視頻解碼和格式變換?Sti7000所配的SDRAM用來緩存PES流?解碼幀?顯示幀?參考幀及OSD數據?解碼后的圖像以4:4:4的高清晰度格式送入視頻DAC電路進行D/A變換?另外,為了配合實際需求,視頻模擬輸出要求兼容VGA(R,G,B,Hs,Vs)和Y,Pr,Pb兩種接口?其中,Y,Pr,Pb信號要帶有三電平或兩電平同步信號?
2 硬件設計
硬件電路設計以ST20TP4為核心展開,依據主控制芯片的總線結構規劃視頻接口?音頻接口以及各類存儲器?ST20TP4有一個32位帶符號的2的補碼地址空間?按32位地址尋址,總的地址空間大小為4G字節?(所謂“帶符號的2的補碼地址空間”是指該空間地址排列是由底部MixInt#80000000向下增長至#FFFFFFFF,接著是#00000000然后增長到MaxInt#7FFFFFFF)?整個尋址空間分為四個區(每區1G字節),由地址A31?A30決定?
需要注意:3區(A31A30=01 #40000000~#7FFFFFFF)為外部存儲器空間?外部存儲器接口(EMI)把它又分為4組,不同的外部存儲器和外部設備可以映射到其中?這4組中組0?組1和組3是通用存儲器組,每一個都可以通過有關寄存器的設置來選擇時序;組0和組1可以選擇DRAM型或SRAM型器件,組3僅支持SRAM型器件?EMI組2(#60000000~#6FFFFFFF)指定與MPEG音視頻解碼芯片接口?它提供4個選通信號:兩個MPEG解碼器IC的片選notCS0-1;兩個解碼器壓縮數據選通信號notCDSTRB0-1?其中notCS0-1用來請求一個MPEG解碼器寄存器存取周期,而notCDSTRB0-1用來請求壓縮數據寫周期?這4個選通信號有效與否取決于組2的地址范圍,也就是說可以依靠地址來區分不同的MPEG解碼器及同一MPEG解碼器的寄存器和壓縮數據接收FIFO?此外,為了與各種速度的MPEG解碼器件接口,當選擇不同地址時,notCS0-1可以有不同的時序(可分別插入1~4個等待狀態)?
3 軟件編程
在機頂盒這種實時系統中,由于CPU要同時對解復用?視頻解碼?音頻解碼等多個方面的事件進行處理,其中既有通信問題,又有同步等問題?因而有必要采取多任務多進程實時操作系統的方式?應用程序可以被分割成多個相對獨立的任務共享系統資源?本課題軟件開發中使用的實時操作系統是ST公司的STLite/OS20?該操作系統已提供的內容包括:較完整的實時操作系統軟件?部分硬件驅動和部分testtool命令?能夠實現的功能包括:各種接口功能,如I2C?UART等;MPEG和AC-3音頻解碼?MPEG視頻解碼和顯示?基本流解復用?section濾波?OSD測試功能?時鐘恢復和SD輸出等?具體如圖1所示?
需要開發的部分主要有:新增加和變動的硬件模塊的驅動?前端或LVDS輸入的控制?節目操作和管理模塊軟件的開發?節目操作的軟件開發中,節目信息的獲取?分析?保存和更新及節目數據庫的操作是非常關鍵的部分,這是因為:一方面,它與前端或LVDS輸入模塊?解復用模塊?音?視頻解碼模塊等硬件驅動層都有很大的聯系;另一方面,要實現機頂盒的音?視頻解碼功能,就必須從碼流中找到所有基本流的PID,需要對節目特定信息(PSI)進行提取和分析? PSI(Program Specific Information)節目特殊信息包含了解碼器端解復用所需要的數據?在MPEG-2系統層標準中,每路數字節目都包含一個或多個基本流,每個基本流都分配了一個PID值作為標記?節目?基本流或其中的部分內容可能會被加密,但是PSI信息作為解碼的前提是不會被加密的?
傳輸流中的PSI信息可以分成四種表的結構,每種表又可以分成多個section?這四種表分別為:節目組合表PAT(Program Association Table)?節目映射表PMT(Program Map Table)?有條件接收表CAT(Conditional Access Table)和網絡信息表NIT(Network Information Table)?PAT包含了所有的節目號及其相關PMT的PID值;PMT給出PAT表中列出的所有節目的基本流PID信息;CAT的任務在于準備解密數據組用的信息(加密系統的標識?存取權的分配及各碼序的發送);NIT可以傳送網絡數據和頻帶?轉發信號?通帶寬度等參數,MPEG對此表的內容沒有做詳細規定?每個TS流中都應該有PAT表,因為所有PMT和NIT表的PID值都在PAT表中給出,PAT的PID固定為0x0000,當PAT表內容更新時,表中的版本號version_number會增1?當TS流中有一個或多個基本流被加擾,則需要在TS流里傳送一個PID值固定為 0x0001的CAT,提供有關加擾了的流的信息?PMT也是TS流中所必需的表,它包含了各個節目的基本流PID信息,這是解復用必不可少的,PMT的PID在PAT中給出?NIT表在TS流里不是必需的,它的內容屬于私有數據表(private),如果TS流里存在NIT表,則它的PID值由PAT的內容提供,且TS流中應包含若干個private section?ISO/IEC 13818-1 MPEG-2系統層標準中關于PSI信息定義了四個section結構,分別代表四個表的信息數據結構?這四個 section 結構分別為:Program Association Section?Conditional Access Section?Transport Stream Program Map Section和Private Section?對各表信息的分析實際是對這些section結構的內容進行分析?
對符合MPEG-2標準的傳輸流進行音?視頻解碼前必須先經過解復用分出音?視頻基本流?為了可以解復用分出音?視頻基本流,首先要分析PSI表的各 Section并從中提取基本流PID信息?尋找基本流PID主要對PAT和PMT兩個表進行處理?這兩個表與基本流PID的關系可以用圖2表示?
解復用的過程是這樣的:首先,得到完整的PAT表,根據PAT的Section結構找到所有的節目號和各節目號所對應的PMT PID;然后,分別對PAT中列出的每一個節目進行如下操作:根據該節目的PMT PID得到PMT表中對應節目號的Section,按照PMT Section的結構進行分析,進而找到所有該節目的基本流PID值加以保存?
下面以加入新頻道為例,簡要介紹分析PAT和PMT得到解復用所需的各基本流PID信息的過程?首先,系統會發來一個消息,要求分析最新版本的PAT,調用相應函數(PSI_ProcessForPAT)得到PAT后,調用PAT分析函數?如圖3 得到各節目對應的PMT表的信息,并將信息存入指定的數據結構中;然后此任務向系統發一個消息,通知系統PAT分析完畢;接著,按照數據結構中各PMT的PID,系統會依次向本任務發送要求分析各PMT表的消息?本任務在調用相應函數(PSI_ProcessForPMT)得到所需PMT表后調用分析PMT表的函數(如圖3)進行分析,得到各個基本流信息的PID,并將信息存入指定的數據結構中保存,發送消息通知系統PMT分析完畢;最后,如果需要,系統會發消息要求分析其他PSI信息,分析過程類似?
得到各基本流信息的PID后,要選擇此頻道的哪一個節目,只要調用驅動程序提供的pti_set_pid(pid)和pti_set_pcr_pid?pcr_pid 分別設置節目相對應的音視頻PID和PCR_PID就可以驅動硬件解碼了?
責任編輯:gt
-
機頂盒
+關注
關注
4文章
386瀏覽量
54075 -
芯片
+關注
關注
453文章
50406瀏覽量
421815 -
電視機
+關注
關注
7文章
394瀏覽量
44026
發布評論請先 登錄
相關推薦
評論