MPEG2 TS小結(jié)
PSI由四張表構(gòu)成:PAT,PMT,CAT和NIT,這四張表分別描述了一個TS所包括的所有ES流的傳輸結(jié)構(gòu)。首先的一個概念是,TS是以包形式傳播,在編解碼端都需要以一定的包ID來標(biāo)識TS流里承載的內(nèi)容,比如,PAT表會存在于一個或多個TS包里,所以要用一個特別的包ID來表示,另外,不同的ES流也需要不同的包ID來標(biāo)識。我們有了PAT和PMT這兩種表,解碼器就可以根據(jù)PID,將TS上從不同ES來的TS包區(qū)分出來進行解碼。
TS的解碼分兩步進行,其一,是從PID為0的TS包里,解析出PAT表,然后從PAT表里找到各個節(jié)目源的PID,一般此類節(jié)目源都由若干個ES流組成,并描述在PMT表里面,然后通過節(jié)目源的PID,就可以在PMT表里檢索到各個ES的PID。其二,解碼器根據(jù)PMT表里的ES流的PID,將TS流上的包進行區(qū)分,并按不同的ES流進行解碼。所以,TS是經(jīng)過節(jié)目復(fù)用和傳輸復(fù)用兩層完成的,即在節(jié)目復(fù)用時,加入了PMT,在傳輸復(fù)用時,加入了PAT。同樣在節(jié)目解復(fù)用時,可以得到PMT,在傳輸解復(fù)用時,可以得到PAT。下圖很好地概述了其思想。
TS是支持多路復(fù)用的,所以它可用來傳輸經(jīng)復(fù)用后的多層節(jié)目。在復(fù)用過程中,要注意的是,解碼過程中所需要面對的時間參考和同步問題,因為解復(fù)用是需要各種信息同步進行的,所以在復(fù)用過程中,就需要插入相關(guān)的時間信息:PTS,DTS,PCR。
在TS形成過程中,PTS和DTS是在ES打包成PES時,根據(jù)STC的參考,將其時鐘信息注入PES包中的,而之后在PES切成TS時,再將PID和PCR信息注入到TS包中,當(dāng)多路TS再進行復(fù)用的時候,各路TS的PCR將會被提取出來,再進行分析,然后再根據(jù)統(tǒng)一的STC參考,將新的PCR生成并注入到TS中去,最后,因為原來PAT表信息不在適用,所以新的PAT表需要再生成,并附加到新的TS流中去。經(jīng)過這多層的復(fù)用之后,新的TS流即可以進入調(diào)制,傳輸階段。過程可參見下圖:
解碼過程要面對的問題是:解復(fù)用,視音頻的同步,解碼緩存器無上下溢。解復(fù)用即是將TS在同一信道里不同時序進行傳輸?shù)墓?jié)目分離出來;視音頻同步由DTS, PTS和PCR三者協(xié)調(diào)完成,并且PCR是重建系統(tǒng)時間基準(zhǔn)的絕對時標(biāo),而DTS和PTS是解碼和重現(xiàn)時刻的相對時標(biāo);對解碼緩存器無上下溢的問題,必須借助于系統(tǒng)目標(biāo)解碼器(STD)模型來對其進行實現(xiàn),基本思想如下:
TS流進入解碼器后,首先由換向器,按照一定的時序關(guān)系,將各種ES流分解出來(其中也包括PSI信息流)。
分解過后的ES流會進入各自的傳輸緩存器,通過之后,其PES流進入各自的主存儲器,注意的是:PSI信息流會進入系統(tǒng)緩存器,最后也到達主存儲器。
最后,解碼器根據(jù)DTS信息,從各個主存儲器分別提取媒體或系統(tǒng)信息,進行解碼,并根據(jù)PTS信息,將媒體內(nèi)容進行顯示處理。
其過程可參見下圖:
pid控制相關(guān)文章:pid控制原理
評論