ES PS TS 流的區別

2022-07-03 01:30:11 字數 3061 閱讀 4228

參考:

從上往下解釋:

一段es流=n幀(就是第2行中的資料)

1幀 = 1 pes_payload

1pes = 1pes包頭 + 1 pes_payload

第四行解釋

從pes方面理解:

1pes 切成n段,每段組成乙個ts包的負載。

從ts方面理解:

1段ts流的草綠色部分+白色部分  = pes

最開始的ts包由 ts包頭(圖中有t標誌的) + pes 包頭(草綠色) + pes_payload(白色) 組成

最末尾的ts包由 ts包頭(圖中有t標誌的) + 自適應字段(橙色)+ pes_payload(白色) 組成

以上兩種ts包很簡單,在中間的ts包有點複雜,經過血的教訓,發現其由3種包組成,出現位置隨機,每種出現的概率不相同,如下:

第一種  ts包頭(圖中有t標誌的)  + 自適應字段(橙色)+ pes_payload(白色),出現概率 1%

第二種  ts包頭(圖中有t標誌的)  + 自適應字段(橙色)出現概率 0.1%

第三種  ts包頭(圖中有t標誌的)  + pes_payload(白色)出現概率 98.9%

參考:連續碼流.

pes流(packet elementary stream):也叫打包的基本碼流, 是將基本的碼流es流根據需要分成長度不等的資料報, 並加上包頭就形成了打包的基本碼流pes流.

ts流(transport stream):也叫傳輸流,

每個es流會有不同的pid標示. 而又為了可以分析這些es流, ts有一些固定的pid用來間隔傳送program和es流資訊的**:

pat和pmt表.

ps是節目流編碼器出來的是ts流,傳輸介面為asi口,編碼器整個作用過程是把模擬訊號變成es,再打包成pes,再打包成ts流輸出。

復用器是把多路單節目或多節目ts流合稱1路多節目ts流,再給調製器。

數字衛星接收機出來的是ts流,也是asi介面,可能包含一路或多路節目,有的還同時有一路模擬訊號視音訊輸出。

模擬衛星接收機出來的是模擬視音訊訊號。,ps流與ts流的區別在於,ps流的包結構是可變長度的,而ts流的包結構是固定長度的.

ts流的解碼過程-es-pes-dts-pts-pcr

ts 流解碼過程:

1. 獲取ts中的pat

2. 獲取ts中的pmt

filter 後得到的ts資料報中的payload 資料就是 one piece of pes,在ts header中有一些關於此

payload屬於哪個 pes的 第多少個資料報。

因此軟體中應該將此payload中的資料copy到pes的buffer中,用於拼接乙個pes包。

6. 拼接好的pes包的包頭會有 pts,dts資訊,去掉pes的header就是 es。

8. i,b,b,p 資訊是在es中的。

在 pes 層,主要是在 pes

vbv ( video buffer verifier ),用以防止解碼器的緩衝器出現上溢或下溢;在 pes 層,主要是在 pes

頭資訊裡出現的顯示時間標籤 pts ( presentation time stamp )和解碼時間標籤 dts ( decoding time

stamp );在 ts 層中, ts 頭資訊包含了節目時鐘參考 pcr ( program clock reference

),用於恢復出與編碼端一致的系統時序時鐘 stc ( system time clock )。

基本流程如下:首先 mpeg-2

壓縮編碼得到的 es 基本流,這個資料流很大,並且只是 i , p , b

,通過打包並在每個幀中插入 pts/dts 標誌,變成 pes 。在插入 pts/dts 標誌時,由於在 b 幀 pts 和 dts

相等,所以無須在 b 幀多插入 dts 。而對於 i 幀 和 p

dts 作為從新排序的依據。

包都有乙個包頭,用於定義 pes 內的資料內容,提供定時資料。每個 i 、 p 、 b幀的包頭都有乙個 pts 和 dts ,但 pts 與

dts 對 b 幀都是一樣的,無須標出 b 幀的 dts 。對 i 幀和 p

。例如,解碼器輸入的影象幀次序為 i1,p4,b2,b3,p7,b5,b6,i10,b8,b9 ,依解碼器輸出的幀次序,應該 p4 比 b2 、

b3 在先,但顯示時 p4 一定要比 b2 、 b3 在後,即 p4

。顯然, pts/dts

標誌表明對確定事件或確定資訊解碼的專用時標的存在,依靠專用時標解碼器,可知道該確定事件或確定資訊開始解碼或顯示的時刻。例如, pts/dts

標誌可用於確定編碼、多路復用、解碼、重建的時間。

pcr

pcr 是ts 裡面的,即ts packet 的 header 裡面可能會有,他用來指定所期望的該ts packet 到達 decoder 的時間,他的作用於scr 類似。

dts, pts

有時候 pes 包頭裡面也會有 dts , pts ,對於pts 來說,他代表了這個pes 包得 payload 裡面的第乙個完整地 audio access unit 或者 video access unit 的 pts 時間(並不是每個 audio/video access unit 都帶有 pts/dts ,因此,你可以在 pes 裡面指定乙個,作為開始)。

pes 包頭的dts 也是這個原理,需要注意的是:對於video 來說他的dts 和 pts 是可以不一樣的,因為 b 幀的存在使其順序可以倒置。而對於 audio 來說, audio 沒有雙向的**,他的 dts 和pts 可以看成是乙個順序的,因此可一直採用乙個,即可只採用pts。

H264 ES PS TS 流的區別

2015 03 07 17 43 5000人閱讀收藏 舉報 連續碼流.pes流 packet elementary stream 也叫打包的基本碼流,是將基本的碼流es流根據需要分成長度不等的資料報,並加上包頭就形成了打包的基本碼流pes流.ps是節目流編碼器出來的是ts流,傳輸介面為asi口,編碼...

H264 ES PS TS 流的區別

es流 elementary stream 連續碼流 pes流 packet elementary stream 也叫打包的基本碼流,是將基本的碼流es流根據需要分成長度不等的資料報,並加上包頭就形成了打包的基本碼流pes流.ps是節目流編碼器出來的是ts流,傳輸介面為asi口,編碼器整個作用過程是...

H264 ES PS TS 流的區別

es流 elementary stream 連續碼流 pes流 packet elementary stream 也叫打包的基本碼流,是將基本的碼流es流根據需要分成長度不等的資料報,並加上包頭就形成了打包的基本碼流pes流.ps是節目流編碼器出來的是ts流,傳輸介面為asi口,編碼器整個作用過程是...