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