傳輸流(TS)
將具有共同時間基準或具有獨立時間基準的一個或多個PES組合而成的單一的數據流稱爲傳輸流(Transport Stream)。TS實際是面向數字化分配媒介(有線、衛星、地面網)的傳輸層接口。對具有共同時間基準的兩個以上的PES先進行節目複用,然後再對相互可有獨立時間基準的各個PS進行傳輸複用,即將每個PES再細分爲更小的TS包
TS包由包頭、自適應區和包數據3部分組成。每個包長度爲固定的188B,包頭長度佔4 B,自適應區和包數據長度佔184B。184B爲有用信息空間,用於傳送已編碼的視音頻數據流。當節目時鐘基準(PCR-Program Clock Reference)存在時,包頭還包括可變長度的自適應區,包頭的長度就會大於4B。考慮到與通信的關係,整個傳輸包固定長度應相當於4個ATM包。考慮到加密是按照8B順序加擾的,代表有用信息的自適應區和包數據的長度應該是8B的整數倍,即自適應區和包數據爲23×8B =184B。
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個部分組成。
TS包語法結構如下:
Syntax |
No. of bits |
Mnemonic |
transport_packet(){ |
|
|
sync_byte |
8 |
bslbf |
transport_error_indicator |
1 |
bslbf |
payload_unit_start_indicator |
1 |
bslbf |
transport_priority |
1 |
bslbf |
PID |
13 |
uimsbf |
transport_scrambling_control |
2 |
bslbf |
adaptation_field_control |
2 |
bslbf |
continuity_counter |
4 |
uimsbf |
if(adaptation_field_control=='10' || adaptation_field_control=='11'){ |
|
|
adaptation_field() |
|
|
} |
|
|
if(adaptation_field_control=='01' || adaptation_field_control=='11') { |
|
|
for (i=0;i<N;i++){ |
|
|
data_byte |
8 |
bslbf |
} |
|
|
} |
|
|
} |
|
|
自適應控制區語法結構如下: