標題: STC,PCR,DTS,PTS [打印本頁]
作者: 51黑tt 時間: 2016-3-5 17:15
標題: STC,PCR,DTS,PTS
PTS和DTS是時標,每秒增加90k
這個在MPEG2文檔中可以查到
The PTS/DTS flags in the packet header are set to indicate the presence of PTS alone or both PTS and DTS time stamp. Audio packets may contain several access units and the packet header contains a PTS. Because audio packets are never trans-mitted out of sequence, there is no DTS in an audio packet.
視頻流中的DTS/PTS到底是什么
DTS(解碼時間戳)和PTS(顯示時間戳)分別是解碼器進行解碼和顯示幀時相對于SCR(系統參考)的時間戳。
SCR可以理解為解碼器應該開始從磁盤讀取數據時的時間。
mpeg文件中的每一個包都有一個SCR時間戳并且這個時間戳就是讀取這個數據包時的系統時間。通常情況下,解碼器會在它開始讀取mpeg流時啟動系統時鐘(系統時鐘的初始值是第一個數據包的SCR值,通常為0但也可以不從0開始)。
DTS時間戳決定了解碼器在SCR時間等于DTS時間時進行解碼,PTS時間戳也是類似的。
通常,DTS/PTS時間戳指示的是晚于音視頻包中的SCR的 一個時間。例如,如果一個視頻數據包的SCR是 100ms(意味著此包是播放100ms以后從磁盤中讀取的),那么DTS/PTS值就差不多是200 /280ms,表明當SCR到200ms時這個視頻數據應該被解碼并在80ms以后被顯示出來(視頻數據在一個buffer中一直保存到開始解碼)
下溢通常發生在設置的視頻數據流相關mux率太高。如果mux率是1000000bits/sec(意味著解碼器要以 1000000bits/sec的速 率讀取文件),可是視頻速率是2000000bits/sec(意味著需要以2000000bits/sec的速率顯示視頻數據),從磁盤中讀取視頻數據 時速度不夠快以至于1秒鐘內不能夠讀取足夠的視頻數據
。這種情況下DTS/PTS時間戳就會指示視頻在從硬盤中讀出來之前進行解碼或顯示(DTS/PTS時間戳就要比包含它們的數據包中的SCR時間要早了)。
如今依靠解碼器,著基本已經不是什么問題了(盡管MPEG文件因為應該沒有下溢而并不完全符合MPEG標準)。一些解碼器(很多著名的基于PC的播放器)盡可能快的讀取文件以便顯示視頻,可以的話直接忽略SCR。
注意在你提供的列表中,平均的視頻流速率為~3Mbps(3000000bits/sec)但是它的峰值達到了14Mbps(相當大,DVD限制在 9.8Mbps內)。這意味著mux率需要調整足夠大以處理14Mbps的部分, bbMPEG計算出來的mux率有時候太低而導致下溢。
你計劃讓視頻流速率這么高么?這已經超過了DVD的說明了,而且很可能在大多數獨立播放其中都不能播放。如果你不是這么計劃,我會從1增加mquant的值并且在視頻設置中將最大碼流設置為9Mbps以保持一個小一點的碼流。
如果你確實想讓視頻碼率那么高,你需要增大mux率。從提供的列表可以得出bbMPEG使用 14706800bits/sec或者 1838350bytes/sec的mux率(總數據速率為:1838350bytes/sec(14706800bits/sec)行)。你在強制 mux率字段設置的值應該是以bytes/sec為單位并被50整除。所以我會從36767(1838350/50)開始,一直增加直到不會再出現下溢錯 誤為止。
基本概念
|---------------------------------------------------------------|
| TS/PS: Transport stream |
| Packetized Stream |
| |-------------------------------------------------------| |
| | PES: Packetized Elementary Stream | |
| | |-----------------------------------------------| | |
| | | ES:Elementary stream | | |
| | | |------------------------------------| | | |
| | | | | | | |
| | | | GOP:Group of pictures | | | |
| | | |------------------------------------| | | |
| | | | | |
| | |------------------------------------------------| | |
| | | |
| |--------------------------------------------------------| |
| |
|----------------------------------------------------------------|
TS: DVB
PS:DVD
PTS:Presentation Time Stamp
DTS:Decoding Time Stamp
PCR:Program Clock Reference
STC:System Time Clock
1. SCR
SCR是存在于PS中的,即PS的pack里面的一個field。他用來指定這個PS的pack期望的到達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包頭里面也會有DTS,PTS,對于PTS來說,他代表了這個PES包得payload里面的第一個完整地audio access unit或者video access unit的PTS時間(并不是每個audio/video access unit都帶有PTS/DTS,因此,你可以在PES里面指定一個,作為開始)。
PES包頭的DTS也是這個原理,只不過注意的是:對于video來說他的DTS和PTS是可以不一樣的,因為B幀的存在使其順序可以倒置。而對于audio來說,audio沒有雙向的預測,他的DTS和PTS可以看成是一個順序的,因此可一直采用一個,即可只采用PTS。
Mpeg-2的同步及時間恢復--STC,PCR,DTS,PTS
摘要:Mpeg-2同步及時間恢復在編碼、傳輸和解碼中占有重要的地位,它不僅直接影響視音頻的解碼質量,還是衡量整個傳輸網絡優劣的重要指標。本文將從原理上介紹Mpeg-2同步及時間恢復方法,并給出PCR測量的幾個項目。關鍵字:STC,PCR,DTS,PTS
一、引言
Mpeg-2用于視音頻同步以及系統時鐘恢復的時間標簽分別在ES,PES和TS這3個層次 中。在ES層,與同步有關的主要是視頻緩沖驗證VBV(Video Buffer Verifier),用以防止解碼器的緩沖器出現上溢或者下溢;在PES層,主要是在PES頭信息里出現的顯示時間標簽PTS(Presentation Time Stamp)和解碼時間標簽DTS(Decoding Time Stamp);在TS層中,TS頭信息包含了節目時鐘參考PCR(Program Clock Reference),用于恢復出與編碼端一致的系統時序時鐘STC(System Time Clock)。
通常的視頻壓縮算法都采用了可變長編碼,編碼生成的視頻碼流是可變碼率的。為了能夠在實際的 固定碼率信道或者可變碼率信道上傳輸,需要引入緩沖區緩存視頻碼流數據。因此,視頻編碼算法必須提供一個有效的緩沖區管理策略,確保緩沖區不會發生上溢和 下溢。編碼器通過碼率控制算法,調整生成的視頻碼流滿足既定的緩沖區管理策略;同時在碼率控制算法中使用自適應量化方法,確保壓縮視頻的質量。
緩沖區管理策略通常都是建立在一個假想的解碼器模型上,該解碼器模型直接和編碼器的輸出相連 接,緩沖區管理策略通過控制編碼視頻數據流移入和移出解碼器緩沖區的時間以保證解碼器模型的數據緩沖區不上溢也不下溢。在Mpeg標準中,該解碼器模型稱 為VBV。VBV在ES層中定義。
在Mpeg-2編碼器中有單一的共同系統時鐘,此時鐘用來產生指示音頻和視頻的正確顯示和解 碼時序的時間標簽,同時可用來指示在抽樣瞬間系統時鐘時間的瞬時值。正是編碼器中共同系統時鐘的出現,以及解碼器中時鐘的重新生成和時間標簽的正確使用, 才為解碼器中操作的正確同步提供了基準。
Mpeg-2規定的系統時鐘頻率為27MHz,傳輸流中的PCR,PTS/DTS等均為對該 共同系統時鐘的采樣值。解碼端捕獲PCR,恢復出本地的STC,作為音視頻同步控制的基準,并依據PTS(DTS)時間標簽來安排解碼和顯示時間表,使音 視頻分別同步于STC,以實現音視頻之間的同步。標準規定在原始音頻和視頻流中,PTS的間隔不能超過0.7s,而出現在TS包頭的PCR間隔不能超過 0.1s。
二、STC與PCR
STC是視音頻同步控制的基準,它是一串頻率為27MHz的脈沖,觸發計數器而形成一個二進 制表示的時間基準,再通過對該時間基準SCT進行取樣得到PCR、PTS和DTS等時間標簽。在編碼和解碼端,系統時鐘脈沖是由振蕩器等硬件產生,在解碼 端STC通過在碼流中定時傳送的PCR利用鎖相環(PLL)技術來與編碼端STC保持一致。
PCR是由對系統時鐘脈沖觸發的計數器狀態抽樣而來,是放在TS包頭的自適應區中傳送。 PCR共占6Bytes,其中6bits預留,42bits有效位。42bits的PCR分為兩部分:33bits的PCR-Base和9bits的 PCR-Ext。PCR-Base是由27MHz脈沖經300分頻后的90kHz脈沖觸發計數器,再對計數器狀態進行取樣得到的。PCR-Ext是由 27MHz脈沖直接觸發計數器,再對計數器狀態進行取樣得到的。PCR的具體編碼方式如下(編碼在PCR(i)中的數值代表了t(i),i指包含PCR- Base字段的最后一位的字節):
PCR-Base(i)=90kHz×t(i), mod(233)
PCR-Ext(i)=27MHz×t(i), mod(300)
PCR(i)=PCR-Base(i)×300+PCR-Ext(i)
當新節目的PCR到達解碼器時,需要更新時間基點,STC就被置位。通常第一個從解復用器中 解出的PCR被直接裝入到STC計數器,其后PLL閉環操作。每當一個新節目的PCR到達解碼器時,此值被認為是鎖相環的參考頻率,用來與STC的當前值 比較,產生的差值e經過脈寬調制后被輸入低通濾波器并經放大,輸出控制信號f,用來控制振蕩器(VCO)的瞬時頻率,VCO輸出的頻率是在27MHz左右 振蕩的信號,作為解碼器的系統時鐘。27MHz時鐘經過波形整理后輸入到計數器中,產生當前的STC值,其33bits的90kHz部分用于和 PTS/DTS比較,產生解碼和顯示的同步信號。
PCR-Base的作用是在解碼器切換節目時,提供對解碼器PCR計數器的初始值,以讓該PCR值與PTS、DTS最大可能地達到相同的時間起點。PCR-ext的作用是通過解碼器端的鎖相環電路修正解碼器的系統時鐘,使其達到和編碼器一致的27MHz。
圖1顯示了解碼器如何用PCR 來重建每個節目的遠地27MHz時鐘。
圖略
圖1 用PCR重建遠地27MHz時鐘
三、DTS和PTS
DTS是編碼器在編碼時定義的,為解碼器預定的解碼時間。該時間標記出現在PES層,在 PES頭部時間域中存在。它也是一個33bits的計數值,也是對系統時鐘的300分頻的時鐘的計數值。由于它和PCR有相同的起點,在PCR值連續的情 況下,可以起到時間定時的作用,當本機PCR值(連續)和DTS值相等時,表示它們計算了同樣的時鐘,也即它們經過了相同的時間。本機PCR起到的是連續 計數的功能,DTS則是在等待這個時間,一旦等到這個時間,就表明它的解碼次序排好了,因為這個解碼次序是在編碼的時候規定的,對編碼的具體細節我們可以 不做了解,我們只要查詢到DTS就可以進行下一步的工作。這個也有利于編碼器和解碼器研發的獨立性,少了一些捆綁,多了一些兼容。DTS就視頻來說,因為 視頻編碼的時候用到了雙向預測,一個圖像單元被解出,并非馬上就被顯示,可能在存儲器中留一段時間,作為其余圖像單元的解碼參考,在被參考完畢后,才被顯 示。針對視頻的顯示,Mpeg還提出了一個視頻PTS。針對音頻和視頻的同步顯示,又提出了一個音頻PTS。由于聲音沒有用到雙向預測,它的解碼次序就是 它的顯示次序,故對它只提出PTS的概念。
PTS是編碼器定義的,為解碼器規定某個單元的顯示時間。它也是一個33b的計數值,也是對 系統時鐘的300分頻的時鐘的計數值。要注意的是,PCR、DTS、PTS應該具有相同的時間起點,選在模擬圖像的場同步處開始計時是很好的辦法。一個單 元解碼后被顯示,PCR計數器重新計數,開始下一個單元的工作。
四、PCR測量
㈠PCR 精度(PCR_AC):接收PCR中所含27MHz時鐘的不準確度,但不包含任何傳輸定時損傷。測量時傳輸碼流中PCR字節位置作為起點,計算出PCR 到達時間。
㈡PCR 漂移率(PCR_DR):PCR漂移率測量指的是PCR中的低頻誤差并計入了由PCR發生和再生引起的誤差以及由傳輸損傷所引起的到達時間誤差。即PCR 內所含27MHz時鐘的低頻變化速率,測量時以某一穩定外部基準作為參考,因此包含了任何傳輸定時變化。下面的例子可用來說明PCR 漂移率的重要性:
我們來看一下由PLL控制的本地時鐘再生器。再生器輸出端的信號頻率應當跟蹤輸入信號頻率, 隨著輸入信號頻率的變化,PLL也隨之作出響應,本地再生器將跟蹤輸入信號,隨著輸入信號變化速率的增加,PLL的跟蹤能力會有所降低,最后將導致本地發 生信號失鎖而丟失節目。PCR 漂移率的測量給出了一種測定方法,即如何更好地使去復用器/ 解碼器或再復用器的節目時鐘鎖定于輸入TS中所包含的PCR(注意這里指的是漂移率的測量而不是絕對頻率的測量,接收機端的PLL電路可以鎖定于系統時 鐘,該時鐘有著固定的頻率誤差-如果是快速變化或漂移率大,則會出現問題)。
㈢PCR 總抖動(PCR_OJ):PCR內所含27MHz時鐘的高頻變化,測量時以某一穩定外部基準作為參考,因此包含了任何傳輸定時變化。它是PCR測量中最重 要的一項,是PCR中高頻誤差的總體測量并且還包括來自PCR發生和PCR 再生的誤差以及由傳輸損傷引起的到達時間誤差。例如該項傳輸損傷可能會引入到接收機中的RF解調器中。接收機內再生的TS時鐘以及去復用器/解碼器所使用 的TS時鐘可能包含有基本高頻變化,它會對PCR的恢復帶來直接影響。在這種情形下,解碼器在復原PCR 中所發現的PCR 到達時間誤差可能是±500ns容限的許多倍,給PCR精度帶來不利。任何解碼器均靠接收PCR以準確再生其節目時鐘并提供穩定的視頻輸出。與此相同,任 何再復用器均靠接收PCR以在其輸出端精確地重新作出PCR標記。PCR的到達時間是嚴格的;因此,測量包含有到達時間誤差和精度誤差的總抖動 (PCR_OJ)就是非常必要的。
在理想運行系統中,傳輸損傷應當是可以設計的。然而在目前典型的分配網絡中,包含有再復用器、ATM 層等各級鏈路,它們均會引入誤差。PCR_AC是在復用器輸出端直接測量的數值,不過它在網絡中的運行監視常會使人迷惑不解,因為按照定義,它應當消除一切傳輸損傷。
㈣PCR頻率偏置(PCR_FO):即PCR中所含27MHz 時鐘的頻率偏置,測量時以某一穩定的外部基準作為參考
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久精品国产一区二区三区
|
本地毛片
|
夜夜夜夜夜夜曰天天天
|
国产精品久久久久久久久久久久久
|
91精品国产自产在线老师啪
|
国产一在线观看
|
亚洲精选久久
|
久久精品成人
|
日韩精品一区二区三区视频播放
|
夜夜操天天操
|
一区二区三区免费在线观看
|
日本超碰在线
|
亚洲一区在线日韩在线深爱
|
日韩a v在线免费观看
|
欧美a区
|
狠狠的日
|
欧美乱做爰xxxⅹ久久久
|
视频一区在线
|
亚洲欧美日本在线
|
日韩欧美在线一区
|
欧美欧美欧美
|
国产清纯白嫩初高生在线播放视频
|
久久这里只有精品首页
|
日本不卡一区二区三区
|
狠狠婷婷综合久久久久久妖精
|
国产午夜视频
|
亚洲在线
|
99re热这里只有精品视频
|
免费看片在线播放
|
国产精品视频网
|
人人操日日干
|
天天爽一爽|
波多野结衣一区二区三区在线观看
|
亚洲乱码国产乱码精品精98午夜
|
97超碰免费
|
国产91精品久久久久久久网曝门
|
亚洲精品久久久久久久久久久久久
|
午夜爽爽爽男女免费观看
|
日韩精品在线看
|
美人の美乳で授乳プレイ
|
在线观看日韩av
|