| Mpeg-2的同步及時(shí)間恢復 |
| 蔡新國 廣州市廣播電視網(wǎng)絡(luò )有限公司 (廣東廣州 510010)
摘要:Mpeg-2同步及時(shí)間恢復在編碼、傳輸和解碼中占有重要的地位,它不僅直接影響視音頻的解碼質(zhì)量,還是衡量整個(gè)傳輸網(wǎng)絡(luò )優(yōu)劣的重要指標。本文將從原理上介紹Mpeg-2同步及時(shí)間恢復方法,并給出PCR測量的幾個(gè)項目。 關(guān)鍵字:STC,PCR,DTS,PTS
一、引言 Mpeg-2用于視音頻同步以及系統時(shí)鐘恢復的時(shí)間標簽分別在ES,PES和TS這3個(gè)層次中。在ES層,與同步有關(guān)的主要是視頻緩沖驗證VBV(Video Buffer Verifier),用以防止解碼器的緩沖器出現上溢或者下溢;在PES層,主要是在PES頭信息里出現的顯示時(shí)間標簽PTS(Presentation Time Stamp)和解碼時(shí)間標簽DTS(Decoding Time Stamp);在TS層中,TS頭信息包含了節目時(shí)鐘參考PCR(Program Clock Reference),用于恢復出與編碼端一致的系統時(shí)序時(shí)鐘STC(System Time Clock)。 通常的視頻壓縮算法都采用了可變長(cháng)編碼,編碼生成的視頻碼流是可變碼率的。為了能夠在實(shí)際的固定碼率信道或者可變碼率信道上傳輸,需要引入緩沖區緩存視頻碼流數據。因此,視頻編碼算法必須提供一個(gè)有效的緩沖區管理策略,確保緩沖區不會(huì )發(fā)生上溢和下溢。編碼器通過(guò)碼率控制算法,調整生成的視頻碼流滿(mǎn)足既定的緩沖區管理策略;同時(shí)在碼率控制算法中使用自適應量化方法,確保壓縮視頻的質(zhì)量。 緩沖區管理策略通常都是建立在一個(gè)假想的解碼器模型上,該解碼器模型直接和編碼器的輸出相連接,緩沖區管理策略通過(guò)控制編碼視頻數據流移入和移出解碼器緩沖區的時(shí)間以保證解碼器模型的數據緩沖區不上溢也不下溢。在Mpeg標準中,該解碼器模型稱(chēng)為VBV。VBV在ES層中定義。 在Mpeg-2編碼器中有單一的共同系統時(shí)鐘,此時(shí)鐘用來(lái)產(chǎn)生指示音頻和視頻的正確顯示和解碼時(shí)序的時(shí)間標簽,同時(shí)可用來(lái)指示在抽樣瞬間系統時(shí)鐘時(shí)間的瞬時(shí)值。正是編碼器中共同系統時(shí)鐘的出現,以及解碼器中時(shí)鐘的重新生成和時(shí)間標簽的正確使用,才為解碼器中操作的正確同步提供了基準。 Mpeg-2規定的系統時(shí)鐘頻率為27MHz,傳輸流中的PCR,PTS/DTS等均為對該共同系統時(shí)鐘的采樣值。解碼端捕獲PCR,恢復出本地的STC,作為音視頻同步控制的基準,并依據PTS(DTS)時(shí)間標簽來(lái)安排解碼和顯示時(shí)間表,使音視頻分別同步于STC,以實(shí)現音視頻之間的同步。標準規定在原始音頻和視頻流中,PTS的間隔不能超過(guò)0.7s,而出現在TS包頭的PCR間隔不能超過(guò)0.1s。
二、STC與PCR STC是視音頻同步控制的基準,它是一串頻率為27MHz的脈沖,觸發(fā)計數器而形成一個(gè)二進(jìn)制表示的時(shí)間基準,再通過(guò)對該時(shí)間基準SCT進(jìn)行取樣得到PCR、PTS和DTS等時(shí)間標簽。在編碼和解碼端,系統時(shí)鐘脈沖是由振蕩器等硬件產(chǎn)生,在解碼端STC通過(guò)在碼流中定時(shí)傳送的PCR利用鎖相環(huán)(PLL)技術(shù)來(lái)與編碼端STC保持一致。 PCR是由對系統時(shí)鐘脈沖觸發(fā)的計數器狀態(tài)抽樣而來(lái),是放在TS包頭的自適應區中傳送。PCR共占6Bytes,其中6bits預留,42bits有效位。42bits的PCR分為兩部分:33bits的PCR-Base和9bits的PCR-Ext。PCR-Base是由27MHz脈沖經(jīng)300分頻后的90kHz脈沖觸發(fā)計數器,再對計數器狀態(tài)進(jìn)行取樣得到的。PCR-Ext是由27MHz脈沖直接觸發(fā)計數器,再對計數器狀態(tài)進(jìn)行取樣得到的。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到達解碼器時(shí),需要更新時(shí)間基點(diǎn),STC就被置位。通常第一個(gè)從解復用器中解出的PCR被直接裝入到STC計數器,其后PLL閉環(huán)操作。每當一個(gè)新節目的PCR到達解碼器時(shí),此值被認為是鎖相環(huán)的參考頻率,用來(lái)與STC的當前值比較,產(chǎn)生的差值e經(jīng)過(guò)脈寬調制后被輸入低通濾波器并經(jīng)放大,輸出控制信號f,用來(lái)控制振蕩器(VCO)的瞬時(shí)頻率,VCO輸出的頻率是在27MHz左右振蕩的信號,作為解碼器的系統時(shí)鐘。27MHz時(shí)鐘經(jīng)過(guò)波形整理后輸入到計數器中,產(chǎn)生當前的STC值,其33bits的90kHz部分用于和PTS/DTS比較,產(chǎn)生解碼和顯示的同步信號。 PCR-Base的作用是在解碼器切換節目時(shí),提供對解碼器PCR計數器的初始值,以讓該PCR值與PTS、DTS最大可能地達到相同的時(shí)間起點(diǎn)。PCR-ext的作用是通過(guò)解碼器端的鎖相環(huán)電路修正解碼器的系統時(shí)鐘,使其達到和編碼器一致的27MHz。 圖1顯示了解碼器如何用PCR 來(lái)重建每個(gè)節目的遠地27MHz時(shí)鐘。
圖1 用PCR重建遠地27MHz時(shí)鐘
三、DTS和PTS DTS是編碼器在編碼時(shí)定義的,為解碼器預定的解碼時(shí)間。該時(shí)間標記出現在PES層,在PES頭部時(shí)間域中存在。它也是一個(gè)33bits的計數值,也是對系統時(shí)鐘的300分頻的時(shí)鐘的計數值。由于它和PCR有相同的起點(diǎn),在PCR值連續的情況下,可以起到時(shí)間定時(shí)的作用,當本機PCR值(連續)和DTS值相等時(shí),表示它們計算了同樣的時(shí)鐘,也即它們經(jīng)過(guò)了相同的時(shí)間。本機PCR起到的是連續計數的功能,DTS則是在等待這個(gè)時(shí)間,一旦等到這個(gè)時(shí)間,就表明它的解碼次序排好了,因為這個(gè)解碼次序是在編碼的時(shí)候規定的,對編碼的具體細節我們可以不做了解,我們只要查詢(xún)到DTS就可以進(jìn)行下一步的工作。這個(gè)也有利于編碼器和解碼器研發(fā)的獨立性,少了一些捆綁,多了一些兼容。DTS就視頻來(lái)說(shuō),因為視頻編碼的時(shí)候用到了雙向預測,一個(gè)圖像單元被解出,并非馬上就被顯示,可能在存儲器中留一段時(shí)間,作為其余圖像單元的解碼參考,在被參考完畢后,才被顯示。針對視頻的顯示,Mpeg還提出了一個(gè)視頻PTS。針對音頻和視頻的同步顯示,又提出了一個(gè)音頻PTS。由于聲音沒(méi)有用到雙向預測,它的解碼次序就是它的顯示次序,故對它只提出PTS的概念。 PTS是編碼器定義的,為解碼器規定某個(gè)單元的顯示時(shí)間。它也是一個(gè)33b的計數值,也是對系統時(shí)鐘的300分頻的時(shí)鐘的計數值。要注意的是,PCR、DTS、PTS應該具有相同的時(shí)間起點(diǎn),選在模擬圖像的場(chǎng)同步處開(kāi)始計時(shí)是很好的辦法。一個(gè)單元解碼后被顯示,PCR計數器重新計數,開(kāi)始下一個(gè)單元的工作。
四、PCR測量 ㈠PCR 精度(PCR_AC):接收PCR中所含27MHz時(shí)鐘的不準確度,但不包含任何傳輸定時(shí)損傷。測量時(shí)傳輸碼流中PCR字節位置作為起點(diǎn),計算出PCR 到達時(shí)間。 ㈡PCR 漂移率(PCR_DR):PCR漂移率測量指的是PCR中的低頻誤差并計入了由PCR發(fā)生和再生引起的誤差以及由傳輸損傷所引起的到達時(shí)間誤差。即PCR內所含27MHz時(shí)鐘的低頻變化速率,測量時(shí)以某一穩定外部基準作為參考,因此包含了任何傳輸定時(shí)變化。下面的例子可用來(lái)說(shuō)明PCR 漂移率的重要性: 我們來(lái)看一下由PLL控制的本地時(shí)鐘再生器。再生器輸出端的信號頻率應當跟蹤輸入信號頻率,隨著(zhù)輸入信號頻率的變化,PLL也隨之作出響應,本地再生器將跟蹤輸入信號,隨著(zhù)輸入信號變化速率的增加,PLL的跟蹤能力會(huì )有所降低,最后將導致本地發(fā)生信號失鎖而丟失節目。PCR 漂移率的測量給出了一種測定方法,即如何更好地使去復用器/ 解碼器或再復用器的節目時(shí)鐘鎖定于輸入TS中所包含的PCR(注意這里指的是漂移率的測量而不是絕對頻率的測量,接收機端的PLL電路可以鎖定于系統時(shí)鐘,該時(shí)鐘有著(zhù)固定的頻率誤差-如果是快速變化或漂移率大,則會(huì )出現問(wèn)題)。 ㈢PCR 總抖動(dòng)(PCR_OJ):PCR內所含27MHz時(shí)鐘的高頻變化,測量時(shí)以某一穩定外部基準作為參考,因此包含了任何傳輸定時(shí)變化。它是PCR測量中最重要的一項,是PCR中高頻誤差的總體測量并且還包括來(lái)自PCR發(fā)生和PCR 再生的誤差以及由傳輸損傷引起的到達時(shí)間誤差。例如該項傳輸損傷可能會(huì )引入到接收機中的RF解調器中。接收機內再生的TS時(shí)鐘以及去復用器/解碼器所使用的TS時(shí)鐘可能包含有基本高頻變化,它會(huì )對PCR的恢復帶來(lái)直接影響。在這種情形下,解碼器在復原PCR 中所發(fā)現的PCR 到達時(shí)間誤差可能是±500ns容限的許多倍,給PCR精度帶來(lái)不利。任何解碼器均靠接收PCR以準確再生其節目時(shí)鐘并提供穩定的視頻輸出。與此相同,任何再復用器均靠接收PCR以在其輸出端精確地重新作出PCR標記。PCR的到達時(shí)間是嚴格的;因此,測量包含有到達時(shí)間誤差和精度誤差的總抖動(dòng)(PCR_OJ)就是非常必要的。 在理想運行系統中,傳輸損傷應當是可以設計的。然而在目前典型的分配網(wǎng)絡(luò )中,包含有再復用器、ATM 層等各級鏈路,它們均會(huì )引入誤差。PCR_AC是在復用器輸出端直接測量的數值,不過(guò)它在網(wǎng)絡(luò )中的運行監視常會(huì )使人迷惑不解,因為按照定義,它應當消除一切傳輸損傷。 ㈣PCR頻率偏置(PCR_FO):即PCR中所含27MHz 時(shí)鐘的頻率偏置,測量時(shí)以某一穩定的外部基準作為參考。
參考文獻 [1] ISO/IEC 13818-1(1996):Coding of moving pictures and associated Audio, Part 1: system. [2] 盧官明 宗昉 編著(zhù) [M]《數字電視原理》 北京:機械工業(yè)出版社,2004.1.1 [3] 劉文開(kāi) 劉遠航 主編 [M]《有線(xiàn)廣播數字電視技術(shù)》北京:人民郵電出版社,2003.10 [4] 劉修文 編著(zhù) [M]《數字電視有線(xiàn)傳輸技術(shù)》 北京:電子工業(yè)出版社,2002.9 |
聯(lián)系客服