2012年11月23日 星期五

MPEG-2的同步--STC,PCR,DTS,PTS

PTS:Presentation Time Stamp
DTS:Decoding Time Stamp
PCR:Program Clock Reference
SCR:Ststen Clock Reference
STC:System Time Clock

1. SCR
SCR是存在於PS中的,即PS的pack裡面的一個field。SCR用來提供decoder一個時間基準點。

2. ESCR
ESCR是位於PES裡面的,即PES的header裡面可能會有,當PES的packet要表示一個PES stream的時候,PES packet裡面的ESCR就表示這個PES packet的所期望的到達decoder的時間。

3.PCR
PCR是TS裡面的,即TS packet的header裡面可能會有,他用來提供該TS packet到達decoder的時間,他的作用於SCR類似。

4. DTS, PTS
對於一個ES來說,比如視頻,他又許多I,P,B幀,而P, B幀都是以I,P幀作為參考。由於B幀是前向後向參考,因此要對B幀作decode的話,就必須先decode該B幀後面的P,或者I幀,於是,decode的時間與幀的真正的present的時間就不一致了,按照DTS一次對各個幀進行decode,然後再按照PTS對各個幀進行展現。 

有時候PES header欄位也會有DTS,PTS,對於PTS來說,他代表了這個PES包得payload裡面的第一個完整地audio access unit或者video access unit的PTS時間(並不是每個audio/video access unit都帶有PTS/DTS,因此,你可以在PES裡面指定一個,作為開始)。 

PES header的DTS也是這個原理,只不過注意的是:對於video來說他的DTS和PTS是可以不一樣的,因為B幀的存在使其順序可以倒置。而對於audio來說,audio沒有雙向的預測,他的DTS和PTS可以看成是一個順序的,因此可一直採用一個,即可只採用PTS。

Reference:
[1] http://hi.baidu.com/yanl_cn/item/7619041421bdb10cd1d66d3b

沒有留言:

張貼留言