Mpeg-2的同步及時間恢復--STC,PCR,DTS,PTS

基本概念

|---------------------------------------------------------------|
|  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 時鐘的頻率偏置,測量時以某一穩定的外部基準作爲參考。

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