• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            MPEG2 TS流

            聲明:以下內(nèi)容轉(zhuǎn)帖自http://blog.lmtw.com/b/moreframe/archives/2006/40865.html,作者寫(xiě)的非常好,感謝作者的辛苦。

            應(yīng)該說(shuō)真正了解TS,還是看了朋友推薦的《數(shù)字電視業(yè)務(wù)信息及其編碼》一書(shū)之后,MPEG2 TS和數(shù)字電視是緊密不可分割的,值得總結(jié)一下其中的一些關(guān)系。

            ISO/IEC-13818-1:系統(tǒng)部分;ISO/IEC-13818-2:視頻;ISO/IEC-13818-3:音頻;ISO/IEC-13818-4:一致性測(cè)試;ISO/IEC-13818-5:軟件部分;ISO/IEC-13818-6:數(shù)字存儲(chǔ)媒體命令與控制;ISO/IEC-13818-7:高級(jí)音頻編碼;ISO/IEC-13818-8:系統(tǒng)解碼實(shí)時(shí)接口;

            MPEG2系統(tǒng)任務(wù)包括:1. 規(guī)定以包傳輸數(shù)據(jù)的協(xié)議;2. 規(guī)定收發(fā)兩端數(shù)據(jù)流同步的協(xié)議;3. 提供多個(gè)數(shù)據(jù)流的復(fù)用和解復(fù)用協(xié)議;3. 提供數(shù)據(jù)流加密的協(xié)議。以包形式存儲(chǔ)和傳送數(shù)據(jù)流是MPEG2系統(tǒng)之要點(diǎn)。

            ES是直接從編碼器出來(lái)的數(shù)據(jù)流,可以是編碼過(guò)的視頻數(shù)據(jù)流,音頻數(shù)據(jù)流,或其他編碼數(shù)據(jù)流的統(tǒng)稱(chēng)。ES流經(jīng)過(guò)PES打包器之后,被轉(zhuǎn)換成PES包。PES包由包頭和payload組成,具體格式摘錄如下:


            可以看到PTS/DTS是打在PES包里面的,這兩個(gè)parameters是解決視音頻同步顯示,防止解碼器輸入緩存上溢或下溢的關(guān)鍵。PTS表示顯示單元出現(xiàn)在系統(tǒng)目標(biāo)解碼器(STD: system target decoder)的時(shí)間,DTS表示將存取單元全部字節(jié)從STD的ES解碼緩存器移走的時(shí)刻。每個(gè)I、PB幀的包頭都有一個(gè)PTSDTS,但PTSDTS對(duì)B幀都是一樣的,無(wú)須標(biāo)出B幀的DTS。對(duì)I幀和P幀,顯示前一定要存儲(chǔ)于視頻解碼器的重新排序緩存器中,經(jīng)過(guò)延遲(重新排序)后再顯示,一定要分別標(biāo)明PTSDTS。

            上節(jié)介紹過(guò),ES首先需打包成PES流包,然后PES根據(jù)需要打包成PS或TS包進(jìn)行存儲(chǔ)或傳輸。其每路ES只包含一路信源的編碼數(shù)據(jù)流,所以每路PES也只包含相對(duì)應(yīng)信源的數(shù)據(jù)流。

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


            PS包的長(zhǎng)度比較長(zhǎng)且可變,主要用于無(wú)誤碼環(huán)境里,因?yàn)樵介L(zhǎng)的話,同步越困難,且在丟包的情況下,重組也越困難。所以,PS適合于節(jié)目信息的編輯和本地內(nèi)容應(yīng)用的application。

            TS流也是由一個(gè)或多個(gè)PES組合而來(lái)的,他們可以具有相同的時(shí)間基準(zhǔn),也可以不同。其基本的復(fù)用思想是,對(duì)具有相同時(shí)間基準(zhǔn)的多個(gè)PES現(xiàn)進(jìn)行節(jié)目復(fù)用,然后再對(duì)相互有獨(dú)立時(shí)間基準(zhǔn)的各個(gè)PS進(jìn)行傳輸復(fù)用,最終產(chǎn)生出TS。
             
            TS包由包頭和包數(shù)據(jù)2部分組成,其中包頭還可以包括擴(kuò)展的自適用區(qū)。包頭長(zhǎng)度占4bytes,自使用區(qū)和包數(shù)據(jù)共占184bytes,整個(gè)TS包長(zhǎng)度相當(dāng)于4個(gè)ATM包長(zhǎng)。TS包的包頭由如下圖摘錄所示的同步字節(jié)、傳輸誤碼指示符、有效載荷單元起始指示符、傳輸優(yōu)先、包識(shí)別(PID-Packet Identification)、傳輸加擾控制、自適應(yīng)區(qū)控制和連續(xù)計(jì)數(shù)器8個(gè)部分組成。

             

            其中,可用同步字節(jié)位串的自動(dòng)相關(guān)特性,檢測(cè)數(shù)據(jù)流中的包限制,建立包同步;傳輸誤碼指示符,是指有不能消除誤碼時(shí),采用誤碼校正解碼器可表示1bit 的誤碼,但無(wú)法校正;有效載荷單元起始指示符,表示該數(shù)據(jù)包是否存在確定的起始信息;傳輸優(yōu)先,是給TS包分配優(yōu)先權(quán);PID值是由用戶確定的,解碼器根據(jù)PIDTS上從不同ES來(lái)的TS包區(qū)別出來(lái),以重建原來(lái)的ES;傳輸加擾控制,可指示數(shù)據(jù)包內(nèi)容是否加擾,但包頭和自適應(yīng)區(qū)永遠(yuǎn)不加擾;自適應(yīng)區(qū)控制,用2 bit表示有否自適應(yīng)區(qū),即(01)表示有有用信息無(wú)自適應(yīng)區(qū),(10)表示無(wú)有用信息有自適應(yīng)區(qū),(11)表示有有用信息有自適應(yīng)區(qū),(00)無(wú)定義;連續(xù)計(jì)數(shù)器可對(duì)PID包傳送順序計(jì)數(shù),據(jù)計(jì)數(shù)器讀數(shù),接收端可判斷是否有包丟失及包傳送順序錯(cuò)誤。顯然,包頭對(duì)TS包具有同步、識(shí)別、檢錯(cuò)及加密功能。

                TS包自適應(yīng)區(qū)由自適應(yīng)區(qū)長(zhǎng)、各種標(biāo)志指示符、與插入標(biāo)志有關(guān)的信息和填充數(shù)據(jù)4部分組成。其中標(biāo)志部分由間斷指示符、隨機(jī)存取指示符、ES優(yōu)化指示符、PCR標(biāo)志、接點(diǎn)標(biāo)志、傳輸專(zhuān)用數(shù)據(jù)標(biāo)志、原始PCR標(biāo)志、自適應(yīng)區(qū)擴(kuò)展標(biāo)志8個(gè)部分組成。重要的是標(biāo)志部分的PCR字段,可給編解碼器的27MHz時(shí)鐘提供同步資料,進(jìn)行同步。其過(guò)程是,通過(guò)PLL,用解碼時(shí)本地用PCR相位與輸入的瞬時(shí)PCR相位鎖相比較,確定解碼過(guò)程是否同步,若不同步,則用這個(gè)瞬時(shí)PCR調(diào)整時(shí)鐘頻率。因?yàn)?,?shù)字圖像采用了復(fù)雜而不同的壓縮編碼算法,造成每幅圖像的數(shù)據(jù)各不相同,使直接從壓縮編碼圖像數(shù)據(jù)的開(kāi)始部分獲取時(shí)鐘信息成為不可能。為此,選擇了某些(而非全部)TS包的自適應(yīng)區(qū)來(lái)傳送定時(shí)信息。于是,被選中的TS包的自適應(yīng)區(qū),可用于測(cè)定包信息的控制bit和重要的控制信息。自適應(yīng)區(qū)無(wú)須伴隨每個(gè)包都發(fā)送,發(fā)送多少主要由選中的TS包的傳輸專(zhuān)用時(shí)標(biāo)參數(shù)決定。標(biāo)志中的隨機(jī)存取指示符和接點(diǎn)標(biāo)志,在節(jié)目變動(dòng)時(shí),為隨機(jī)進(jìn)入I幀壓縮的數(shù)據(jù)流提供隨機(jī)進(jìn)入點(diǎn),也為插入當(dāng)?shù)毓?jié)目提供方便。自適應(yīng)區(qū)中的填充數(shù)據(jù)是由于PES包長(zhǎng)不可能正好轉(zhuǎn)為TS包的整數(shù)倍,最后的TS包保留一小部分有用容量,通過(guò)填充字節(jié)加以填補(bǔ),這樣可以防止緩存器下溢,保持總碼率恒定不變。

            前面3節(jié)總結(jié)了MPEG2 TS的基本格式,其中包括PES,PS和TS,以及相關(guān)字段的介紹。那么作為一種傳輸流,TS將內(nèi)容進(jìn)行打包/復(fù)用,讓其媒體內(nèi)容變成TS傳輸,并最終在解碼端解碼。簡(jiǎn)單來(lái)看,TS是一個(gè)傳輸層的協(xié)議棧,它可以承載各種內(nèi)容的傳輸,比如MPEG,WMV,H264,甚至是IP,那么其中的傳輸規(guī)范是如何定義的呢?這個(gè)即是PSI(節(jié)目特定信息)要做的事情。

            PSI由四張表構(gòu)成:PAT,PMT,CAT和NIT,這四張表分別描述了一個(gè)TS所包括的所有ES流的傳輸結(jié)構(gòu)。首先的一個(gè)概念是,TS是以包形式傳播,在編解碼端都需要以一定的包ID來(lái)標(biāo)識(shí)TS流里承載的內(nèi)容,比如,PAT表會(huì)存在于一個(gè)或多個(gè)TS包里,所以要用一個(gè)特別的包ID來(lái)表示,另外,不同的ES流也需要不同的包ID來(lái)標(biāo)識(shí)。我們有了PAT和PMT這兩種表,解碼器就可以根據(jù)PID,將TS上從不同ES來(lái)的TS包區(qū)分出來(lái)進(jìn)行解碼。

            TS的解碼分兩步進(jìn)行,其一,是從PID為0的TS包里,解析出PAT表,然后從PAT表里找到各個(gè)節(jié)目源的PID,一般此類(lèi)節(jié)目源都由若干個(gè)ES流組成,并描述在PMT表里面,然后通過(guò)節(jié)目源的PID,就可以在PMT表里檢索到各個(gè)ES的PID。其二,解碼器根據(jù)PMT表里的ES流的PID,將TS流上的包進(jìn)行區(qū)分,并按不同的ES流進(jìn)行解碼。所以,TS是經(jīng)過(guò)節(jié)目復(fù)用和傳輸復(fù)用兩層完成的,即在節(jié)目復(fù)用時(shí),加入了PMT,在傳輸復(fù)用時(shí),加入了PAT。同樣在節(jié)目解復(fù)用時(shí),可以得到PMT,在傳輸解復(fù)用時(shí),可以得到PAT。下圖很好地概述了其思想。

            TS是支持多路復(fù)用的,所以它可用來(lái)傳輸經(jīng)復(fù)用后的多層節(jié)目。在復(fù)用過(guò)程中,要注意的是,解碼過(guò)程中所需要面對(duì)的時(shí)間參考和同步問(wèn)題,因?yàn)榻鈴?fù)用是需要各種信息同步進(jìn)行的,所以在復(fù)用過(guò)程中,就需要插入相關(guān)的時(shí)間信息:PTS,DTS,PCR。

            在TS形成過(guò)程中,PTS和DTS是在ES打包成PES時(shí),根據(jù)STC的參考,將其時(shí)鐘信息注入PES包中的,而之后在PES切成TS時(shí),再將PID和PCR信息注入到TS包中,當(dāng)多路TS再進(jìn)行復(fù)用的時(shí)候,各路TS的PCR將會(huì)被提取出來(lái),再進(jìn)行分析,然后再根據(jù)統(tǒng)一的STC參考,將新的PCR生成并注入到TS中去,最后,因?yàn)樵瓉?lái)PAT表信息不在適用,所以新的PAT表需要再生成,并附加到新的TS流中去。經(jīng)過(guò)這多層的復(fù)用之后,新的TS流即可以進(jìn)入調(diào)制,傳輸階段。過(guò)程可參見(jiàn)下圖:


            解碼過(guò)程要面對(duì)的問(wèn)題是:解復(fù)用,視音頻的同步,解碼緩存器無(wú)上下溢。解復(fù)用即是將TS在同一信道里不同時(shí)序進(jìn)行傳輸?shù)墓?jié)目分離出來(lái);視音頻同步由DTS, PTS和PCR三者協(xié)調(diào)完成,并且PCR是重建系統(tǒng)時(shí)間基準(zhǔn)的絕對(duì)時(shí)標(biāo),而DTS和PTS是解碼和重現(xiàn)時(shí)刻的相對(duì)時(shí)標(biāo);對(duì)解碼緩存器無(wú)上下溢的問(wèn)題,必須借助于系統(tǒng)目標(biāo)解碼器(STD)模型來(lái)對(duì)其進(jìn)行實(shí)現(xiàn),基本思想如下:

            1. TS流進(jìn)入解碼器后,首先由換向器,按照一定的時(shí)序關(guān)系,將各種ES流分解出來(lái)(其中也包括PSI信息流)。
            2. 分解過(guò)后的ES流會(huì)進(jìn)入各自的傳輸緩存器,通過(guò)之后,其PES流進(jìn)入各自的主存儲(chǔ)器,注意的是:PSI信息流會(huì)進(jìn)入系統(tǒng)緩存器,最后也到達(dá)主存儲(chǔ)器。
            3. 最后,解碼器根據(jù)DTS信息,從各個(gè)主存儲(chǔ)器分別提取媒體或系統(tǒng)信息,進(jìn)行解碼,并根據(jù)PTS信息,將媒體內(nèi)容進(jìn)行顯示處理。

            其過(guò)程可參見(jiàn)下圖:


             原文地址 http://blog.lmtw.com/b/moreframe/archives/2006/40865.html

            posted on 2009-03-05 17:04 葉子 閱讀(8718) 評(píng)論(3)  編輯 收藏 引用 所屬分類(lèi): MPEG

            Feedback

            # re: MPEG2 TS流 2009-05-20 13:06 dvb-dvb

            mpeg 2的詳細(xì)資料,能否給我, 我需要huffman code的資料,
            這個(gè)是我的,請(qǐng)考察我是否合格,
            http://www.cnitblog.com/dvb-dvb/archive/2009/03/20/55573.html  回復(fù)  更多評(píng)論   

            # re: MPEG2 TS流 2009-05-21 15:59 葉子

            你說(shuō)的那個(gè)資料我這沒(méi)有,你的分析器看過(guò),做的不錯(cuò)。已留言到你blog  回復(fù)  更多評(píng)論   

            # re: MPEG2 TS流 2009-05-25 16:44 dvb-dvb

            根據(jù)我寫(xiě)的code ,生成了huffman tree, ,
            總體看來(lái)不平衡,感覺(jué)樹(shù)要到了,是個(gè)歪脖子樹(shù), 這個(gè)結(jié)果對(duì)么?,

            理想中的是,兩頭小,中間大,但這個(gè)樹(shù),左邊比右邊小多了.
              回復(fù)  更多評(píng)論   

            久久国产精品久久精品国产| 久久国产精品99精品国产| 精品一久久香蕉国产线看播放| 中文字幕久久欲求不满| 久久成人精品| 久久中文字幕人妻熟av女| 久久亚洲精品无码VA大香大香| 无遮挡粉嫩小泬久久久久久久 | 国产精品免费福利久久| 精品国产91久久久久久久| 久久久久国产亚洲AV麻豆| 少妇内射兰兰久久| 久久99久久成人免费播放| 色88久久久久高潮综合影院| 精品久久久久久久中文字幕| 亚洲愉拍99热成人精品热久久| 潮喷大喷水系列无码久久精品| 久久黄色视频| 99久久精品毛片免费播放| 人人狠狠综合久久亚洲高清| 久久精品国产半推半就| 模特私拍国产精品久久| 国产99久久久久久免费看| 浪潮AV色综合久久天堂| 中文精品久久久久人妻| 亚洲国产成人久久综合一| 国产A级毛片久久久精品毛片| 精品国产综合区久久久久久| 日产精品久久久久久久性色| 色播久久人人爽人人爽人人片aV | 国产精品99久久精品爆乳| 日韩欧美亚洲综合久久 | 久久艹国产| 久久99精品国产一区二区三区| 久久亚洲熟女cc98cm| 久久婷婷五月综合97色直播| 2020久久精品国产免费| 国产成人精品白浆久久69| 麻豆成人久久精品二区三区免费| 偷偷做久久久久网站| 2021国内久久精品|