日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 充電吧
[導(dǎo)讀]一 從TS流開(kāi)始數(shù)字電視機(jī)頂盒接收到的是一段段的碼流,我們稱之為T(mén)S(Transport Stream,傳輸流),每個(gè)TS流都攜帶一些信息,如Video、Audio以及我們需要學(xué)習(xí)的PAT、PMT等信

一 從TS流開(kāi)始

數(shù)字電視機(jī)頂盒接收到的是一段段的碼流,我們稱之為T(mén)S(Transport Stream,傳輸流),每個(gè)TS流都攜帶一些信息,如Video、Audio以及我們需要學(xué)習(xí)的PAT、PMT等信息。因此,我們首先需要了解TS流是什么,以及TS流是怎樣形成、有著怎樣的結(jié)構(gòu)。

(一) TS流、PS流、PES流和ES流都是什么?

ES流(Elementary Stream):基本碼流,不分段的音頻、視頻或其他信息的連續(xù)碼流。

PES流:把基本流ES分割成段,并加上相應(yīng)頭文件打包成形的打包基本碼流。

PS流(Program Stream):節(jié)目流,將具有共同時(shí)間基準(zhǔn)的一個(gè)或多個(gè)PES組合(復(fù)合)而成的單一數(shù)據(jù)流(用于播放或編輯系統(tǒng),如m2p)。

TS流(Transport Stream):傳輸流,將具有共同時(shí)間基準(zhǔn)或獨(dú)立時(shí)間基準(zhǔn)的一個(gè)或多個(gè)PES組合(復(fù)合)而成的單一數(shù)據(jù)流(用于數(shù)據(jù)傳輸)。

*NOTE:TS流和PS流的區(qū)別:TS流的包結(jié)構(gòu)是長(zhǎng)度是固定的;PS流的包結(jié)構(gòu)是可變長(zhǎng)度的。這導(dǎo)致了TS流的抵抗傳輸誤碼的能力強(qiáng)于PS流(TS碼流由于采用了固定長(zhǎng)度的包結(jié)構(gòu),當(dāng)傳輸誤碼破壞了某一TS包的同步信息時(shí),接收機(jī)可在固定的位置檢測(cè)它后面包中的同步信息,從而恢復(fù)同步,避免了信息丟失。而PS包由于長(zhǎng)度是變化的,一旦某一PS包的同步信息丟失,接收機(jī)無(wú)法確定下一包的同步位置,就會(huì)造成失步,導(dǎo)致嚴(yán)重的信息丟失。因此,在信道環(huán)境較為惡劣,傳輸誤碼較高時(shí),一般采用TS碼流;而在信道環(huán)境較好,傳輸誤碼較低時(shí),一般采用PS碼流。)

由于TS碼流具有較強(qiáng)的抵抗傳輸誤碼的能力,因此目前在傳輸媒體中進(jìn)行傳輸?shù)腗PEG-2碼流基本上都采用了TS碼流的包格。


(二) TS流是如何產(chǎn)生的?


從上圖可以看出,視頻ES和音頻ES通過(guò)打包器和共同或獨(dú)立的系統(tǒng)時(shí)間基準(zhǔn)形成一個(gè)個(gè)PES,通過(guò)TS復(fù)用器復(fù)用形成的傳輸流。注意這里的TS流是位流格式(分析Packet的時(shí)候會(huì)解釋?zhuān)布词钦f(shuō)TS流是可以按位讀取的。


(三) TS流的格式是怎樣的?

TS流是基于Packet的位流格式,每個(gè)包是188個(gè)字節(jié)(或204個(gè)字節(jié),在188個(gè)字節(jié)后加上了16字節(jié)的CRC校驗(yàn)數(shù)據(jù),其他格式一樣)。整個(gè)TS流組成形式如下:


Packet Header(包頭)信息說(shuō)明

1

sync_byte

8bits

同步字節(jié)

2

transport_error_indicator

1bit

錯(cuò)誤指示信息(1:該包至少有1bits傳輸錯(cuò)誤)

3

payload_unit_start_indicator

1bit

負(fù)載單元開(kāi)始標(biāo)志(packet不滿188字節(jié)時(shí)需填充)

4

transport_priority

1bit

傳輸優(yōu)先級(jí)標(biāo)志(1:優(yōu)先級(jí)高)

5

PID

13bits

Packet ID號(hào)碼,唯一的號(hào)碼對(duì)應(yīng)不同的包

6

transport_scrambling_control

2bits

加密標(biāo)志(00:未加密;其他表示已加密)

7

adaptation_field_control

2bits

附加區(qū)域控制

8

continuity_counter

4bits

包遞增計(jì)數(shù)器


PID是TS流中唯一識(shí)別標(biāo)志,Packet Data是什么內(nèi)容就是由PID決定的。如果一個(gè)TS流中的一個(gè)Packet的Packet Header中的PID是0x0000,那么這個(gè)Packet的Packet Data就是DVB的PAT表而非其他類(lèi)型數(shù)據(jù)(如Video、Audio或其他業(yè)務(wù)信息)。下表給出了一些表的PID值,這些值是固定的,不允許用于更改。


PID 值

PAT

0x0000

CAT

0x0001

TSDT

0x0002

EIT,ST

0x0012

RST,ST

0x0013

TDT,TOT,ST

0x0014


下面以一個(gè)TS流的其中一個(gè)Packet中的Packet Header為例進(jìn)行說(shuō)明:



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Packet(十六進(jìn)制)

4

7

0

7

e

5

1

2

Packet(二進(jìn)制)

0

1

0

0

0

1

1

1

0

0

0

0

0

1

1

1

1

1

1

0

0

1

0

1

0

0

0

1

0

0

1

0

Packet Header 信息

1 sync_byte=0x47

2

3

4

5 PID=0x07e5

6

7

8


sync_byte=01000111, 就是0x47,這是DVB TS規(guī)定的同步字節(jié),固定是0x47.

transport_error_indicator=0, 表示當(dāng)前包沒(méi)有發(fā)生傳輸錯(cuò)誤.

payload_unit_start_indicator=0, 含義參考ISO13818-1標(biāo)準(zhǔn)文檔

transport_priority=0,表示當(dāng)前包是低優(yōu)先級(jí).

PID=00111 11100101即0x07e5, Video PID

transport_scrambling_control=00,表示節(jié)目沒(méi)有加密

adaptation_field_control=01即0x01,具體含義請(qǐng)參考ISO13818-1

continuity_counte=0010即0x02,表示當(dāng)前傳送的相同類(lèi)型的包是第3個(gè)

TS流的基本內(nèi)容就是這些了。

回顧一下,TS流是一種位流(當(dāng)然就是數(shù)字的),它是由ES流分割成PES后復(fù)用而成的;它經(jīng)過(guò)網(wǎng)絡(luò)傳輸被機(jī)頂盒接收到;數(shù)字電視機(jī)頂盒接收到TS流后將解析TS流。

TS流是由一個(gè)個(gè)Packet(包)構(gòu)成的,每個(gè)包都是由Packet Header(包頭)和Packet Data(包數(shù)據(jù))組成的。其中Packet Header指示了該P(yáng)acket是什么屬性的,并給出了該P(yáng)acket Data的數(shù)據(jù)的唯一網(wǎng)絡(luò)標(biāo)識(shí)符PID。

到這里,我們對(duì)TS流已經(jīng)有了一定的了解,下面將從TS流轉(zhuǎn)向PAT表和PMT表的學(xué)習(xí)。

二 從TS流到PAT、PMT

說(shuō)完了TS流的基本概念,就該開(kāi)始對(duì)TS流進(jìn)行更深入的研究了。首先需要想一想:TS流的本質(zhì)是什么?它的確是一段碼流,并且是一段由數(shù)據(jù)包(Packet)組成的碼流。那么這些數(shù)據(jù)包究竟是怎樣的呢?它和我們收看的電視節(jié)目之間又有什么區(qū)別?這些都是這部分需要了解的內(nèi)容。

在上一節(jié)中,我們可以看到PID這個(gè)被標(biāo)紅的字段頻繁地出現(xiàn)。PID是當(dāng)前TS流的Packet區(qū)別于其他Packet類(lèi)型的唯一識(shí)別符,通過(guò)讀取每個(gè)包的Packet Header,我們可以知道這個(gè)Packet的數(shù)據(jù)屬于何種類(lèi)型。上一節(jié)列出了幾項(xiàng)固定的PID值,它們用于識(shí)別存儲(chǔ)了特殊信息的Packet。下面要談的PAT表的PID值就是固定的0x0000。

(一) PAT表(Program Association Table,節(jié)目關(guān)聯(lián)表)

由于下面的內(nèi)容比較繁雜,這里先給出一個(gè)大綱,方便查閱:

1. PAT表的描述(表格+分析)

2. PAT表的定義(代碼+分析)

3. PAT表的結(jié)構(gòu)(代碼+分析)

4. PAT表的解析(代碼+分析)

5. 通過(guò)一段TS流中一個(gè)Packet分析PAT表(表格+分析)

下面,開(kāi)始正式的分析!

1.PAT表的描述(表格+分析)

PAT表定義了當(dāng)前TS流中所有的節(jié)目,其PID為0x0000,它是PSI的根節(jié)點(diǎn),要查尋找節(jié)目必須從PAT表開(kāi)始查找。

PAT表攜帶以下信息:


TS流ID

transport_stream_id

該ID標(biāo)志唯一的流ID

節(jié)目頻道號(hào)

program_number

該號(hào)碼標(biāo)志TS流中的一個(gè)頻道,該頻道可以包含很多的節(jié)目(即可以包含多個(gè)Video PID和Audio PID)

PMT的PID

program_map_PID

表示本頻道使用哪個(gè)PID做為PMT的PID,因?yàn)榭梢杂泻芏嗟念l道,因此DVB規(guī)定PMT的PID可以由用戶自己定義



2. PAT表的定義(代碼+分析)

PAT表主要包含頻道號(hào)碼和每一個(gè)頻道對(duì)應(yīng)的PMT的PID號(hào)碼,這些信息我們?cè)谔幚鞵AT表格的時(shí)候會(huì)保存起來(lái),以后會(huì)使用到這些數(shù)據(jù)。下面將PAT表的定義給出:

[cpp]view plaincopy typedefstructTS_PAT_Program { unsignedprogram_number:16;//節(jié)目號(hào) unsignedprogram_map_PID:13;//節(jié)目映射表的PID,節(jié)目號(hào)大于0時(shí)對(duì)應(yīng)的PID,每個(gè)節(jié)目對(duì)應(yīng)一個(gè) }TS_PAT_Program


3. PAT表的結(jié)構(gòu)(代碼+分析)

再將PAT表的結(jié)構(gòu)體給出:

[cpp]view plaincopy typedefstructTS_PAT { unsignedtable_id:8;//固定為0x00,標(biāo)志是該表是PAT表 unsignedsection_syntax_indicator:1;//段語(yǔ)法標(biāo)志位,固定為1 unsignedzero:1;//0 unsignedreserved_1:2;//保留位 unsignedsection_length:12;//表示從下一個(gè)字段開(kāi)始到CRC32(含)之間有用的字節(jié)數(shù) unsignedtransport_stream_id:16;//該傳輸流的ID,區(qū)別于一個(gè)網(wǎng)絡(luò)中其它多路復(fù)用的流 unsignedreserved_2:2;//保留位 unsignedversion_number:5;//范圍0-31,表示PAT的版本號(hào) unsignedcurrent_next_indicator:1;//發(fā)送的PAT是當(dāng)前有效還是下一個(gè)PAT有效 unsignedsection_number:8;//分段的號(hào)碼。PAT可能分為多段傳輸,第一段為00,以后每個(gè)分段加1,最多可能有256個(gè)分段 unsignedlast_section_number:8;//最后一個(gè)分段的號(hào)碼 std::vector

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

什么是機(jī)頂盒:一種依托電視終端提供綜合信息業(yè)務(wù)的家電設(shè)備。使用戶能在現(xiàn)有電視機(jī)上觀看數(shù)字電視節(jié)目,并可通過(guò)網(wǎng)絡(luò)進(jìn)行交互式數(shù)字化娛樂(lè)、教育和商業(yè)化活動(dòng)。    數(shù)字電視機(jī)頂盒和

關(guān)鍵字: 機(jī)頂盒 數(shù)字電視機(jī)頂盒 網(wǎng)絡(luò)電視機(jī)頂盒

  數(shù)字電視機(jī)頂盒由高頻頭、QAM解調(diào)器、TS流解復(fù)用器、MPEG一2解碼器、PAUNTSC視頻編碼器、嵌人式CPU系統(tǒng)和外圍接口、CA模塊和上行數(shù)據(jù)調(diào)制器組成。工作原理如附圖?! ?/p> 關(guān)鍵字: 數(shù)字電視機(jī)頂盒 數(shù)據(jù)壓縮 應(yīng)用程序 MPEG-2

數(shù)字電視機(jī)頂盒由高頻頭、QAM解調(diào)器、TS流解復(fù)用器、MPEG一2解碼器、PAUNTSC視頻編碼器、嵌人式CPU系統(tǒng)和外圍接口、CA模塊和上行數(shù)據(jù)調(diào)制器組成。工作原理如附圖。 數(shù)字電

關(guān)鍵字: 數(shù)字電視機(jī)頂盒 數(shù)據(jù)壓縮 應(yīng)用程序 MPEG-2

1.引言數(shù)字電視機(jī)頂盒(SetTopBox,STB)是擴(kuò)展電視機(jī)功能的一種新型家用電器,分為衛(wèi)星數(shù)字電視機(jī)頂盒(DVB-S)、地面數(shù)字電視機(jī)頂盒(DVB-T)和有線數(shù)字電視機(jī)頂盒(DVB-C)三種。目前國(guó)內(nèi)的DVB-C機(jī)...

關(guān)鍵字: C/OS-II 移植 數(shù)字電視機(jī)頂盒 HZ

21ic通信網(wǎng)訊,電視是一個(gè)家庭的必備電器,從80年代的黑白電視,到90年代的彩電,到后來(lái)的大背投、等離子,再到現(xiàn)在的LCD、LED電視。但是,30多年了,我們收視依舊被各地的廣電局控制著,圖片廣告、游走廣告、虛假藥

關(guān)鍵字: TV 應(yīng)用程序 數(shù)字電視機(jī)頂盒

21ic通信網(wǎng)訊,1月25日消息,工信部在最新的一紙文件中,要求從2015年起,境內(nèi)銷(xiāo)售的所有電視機(jī)都應(yīng)具備地面數(shù)字電視接收功能。個(gè)別媒體將其解讀為“機(jī)頂盒將在2015年消失”。不過(guò)記者了解到,這...

關(guān)鍵字: 工信部 地面數(shù)字電視 數(shù)字電視機(jī)頂盒 有線數(shù)字電視

數(shù)字電視機(jī)頂盒附加裝置,也叫做機(jī)頂盒伴侶,或數(shù)字電視伴侶,也有稱為機(jī)頂盒影音分配器。其作用是將一臺(tái)數(shù)字電視機(jī)頂盒或是其他機(jī)器如衛(wèi)星接收機(jī)、DVD影碟機(jī)等擴(kuò)展其功能,可以供多臺(tái)電視機(jī)觀看,可以異地遙控,適合

關(guān)鍵字: 數(shù)字電視機(jī)頂盒 音視頻 頻段 視頻轉(zhuǎn)換

標(biāo)簽:CPU TS MPEG解碼目前世界上大多數(shù)的國(guó)家和地區(qū)都制定了數(shù)字電視實(shí)現(xiàn)的時(shí)間表,數(shù)字電視的普及趨勢(shì)不可逆轉(zhuǎn)。世界上主要的數(shù)字電視標(biāo)準(zhǔn)包括以美國(guó)為代表的ATSC、以歐洲為代表的DVB-T、日本的ISDB-T、...

關(guān)鍵字: 數(shù)字電視 MPEG-2 NXP 數(shù)字電視機(jī)頂盒

機(jī)頂盒(STB)簡(jiǎn)介:機(jī)頂盒是一種能提供模擬音頻和視頻接口,使現(xiàn)在的模擬電視機(jī)能正常接收節(jié)目;同時(shí),還能提供數(shù)字電視、數(shù)字廣播接口,提供交互式功能的接口裝置。它一頭接有線電視網(wǎng)的同軸電纜,一頭接用戶家里的電

關(guān)鍵字: 數(shù)字電視機(jī)頂盒 GB 應(yīng)用程序 INTERNET
關(guān)閉