Tuner數據處理流程

大概流程:

1.cable ts

信號(signel)--》tuner--》demux-》video,audio解碼編碼-》輸出顯示

2.本地ts

file--》demux-》video,audio解碼編碼-》輸出顯示

如果有解擾邏輯,則需要在demux後對video,audio解擾處理。

 

3.對cable ts 的錄製即:信號(signel)--》tuner--》demux-》磁盤--》demux--》video,audio解碼編碼-》輸出顯示

即多了一個步驟,需要將解擾的流保存到磁盤中,如果需要播放磁盤中的文件,則將磁盤中的文件數據傳給demux,也就是一個逆向過程。

當然demux的處理牽涉到section,filter另做討論。

-----------------------------------------------------------------------------------------------------------------------------------

以下將分節討論:

1.TUNER 調諧器

一般有有線cable,衛星satellite,地面territory 3種type

tuner工作需要知道頻率freq,符號率symb,QAM大小,tuner獲取到的信號signel有信號強度,誤碼率,質量,等級等,主要就是鎖住某個需要的頻點去獲取信息(模擬信號-》數字信號)。一般問題就是鎖不住頻點,拿不到signel。

目前一般是STB 的tuner某一時刻只能處理一個頻點信息,也許以後會啓動同時處理多個頻點或多個tuner的雙xx模式或多xx模式。終端屏幕的越來越大,完全是可以在一個屏上顯示多個流的。

 

2.Demux

終端主要是解複用,也就是解析自己想要的數據,並分類的處理。這塊需要專業的MPEG/DVB相關協議知識,主要是PSI/SI。

一般牽涉到的概念有filter,channel,section,pid等,一般來說一個Channel對應一個PID,對應多個Filter。

首現要知道頻點,需要tuner到某個頻點上去鎖頻,將模擬數據轉換爲數字信號。

然後數字信號會送到Demux解複用,這一坨數據很多,你需要通過一定的規則去獲取你想要的數據。

       filter過濾用,就是tuner拿到的那一坨數據有很多,但只需要將你想要的數據過濾出來。怎麼過濾?一般我們要知道我們想要的數據在哪個PID,對應的段數據可能還需要再細分類,那你還需要將section前幾個字節(byte)傳下去,讓demux只過濾出PID下同時匹配section前幾個字節數據對應的數據。比如。。。xx xx xx 01(PID)xx 02 03 04 05 06 07 xx 。。。當前頻點拿到的數據很多,但我只需要PID爲0x, section前3個字節爲02.03.04的表的數據,首先filter會過濾出pid爲0x01的所有的數據,然後在這些數據中過濾出前3個字節爲02 03 04 的那些數據。再細化分類的話拿到這些數據你就要按SI/PSI協議或你自己私有的協議來了。

     channe通道l我們可以認爲是一個容器,或再簡單點就認爲它是一塊內存。這塊容器就是用來裝我們filter出來的數據的,所以一般channel是掛在filter上的。一個filter可以有多個channels,或一個channel有多個filter,具體要看平臺實現需要。

     當然由於硬件特性,signel環境,參數情況,可能獲取不到我們想要的數據,不可能一直讓filter,channel一直去那那個不存在或有問題的數據的,就需要有一個超時機制:在這個時間段無法拿到數據,通知上層,demux拿不到你想要的數據,你改幹嘛幹嘛去吧。同時demux釋放filter,channel等相關資源。

 demux處理後,filter過濾的數據通過回調或其他方式給上層,上層拿到想要的數據再實現具體的應用。

 

3.video,audio 編解碼

一般來說解碼後就可以輸出output了。

目前常用的數據電視用到的制式有PAL,NTSC等

視頻輸出一般有CVBS,ypbpr,YUV,hdmi(高清用的多)等

視頻輸出一般用到視頻層,靜態層(still,IFRAME一般用到)

輸出節目長度寬度比國內一般有4/3,16/9

常用支持的視頻有:MPEG1,2,4;H264等

常用支持的音頻有:MPEG1,2,ADTS,AC3,DTS等


一般對音視頻會分配專門的固定的filter,channel。要播放某個節目,必須通過SI/PSI獲取到,freq,vpid,apid,pcrpid等。

播放音視頻就是讓tuner鎖對應freq的頻點,demux去過濾出vpid,apid的數據。其中通過pcrpid可以獲取一個時間參考系。vpid拿到視頻,其中有I,P,B幀;

apid拿到音頻,其中有I,P,B幀。音視頻同步就是通過I,P,B幀的PTS去同步pcrpid獲取的時間參考系。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章