TS (Transport stream) 格式:

包:
包是TS中最基本的數據單元.它內部包含固定的1個同步字節,值爲0x47.之後是3個比特標誌字段和13個

比特的包ID字段(PID),然後是4個比特的連續計數器字段,下面還可以有其它可選附加的字段,如可靠用

來提供支持信息的字段.其餘部分就是數據載荷。每個包的長度爲188字節,但通信媒介爲包添加錯誤校

檢字節。如DVI-ASI使用204字節和ATSC使用208字節做爲包長度.ATSC添加了20個字節的Reed-Solomon前

向錯誤碼校驗使得數據包最後達到208字節。選擇188字節標準包長度的最初原因是爲了兼容ATM通信系

統.

TS包格式:
名稱   比特長度  描述
同步字節  8   0x47
傳輸錯誤指示(TEI) 1   當去模器無法糾正錯誤時設置
數據載荷起始指示 1   1表示PES或PSI數據的起始位置,否則爲0
傳輸優先級  1   1表示此數據包在相同PID的數據包中具有更高的

優先級
PID   13   包ID號
干擾控制  2   00表示不加入干擾 由每個DVB指定: 01表示反轉

供將來使用 10表示使用偶數進行干擾 11表示使用奇數來進行干擾.
支持字段是否存在 1   1表示提供了支持字段
數據載荷是否存在 1   1表示提供了數據載荷
連續性計數器  4
以上所有字段共用32字節,被稱爲TS 4字節前綴(Transport stream 4-byte prefix)。
支持字段  0或多   依賴標誌字段
數據載荷  0或多   依賴標誌字段

支持字段格式:
名稱   比特長度  描述
支持字段長度  8   此支持字段其餘部分所佔用的字節數。
中斷指示  1   1表示此包中的連續計數器發生中斷。
隨機訪問指示  1   1表示此包中的PES包開始了1個視頻或音頻序列
基礎流優先指示  1   1表示高優先級
PCR標誌   1   1表示此支持字段包括了PCR字段
CPCR標誌  1   
粘接點標誌  1   1表示此支持字段包括了粘接倒計時字段
傳輸私有數據標誌 1   1表示此支持字段包括私有數據字節
支持字段擴展標誌 1   1表示此支持字段包括了支持擴展
以下的字段可選  0或多   依賴於標誌字段設置
PCR   33+9   包時間參考
OPCR   33+9   初始程序時間參考,輔助TS流拷貝至其它的TS流

中。
粘接點倒計時  8   表示相距多少個TS包後發生一個粘接點(可能是

負值)
其它添加字節  0或多   自定義

PID
每個在TS中的表和基本流都由13個比特的包ID來標識。多路分離器通過此PID從TS中分離出多路基本流

。時分多路轉換將決定特定的PID在TS中的發生頻率。

程序(Programs)
TS包括了一個程序(Programs)的概念。使用唯一PID的程序映射表(Program Map Table PMT)描述每

個單一的程序,所有組成此程序的基本流PID都列在此程序映射表中。舉例來說,數字電視所使用的TS

中可能包括了3個程序,來提供3個電視頻道。假設每個頻道由1個視頻流,1或2個音頻流及必要的元數

據組成。接收器希望僅解碼屬於頻道對應的程序PID的數據載荷就可以解碼特定的頻道。它可以丟棄所

有其它PID相關內容。多個程序的TS被參照爲多程序TS(Multi Program Transport Stream MPTS)。單

一程序的TS被參照爲單一程序TS(Single Program Transport Stream SPTS)。

程序定義信息(PSI)
TS包括了4種程序定義信息表:程序組成表(PAT),程序映射表(PMT)
,條件訪問表(CAT)和網絡信息表(NIT).MPEG-2定義沒有包括CAT和NIT格式.

程序組成表(PAT):
列出了在TS中的所有有效的程序.每個列出的程序由一個16比特的被稱爲program_number(程序號)的值

來標識.每個在程序組成表(PAT)中列出的程序都結合了一個PID值來對應(程序映射表)PMT表.值爲

0x0000的program_number被保留用來指定對應網絡信息表(NIT)的PID值.如查在程序組成表中沒提供這

個表項那麼使用默認的0x0010值來指定網絡信息表(NIT)的PID值.

TS包中的程序組成表(PAT)中永久包括值爲0x0000的program_number.

程序映射表(PMT):
程序映射表(PMT)包括了程序的信息.每個程序都有一個對應的程序映射表(PMT).每個PMT將被轉換爲分

立的PID,雖然在技術上它是並不必要的.在PMT中描述了對應的程序相關的PID值.程序映射表(PMT)也提

供了包含的PID對應流的元數據.舉例來說,如果1個程序中包括了1個MPEG-2視頻流,它的程序信息表

(PMT)將列出這個視頻流的PID,描述其爲一個視頻流,同時提供其包含的視頻數據的類型.(此例中是

MPEG-2).程序映射表也(PMT)可以包括其它的流信息描述符.

程序時間參考(PCR):
輔助解碼器以最好的速度控制和同步播放時間,程序通常對程序中的每個PID週期性的提供一個程序時間

參考(PCR),也是通常所說的主時鐘(Mater Colck).MPEG-2的時間機制就由此值來控制,比如表示時間戳

(PTS)就是程序時間參考(PCR)的相對值.頭33比特基於90kHz時鐘,擴展的比特位是Hz和週期的ED。基於

9的27MHz時鐘。

空包(Null Packets)
有些傳輸架構,比如在ATSC和DVB的TS中強制限制比特率。爲了保證流可以達到此固定的比特率,多路

合成器需要插入一些附加的包。PID 0x1FFF被來表示這種類型的數據包。這些包中不包括任何數據載荷

,接收器當收到這種數據包時將忽略它的內容。

基於隨機訪問媒介的TS定義更改

時間碼
TS被設計用在廣播或磁帶中,需要做一些修改來被使用在隨機訪問設備媒介上,比如數位攝像機記錄視

頻信息在DVD碟片,藍光碟,硬盤或固態存儲卡中。
基於隨機訪問的系統可能會在設備沒有準備好的情況下保存數據包在臨時緩衝區中,比如在設備啓動時

,包不允許被寫入,但會保持在以後條件具備時寫入,一個4字節的時間碼(TC)被加入至188字節的包

中,結果產生了192字節的包。這種格式被稱爲M2TS流。Sony稱它爲“BDAV MPEG-2 Transport stream

”,JVC稱它爲TOD(可能是“TS on disk”的縮寫)如使用基於HDD的數位攝像機GZ-HD7時。M2TS也被

用在AVCHD視頻文件中,它是MTS的擴展。

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