MPEG2 TS小結

來源:互聯網
上載者:User

應該說真正瞭解TS,還是看了朋友推薦的《數字電視商務資訊及其編碼》一書之後,MPEG2 TS和數字電視是緊密不可分割的,值得總結一下其中的一些關係。

ISO/IEC-13818-1:系統部分;ISO/IEC-13818-2:視頻;ISO/IEC-13818-3:音頻;ISO/IEC-13818-4:一致性測試;ISO/IEC-13818-5:軟體部分;ISO/IEC-13818-6:數字儲存媒體命令與控制;ISO/IEC-13818-7:進階音頻編碼;ISO/IEC-13818-8:系統解碼即時介面;

MPEG2系統任務包括:1. 規定以包傳輸資料的協議;2. 規定收發兩端資料流同步的協議;3. 提供多個資料流的複用和解複用協議;3. 提供資料流加密的協議。以包形式儲存和傳送資料流是MPEG2系統之要點。

ES是直接從編碼器出來的資料流,可以是編碼過的視頻資料流,音頻資料流,或其他編碼資料流的統稱。ES流經過PES打包器之後,被轉換成PES包。PES包由包頭和payload組成,具體格式摘錄如下:

可以看到PTS/DTS是打在PES包裡面的,這兩個parameters是解決視音頻同步顯示,防止解碼器輸入緩衝上溢或下溢的關鍵。PTS表示顯示單元出現在系統目標解碼器(STD: system target decoder)的時間,DTS表示將存取單元全部位元組從STD的ES解碼緩衝器移走的時刻。每個I、P、B幀的包頭都有一個PTS和DTS,但PTS與DTS對B幀都是一樣的,無須標出B幀的DTS。對I幀和P幀,顯示前一定要儲存於視頻解碼器的重新排序緩衝器中,經過延遲(重新排序)後再顯示,一定要分別標明PTS和DTS。

上節介紹過,ES首先需打包成PES流包,然後PES根據需要打包成PS或TS包進行儲存或傳輸。其每路ES只包含一路信源的編碼資料流,所以每路PES也只包含相對應信源的資料流。

對PS流而言,每個PES包頭含有PTS和DTS,流識別碼,用於區別不同性質ES。然後通過PS複用器將PES包複用成PS包。實際上是將PES包分解為更細小的PS包。在解碼的時候,解複用器將PS分解成一個個PES包,拆包器然後將PES包拆成視頻和音訊ES,最後輸入至各自解碼器進行解碼。一個問題是:各個ES在解碼時,如何保證視音訊同步呢?除了PTS和DTS的配合工作外,還有一個重要的參數是SCR(system clock reference)。在編碼的時候,PTS,DTS和SCR都是由STC(system
time clock)產生的,在解碼時,STC會再生,並通過鎖相環路(PLL-phase lock loop),用本地SCR相位與輸入的瞬時SCR相位鎖相比較,以確定解碼過程是否同步,若不同步,則用這個瞬時SCR調整27MHz的本地時鐘頻率。最後,PTS,DTS和SCR一起配合,解決視音頻同步播放的問題。PS格式摘錄如下:

PS包的長度比較長且可變,主要用於無誤碼環境裡,因為越長的話,同步越困難,且在丟包的情況下,重組也越困難。所以,PS適合於節目資訊的編輯和本地內容應用的application。

TS流也是由一個或多個PES組合而來的,他們可以具有相同的時間基準,也可以不同。其基本的複用思想是,對具有相同時間基準的多個PES現進行節目複用,然後再對相互有獨立時間基準的各個PS進行傳輸複用,最終產生出TS。 TS包由包頭和包資料2部分組成,其中包頭還可以包括擴充的自適用區。包頭長度佔4bytes,自使用區和包資料共佔184bytes,整個TS包長度相當於4個ATM包長。TS包的包頭由如摘錄所示的同步位元組、傳輸誤碼指示符、有效載荷單元起始指示符、傳輸優先、包識別(PID-Packet
Identification)、傳輸加擾控制、自適應區控制和連續計數器8個部分組成。
 

其中,可用同步位元組位串的自動相關特性,檢測資料流中的包限制,建立包同步;傳輸誤碼指示符,是指有不能消除誤碼時,採用誤碼校正解碼器可表示1bit 的誤碼,但無法校正;有效載荷單元起始指示符,表示該資料包是否存在確定的起始資訊;傳輸優先,是給TS包分配優先權;PID值是由使用者確定的,解碼器根據PID將TS上從不同ES來的TS包區別出來,以重建原來的ES;傳輸加擾控制,可指示資料包內容是否加擾,但包頭和自適應區永遠不加擾;自適應區控制,用2
bit表示有否自適應區,即(01)表示有有用資訊無自適應區,(10)表示無有用資訊有自適應區,(11)表示有有用資訊有自適應區,(00)無定義;連續計數器可對PID包傳送順序計數,據計數器讀數,接收端可判斷是否有包丟失及包傳送順序錯誤。顯然,包頭對TS包具有同步、識別、檢錯及加密功能。

    TS包自適應區由自適應區長、各種標誌指示符、與插入標誌有關的資訊和填充資料4部分組成。其中標誌部分由間斷指示符、隨機存取指示符、ES最佳化指示符、PCR標誌、接點標誌、傳輸專用資料標誌、原始PCR標誌、自適應區擴充標誌8個部分組成。重要的是標誌部分的PCR欄位,可給轉碼器的27MHz時鐘提供同步資料,進行同步。其過程是,通過PLL,用解碼時本地用PCR相位與輸入的瞬時PCR相位鎖相比較,確定解碼過程是否同步,若不同步,則用這個瞬時PCR調整時鐘頻率。因為,數位影像採用了複雜而不同的壓縮編碼演算法,造成每幅映像的資料各不相同,使直接從壓縮編碼映像資料的開始部分擷取時鐘資訊成為不可能。為此,選擇了某些(而非全部)TS包的自適應區來傳送定時資訊。於是,被選中的TS包的自適應區,可用於測定包資訊的控制bit和重要的控制資訊。自適應區無須伴隨每個包都發送,發送多少主要由選中的TS包的傳輸專用時標參數決定。標誌中的隨機存取指示符和接點標誌,在節目變動時,為隨機進入I幀壓縮的資料流提供隨機進入點,也為插入當地節目提供方便。自適應區中的填充資料是由於PES包長不可能正好轉為TS包的整數倍,最後的TS包保留一小部分有用容量,通過填充位元組加以填補,這樣可以防止緩衝器下溢,保持總碼率恒定不變。

前面3節總結了MPEG2 TS的基本格式,其中包括PES,PS和TS,以及相關欄位的介紹。那麼作為一種傳輸串流,TS將內容進行打包/複用,讓其媒體內容變成TS傳輸,並最終在解碼端解碼。簡單來看,TS是一個傳輸層的協議棧,它可以承載各種內容的傳輸,比如MPEG,WMV,H264,甚至是IP,那麼其中的傳輸規範是如何定義的呢?這個即是PSI(節目特定資訊)要做的事情。

PSI由四張表構成:PAT,PMT,CAT和NIT,這四張表分別描述了一個TS所包括的所有ES流的傳輸結構。首先的一個概念是,TS是以包形式傳播,在編解碼端都需要以一定的包ID來標識TS流裡承載的內容,比如,PAT表會存在於一個或多個TS包裡,所以要用一個特別的包ID來表示,另外,不同的ES流也需要不同的包ID來標識。我們有了PAT和PMT這兩種表,解碼器就可以根據PID,將TS上從不同ES來的TS包區分出來進行解碼。

TS的解碼分兩步進行,其一,是從PID為0的TS包裡,解析出PAT表,然後從PAT表裡找到各個節目源的PID,一般此類節目源都由若干個ES流組成,並描述在PMT表裡面,然後通過節目源的PID,就可以在PMT表裡檢索到各個ES的PID。其二,解碼器根據PMT表裡的ES流的PID,將TS流上的包進行區分,並按不同的ES流進行解碼。所以,TS是經過節目複用和傳輸複用兩層完成的,即在節目複用時,加入了PMT,在傳輸複用時,加入了PAT。同樣在節目解複用時,可以得到PMT,在傳輸解複用時,可以得到PAT。很好地概述了其思想。

TS是支援多工,所以它可用來傳輸經複用後的多層節目。在複用過程中,要注意的是,解碼過程中所需要面對的時間參考和同步問題,因為解複用是需要各種資訊同步進行的,所以在複用過程中,就需要插入相關的時間資訊:PTS,DTS,PCR。

在TS形成過程中,PTS和DTS是在ES打包成PES時,根據STC的參考,將其時鐘資訊注入PES包中的,而之後在PES切成TS時,再將PID和PCR資訊注入到TS包中,當多路TS再進行複用的時候,各路TS的PCR將會被提取出來,再進行分析,然後再根據統一的STC參考,將新的PCR產生並注入到TS中去,最後,因為原來PAT表資訊不在適用,所以新的PAT表需要再產生,並附加到新的TS流中去。經過這多層的複用之後,新的TS流即可以進入調製,傳輸階段。過程可參見:

解碼過程要面對的問題是:解複用,視音訊同步,解碼緩衝器無上下溢。解複用即是將TS在同一通道裡不同時序進行傳輸的節目分離出來;視音頻同步由DTS, PTS和PCR三者協調完成,並且PCR是重建系統時間基準的絕對時標,而DTS和PTS是解碼和重現時刻的相對時標;對解碼緩衝器無上下溢的問題,必須藉助於系統目標解碼器(STD)模型來對其進行實現,基本思想如下:

  1. TS流進入解碼器後,首先由換向器,按照一定的時序關係,將各種ES流分解出來(其中也包括PSI資訊流)。
  2. 分解過後的ES流會進入各自的傳輸緩衝器,通過之後,其PES流進入各自的主儲存空間,注意的是:PSI資訊流會進入系統緩衝器,最後也到達主儲存空間。
  3. 最後,解碼器根據DTS資訊,從各個主儲存空間分別提取媒體或系統資訊,進行解碼,並根據PTS資訊,將媒體內容進行顯示處理。

其過程可參見:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.