DVB中的TS解複用(demux)原理:
1、機頂盒先調整高頻頭到一個固定的頻率(如498MHZ),如果此頻率有數字信號,則COFDM芯片(如MT352)會自動把TS流數據傳送給MPEG-2 decoder。
2、MPEG-2decoder先進行數據的同步,也就是等待完整的Packet的到來。然後循環查找是否出現PID==0x0000的Packet。
①如果出現了,則馬上進入分析PAT的處理,獲取了所有的PMT的PID。接着循環查找是否出現PMT,如果發現了,則自動進入PMT分析,獲取該頻段所有的頻道數據並保存。
只要我們處理了PMT,那麼我們就可以獲取頻道中所有的PID信息,例如當前頻道包含多少個Video,共多少個Audio,和其他數據,還能知道每種數據對應的PID分別是什麼。這樣如果我們要選擇其中一個Video和Audio收看,那麼只需要把要收看的節目的VideoPID和AudioPID保存起來,在處理Packet的時候進行過濾即可實現。
②如果沒有發現PAT或者沒有發現PMT,說明該頻段沒有信號,進入下一個頻率掃描。
從以上描述可以看出,機頂盒搜索頻率是隨機發生的,要使每次機頂盒都能搜索到信號,則要求TS流每隔一段時間就發送一次PAT和PMT。事實上DVB傳輸系統就是這麼做的。因此無論何時接入終端系統,系統都能馬上搜索到節目並正確解複用實現播放。不僅僅如此,其他數據也都是交替傳送的。比如第一個Packet可能是PAT,第二個Packet可能是PMT,而第三個Packet可能是Video1,第四個Packet可能是Video2,只要系統傳輸速度足夠快(就是稱之爲"碼率"的東東),實現實時播放是沒有任何問題的。
到這裏雖然實現瞭解複用,但可以看出,使用的PID都是枯燥的數字,如果調臺要用戶自己輸入數字那可是太麻煩了,而且還容易輸入錯誤,操作非常不直觀,即使做成一個菜單讓用戶選擇也是非常的呆板。針對這個問題,DVB系統提出了一個SDT表格,該表格標誌一個節目的名稱,並且能和PMT中的PID聯繫起來,這樣用戶就可以通過直接選擇節目名稱來選擇節目了。
No comments:
Post a Comment