MPEG2 PS格式分析例項

2021-07-24 17:07:15 字數 3645 閱讀 5139

一、 ps 包頭格式

1、ps 包頭格式

包起始碼字段  pack_start_code

值為'0000 0000 0000 00000000 0001 1011 1010' (0x000001ba)的位串,用來標誌乙個包的開始。

系統時鐘參考字段  system_clock_reference_basesystem_clock_reference_extenstion

系統時鐘參考(scr)分兩部分編碼的42位欄位。第一部分system_clock_reference_base是乙個長度為33位的字段;第二部分system_clock_reference_extenstion是乙個長度為9位的字段。scr欄位指出了基本流中包含escr_base最後一位的位元組到達節目目標解碼器輸入端的期望時間。

標記位欄位  marker_bit

1位欄位,取值'1'。

節目復合速率字段  program_mux_rate

乙個22位整數,規定p-std在包含該字段的包期間接收節目流的速率。其值以50位元組/秒為單位。不允許取0值。該字段值在本標準中的節目多路復合流的不同包中取值可能不同。

包填充長度字段  pack_stuffing_length

3位整數,規定該字段後填充位元組的個數。

填充位元組字段  stuffing_byte

8位欄位,取值恒為'1111 1111'。該字段能由編碼器插入,例如為了滿足通道的要求。它由解碼器丟棄。在每個包標題中最多隻允許有7個填充位元組。

2、分析例項

結合上面的格式,分析圖1.

圖10x000001ba用來標誌乙個包的開始,從後面劃線的ff到01表示填充字元,其他的分析見圖2

圖2二、 ps map格式

1、格式說明

見圖2-1

圖2-1

分組起始碼字首字段  packet_start_code_prefix

24位碼。它和跟隨其後的map_stream_id共同組成乙個分組起始碼以標誌分組的開始。該字段是值為'0000 0000 0000 0000 0000 0001' (0x000001)的位串。

對映流標識字段  map_stream_id

8位欄位,值為0xbc。

節目流對映長度字段  program_stream_map_length

16位欄位。指示緊跟在該字段後的program_stream_map中的位元組數。該字段的最大值為1018(0x3fa)。

當前下乙個指示符欄位  current_next_indicator

1位欄位。置'1'時表示傳送的節目流對映當前是可用的。置'0'時表示傳送的節目流對映還不可用,但它將是下乙個生效的表。

節目流對映版本字段  program_stream_map_version

5位欄位,表示整個節目流對映的版本號。一旦節目流對映的定義發生變化,該字段將遞增1,並對32取模。在current_next_indicator為'1'時,該欄位應該是當前適用的節目流對映的版本號;在current_next_indicator為'0'時,該欄位應該是下乙個適用的節目流對映的版本號。

節目流首席資訊官度字段  program_stream_info_length

16位欄位,指出緊跟在該字段後的描述符的總長度。

標記位欄位  marker_bit

1位欄位,取值為'1'。

基本流對映長度字段  elementary_stream_map_length

16位欄位,指出在該節目流對映中的所有基本流資訊的位元組長度。它包括stream_type、elementary_stream_id和elementary_stream_info_length欄位。

流型別字段  stream_type

8位欄位,根據表2-29規定了流的型別。該欄位只能標誌包含在pes分組中的基本流且取值不能為0x05。

基本流標識字段  elementary_stream_id

8位欄位,指出該基本流所在pes分組的pes分組標題中stream_id欄位的值。

基本流首席資訊官度字段  elmentary_stream_info_length

16位欄位,指出緊跟在該字段後的描述符的位元組長度。

crc 32欄位  crc_32

32位欄位。

2、例項分析

分析見圖2-2

圖2-2

0x000001表示分組起始碼字首字段

packet_start_code_prefix, 0xbc表示對映流標識字段

map_stream_id

①表示節目流對映長度字段

program_stream_map_length

②表示節目流首席資訊官度字段

program_stream_info_length

③表示基本流對映長度字段

elementary_stream_map_length

④表示流型別字段  stream_type,幾個常用值:

d)  g.711音訊流:   0x90;

e)  g.722.1音訊流: 0x92;

f)  g.723.1音訊流: 0x93;

g)  g.729音訊流:   0x99;

h)  svac音訊流:    0x9b。 

⑤表示基本流標識字段  elementary_stream_id

, 常見值見圖2-3

圖2-3

其他分析見下圖

頂 3 踩

mpeg2 ts協議分析

一段es流 n幀 就是第2行中的資料 1幀 1 pes payload 1pes 1pes包頭 1 pes payload 第四行解釋 從pes方面理解 1pes 切成n段,每段組成乙個ts包的負載。從ts方面理解 最開始的ts包由 ts包頭 圖中有t標誌的 pes 包頭 草綠色 pes paylo...

MPEG 2碼流結構分析

mpeg2編碼碼流的起始碼的含義如下 aspect ratio information 寬高比,各取值的含義如下 它的起始碼為 00 00 01 b5,儲存了如下資訊 起始碼為00 00 01 b8,儲存了如下資訊 picture header儲存了影象相關資訊,從該頭部資訊中可以判斷該幀時ip或b...

2 例項分析

現在要求使用emp表 empno ename job hiredate sal comm 實現如下的操作功能 業務層 1 實現雇員資料的新增,但是需要保證被新增的雇員編號不會重複 資料層 判斷要增加的雇員編號是否存在 資料層 如果雇員編號不存在則進行資料的儲存操作 業務層 2 實現雇員資料的修改操作...