LearnHouse

[轉]DVB SI入門

資料來源:https://www.twblogs.net/a/5b8b3f0c2b717718832e4ca3

 一、數字電視和模擬電視節目選擇的方式:

模擬電視:一個頻道(一種頻率)對應一個節目。

數字電視:一個物理頻道(頻率)對應一路碼流(含多路節目),使用複用技術即可做到。要觀看其中的某一路節目,還必須從傳輸流中提出該路節目的壓縮包,然後再進行解碼。

二、PSI與SI

        PSI:在mpeg-2的傳輸流(TransportStream)中,節目專用信息PSI(Progame SpecificInformation),就是規定不同節目和節目的不同成分如何複用成一個統一的碼流。以PSI爲基礎可以提供一個碼流的構成,從而幫助用戶對節目進行選擇。

        SI:DVB中的服務信息(Service Information)則對此進行了進一步的擴展,加入了一些對用戶有用的信息,表示節目的類型、服務商、節目的相互關等。

 

1、PSI:節目特定信息(Progam  Specific  Information)

功能:

從一個攜帶多個節目的某一個TS流中正確找到特定的節目。PSI數據信息用於對複用流中的不同節目流進行解複用和解碼。PSI中包括音視頻數據的PID以及有關節目PID之間的關係。

特點:

描述了每一個ES(Elementary stream)

給每一個ES映射一個PID

由複用器生成

僅僅描述一個單一的碼流。

 

PSI具體涉及4個表:PAT、PMT、CAT和NIT

(1)PAT(ProgramAssociation Table)節目相關表

包括該TS流中每個節目對應的PMT表的PID及NIT表的PID。PAT的PID=0x0000。

(2)PMT(ProgramMap Table)節目映射表

該表的PID是由PAT提供給出的。通過該表可以得到一路節目中包含的信息,例如:該路節目由哪些流構成和這些流的類型(視頻、音頻、數據),指定節目中各流對應的PID,以及該節目的PCR所對應的PID。

(3)CAT(ConditionalAccess Table)條件接收/訪問列表

提供系統中條件接收的信息,指定CA系統與它們相應的授權管理信息EMM(Entitlement ManagementMessages)之間的聯繫,指定EMM的PID及其他相關的參數。CAT的PID=0x0001。

(4)NIT(NetworkInformation Table) 網絡信息表

該表的PID是由PAT提供的。NIT的作用主要是對多路傳輸流的識別,NIT提供多路傳輸流、物理網絡及網絡傳輸的相關的一些信息,如用於調諧的頻率信息以及編碼方式、調製方式等參數方面的信息。

 

2、SI:業務信息(Service Information)

在TS中,僅有PSI信息時,STB不能自動接收某個業務並提供相應的節目信息,而是通過SI信息來爲PSI作補充。

MPEG-2的PSI中提供了不少的關於節目組成和相互關係的信息,從而使得在接收端可以正確的對多路傳輸流進行分解。但是這些信息在實際使用時仍顯得不夠,爲此在DVB中採用SI和PSI信息進行了進一步的擴展。

主要用途:

根據NIT、PAT、PMT等信息可以進行自動的頻道調諧 ;

更方便的對節目進行選擇與定位;

實現電子節目指南EPG(ElectronicProgram Guide)等

特點:

提供導航信息(包括頻道名稱、頻道號、排序、節目指南等)給STB

要求與複用器同步(映射SIService ID)

覆蓋多個碼流(描述整個網絡的相關信息)

 

PSI中的信息基本上都是與當先碼流相關的,即它們所涉及的內容都與當前碼流中的部分信息相關。與PSI不同的是,SI的基本信息可以包括不在當前碼流中的一些服務和事件,允許用戶進行更多的選擇和了解更多的其他的服務信息。

 DVB規定攜帶SI信息的傳輸包必須用指定的PID,指定的PID如下表:

PAT 0X0000

CAT 0X0001

TSDT 0X0002

RESERVED 0X0003 TO 0X000F

NIT、ST 0X0010

SDT、BAT、ST 0X0011

EIT、ST 0X0012

RST、ST 0X0013

TDT、TOT、ST 0X0014

在該表中可以看到同一個PID可以對應不同的表,要把這樣的表區分開來,需要進一步找到TableID進行識別。

0x00Program_association_section

0x01Conditional_access_section

0x02 Program _map_section

0x03Transport_stream_description_section

0x04 TO 0X3F Reserved

0x40Network_information_section-actual_network

0x41Network_information_section-other_network

0x42Service_description_section-actual_stream

0x43 to 0x45 Resreved forfuture use

0x46Service_description_section-other_transport_stream 0x47 to 0x49 Reserved forfuture use

0x4ABouquet_association_section

0x4B to 0x4D Reserved forfuture use

0x4E Event_information_section-actual_transport_stream,P/F

0x4FEvent_information_section-other_transport_stream,P/F

0x50 to 0x5F Event_information_section-actual_stream,schedule

0x60 to 0x6FEvent_information_section-other_stream,schedule 0x70 Time_date_section

0x71Running_status_section

0x72 Stuffing_section

0x73 Time_offset_section

0x74 to 0x7D Reserved forfuture use

0x7EDiscontinuity_information_section

0x7FSelection_information_section

0x80 to 0xFE User defined

0xFF Reserved

 

SI具體涉及9個表:BAT、SDT、EIT、TDT、TOT及RST、ST、SIT、DIT

(1)BAT(Bouquet Association Table)業務羣關聯表

該表提供一系列類似節目的集合。這些節目可以在不同的傳輸流中,利用該表可以很方便的進行相關節目或某一類節目的瀏覽和選擇。 BAT的PID=0x0011。智能卡在開戶時,收費系統中分配一個BouquestID,並寫在卡上。機頂盒開機找到BAT表後,根據卡上的BouquestID,顯示出與該Bouquet對應的節目列表。

(2)SDT( Service Description Table)服務描述表

用於描述系統中節目的名稱、節目提供者、是否有相應的事件描述表等方面的信息。SDT的PID=0x0011。該表可以描述當前傳輸流---SDTActual,也可以描述其他TS流---SDT Other,由Table ID進行區分。

(3)EIT(EventInformation Table)事件信息表

該表是對某一路節目的更進一步的描述,是生成EPG(Electronic Program Guide 電子節目指南)的主要表,EIT包含事件或節目的有關數據,如事件的名稱、開始時間、時間長度、運行狀態等。EIT的PID=0X0012。

描述當前傳輸流中的當前和下一條事件內容,稱之爲EITPresent/Following Actual,簡稱P/F Actual。

描述其他傳輸流中的當前和下一條事件內容,稱之爲EITPresent/Following Other,簡稱P/F Other。

描述當前傳輸流中節目的進一步的事件內容,稱之爲EITSchedule Actual,簡稱Schedule Actual。

描述其他傳輸流中節目的進一步的事件內容,稱之爲EITSchedule Other,簡稱ScheduleOther。

(4)TDT(Time and Date Table)時間日期表

提供當前時間和日期相關的信息,用來對IRD的解碼時鐘進行更新。TDT的PID=0x0014。

(5)TOT(Time Offset Table)時間偏移表

該表提供當地時間與TDT之間的關係,該表與TDT配合使用。TOT的PID=0x0014。

(6)RST(Running Status Table)運行狀態表

該表提供某一具體事件的運行狀態,可用於按時自動的切換到指定的事件;

(7)ST(Stuffing Table)填充表

該表表明其內容是無效的,只作爲填充字節。

(8)SIT(Selection Information  Table)選擇信息表

(9)DIT(Discontinuity Information Table)間斷信息表

 

DVB中的TS解複用(demux)原理:

1、機頂盒先調整高頻頭到一個固定的頻率(如498MHZ),如果此頻率有數字信號,則COFDM芯片(如MT352)會自動把TS流數據傳送給MPEG-2 decoder。

2、MPEG-2decoder先進行數據的同步,也就是等待完整的Packet的到來。然後循環查找是否出現PID==0x0000的Packet。

①如果出現了,則馬上進入分析PAT的處理,獲取了所有的PMT的PID。接着循環查找是否出現PMT,如果發現了,則自動進入PMT分析,獲取該頻段所有的頻道數據並保存。

只要我們處理了PMT,那麼我們就可以獲取頻道中所有的PID信息,例如當前頻道包含多少個Video,共多少個Audio,和其他數據,還能知道每種數據對應的PID分別是什麼。這樣如果我們要選擇其中一個Video和Audio收看,那麼只需要把要收看的節目的VideoPID和AudioPID保存起來,在處理Packet的時候進行過濾即可實現。

②如果沒有發現PAT或者沒有發現PMT,說明該頻段沒有信號,進入下一個頻率掃描。

 

從以上描述可以看出,機頂盒搜索頻率是隨機發生的,要使每次機頂盒都能搜索到信號,則要求TS流每隔一段時間就發送一次PAT和PMT。事實上DVB傳輸系統就是這麼做的。因此無論何時接入終端系統,系統都能馬上搜索到節目並正確解複用實現播放。不僅僅如此,其他數據也都是交替傳送的。比如第一個Packet可能是PAT,第二個Packet可能是PMT,而第三個Packet可能是Video1,第四個Packet可能是Video2,只要系統傳輸速度足夠快(就是稱之爲"碼率"的東東),實現實時播放是沒有任何問題的。

到這裏雖然實現瞭解複用,但可以看出,使用的PID都是枯燥的數字,如果調臺要用戶自己輸入數字那可是太麻煩了,而且還容易輸入錯誤,操作非常不直觀,即使做成一個菜單讓用戶選擇也是非常的呆板。針對這個問題,DVB系統提出了一個SDT表格,該表格標誌一個節目的名稱,並且能和PMT中的PID聯繫起來,這樣用戶就可以通過直接選擇節目名稱來選擇節目了。

posted by admin in 參考文獻 and have No Comments

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment