DVB-SI理解入門

DVB-SI理解入門指南(一)

數字電視與傳統模擬電視節目選擇的方式完全不同,傳統電視的每一個頻道對應有個節目,只要調到相應的頻率,就可以看到節目。而在數字電視信號中,一路碼流對應多路節目,使用複用技術就可以做到了。一個物理頻道只能給出包含多路的一路傳輸流。要觀看其中的某一路節目,還必須從傳輸流中提出該路節目的壓縮包,然後再進行解碼。所以怎麼從衆多的傳輸流中,選中一路節目播放,就變得更很複雜。在mpeg-2的傳輸流(Transport Stream)中,節目專用信息PSI(Progame Specific Information),就是規定不同節目和節目的不同成分如何複用成一個統一的碼流。以PSI爲基礎可以提供一個碼流的構成,從而幫助用戶對節目進行選擇。DVB中的服務信息(Service Information)則對此進行了進一步的擴展,加入了一些對用戶有用的信息,表示節目的類型、服務商、節目的相互關係等。正確的瞭解mpeg-2的PSI以及DVB的SI的結構,以及其在節目組織、選擇中的應用,可以正確理解service information在DVB解碼中的地位。對於我們做好對數字節目的複用,也能起到幫助的作用。

1、              MPEG-2 TS中的PSI

PSI信息主要包括一下的表:

   PAT(Program Association Table):節目羣從表,該表的PID是固定的0x0000,它的主要作用是指出該傳輸流的ID,以及該路傳輸流中所對應的MAP表和NIT表的PID.

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

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

CAT(Conditional Access Table):條件訪問表,PID-0x0001。

除了上述的幾種表外,mpeg-2還提供了私有字段,用於實現對mpeg-2的擴充。

 

2、              DVB中的SI

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

除了在PSI中的信息之外,DVB還定義了一些其他的一些表。

SI的主要用途有:

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

b、              更方便的對節目進行選擇和定位;

c、              實現電子節目指南EPG(Electronic Program Guide),等等。

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

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

TABLE TYPE                    PID VALUE

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

Network Synchroniztion            0X0015

Reserved for future use             0X0016 TO 0X001B

Inband signaling                  0X001C

Measurement                     0X001D

DIT                             0X001E

SIT                             0X001F

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

Value  Description

0x00   Program_association_section

0x01   Conditional_access_section

0x02   Program _map_section

0x03   Transport_stream_description_section

0x04 TO 0X3F  Reserved

0x40   Network_information_section-actual_network

0x41   Network_information_section-other_network

0x42  Service_description_section-actual_stream

0x43 to 0x45  Resreved for future use

0x46   Service_description_section-other_transport_stream

0x47 to 0x49 Reserved for future use

0x4A   Bouquet_association_section

0x4B to 0x4D Reserved for future use

0x4E   Event_information_section-actual_transport_stream,P/F

0x4F   Event_information_section-other_transport_stream,P/F

0x50 to 0x5F Event_information_section-actual_stream,schedule

0x60 to 0x6F Event_information_section-other_stream,schedule

0x70   Time_date_section

0x71   Running_status_section

0x72   Stuffing_section

0x73   Time_offset_section

0x74 to 0x7D  Reserved for future use

0x7E  Discontinuity_information_section

0x7F  Selection_information_section

0x80 to 0xFE  User defined

0xFF   Reserved

有了這兩個ID,我們可以在碼流中找到我們想要的任何一張表。

SI主要包括一下一些信息表:

NIT(Network Information Table):NIT的作用主要是對多路傳輸流的識別,NIT提供多路傳輸流,物理網絡及網絡傳輸的相關的一些信息,如用於調諧的頻率信息以及編碼方式、調製方式等參數方面的信息,根據此信息設置IRD(Integrated Receiver Decoder)可以進行多路傳輸流之間的切換。

SDT(Service Description Table):用於描述系統中各路節目的名稱,該節目的提供者,是否有相應的時間描述表等方面的信息。該表可以描述當先傳輸流,也可以描述其他的傳輸流,這個由TableID進行區分。

EIT(Event Information Table):該表是對某一路節目的更進一步的描述。它提供事件的名稱、開始時間、時間長度、運行狀態等;

TDT(Time and Date Table):該表提供當前的時間信息,該表用來對IRD的解碼時鐘進行更新;

BAT(Bouquet Association Table):該表提供一系列類似節目的集合。這些節目可以在不同的傳輸流中,利用該表可以很方便的進行相關節目或某一類節目的瀏覽和選擇;

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

TOT(Time Offset Table):該表提供當地時間與TDT之間的關係,該表與TDT配合使用;

TSDT(Transport Stream Description Table):由PID0x0002標識,提供傳輸流的一些參數;

ST(Stuffing Table):該表表明其內容是無效的,只作爲填充字節。

那麼,我們如何運用DVB中的SI信息表呢?

DVB-SI入門(二)-DVB-SI的使用Ben

1、              網絡信息表(NIT)

網絡信息表提供一組傳輸流以及相應調諧信息。NIT在IRD(整合接收解碼器)啓動程序中用到,並且調諧信息可以存儲到不變的存儲器中。NIT還可以用來標誌調諧信息的變化。NIT遵從如下規定:

a、              當前的傳輸系統必須包含NIT。

b、              當且僅當NIT包含可用的傳輸系統描述符,當前傳輸系統纔是有效的。這就指定了NIT包含有效信息的條件。在一些廣播傳輸系統邊界,TS中的NIT也被允許用來描述廣播頻道中的網絡。IRD不得不選擇一個不同的機制來獲得當前傳輸系統的相應的調諧信息。例如,一個衛星IRD接受到當前傳統的一個電纜傳輸系統描述符,那麼這個描述符被視爲有效,如果一個電纜IRD接收到當前傳輸系統的一個電纜傳輸系統描述符也是有效的,但是如果電纜IRD接收到當前傳輸系統的一個衛星傳輸系統描述符,那麼這個描述符對於這個IRD就是無效的。

c、              如果當前傳輸流系統一個有效的NIT在SI比特流中出現,那麼這個NIT應當列出當前傳輸流系統中所有的TS.

d、              SI流每10秒鐘應當至少包含8各TS包來傳輸NIT或者空包。這個規定簡化了廣播傳輸邊界中NIT的復位(replacement).使用這樣的復位機制,使得本地頻率控制使用低廉設備成爲可能。

SI使用兩個標誌來描述傳輸系統,它們分別是network_id和original_network_id.後者用來作爲一個TS中的一個服務的唯一標誌符,即使這個TS被傳送到了其他的傳輸系統之中,一個TS可以被path:original_network_id/transport_stream_id唯一標識,一個服務可以被peth:original_network_id/transport_stream_id/service_id唯一標識。顯然,network_id不在這個path之內,另外,每個original_network_id中都有不同的service_id。當一個服務(同一個TS內)被傳送到另一個傳輸系統後,只有network_id改變了,original_network_id不受影響。

下面舉個例子,考慮如下情況:有兩個服務(A和B)。它們源於兩個不同的傳輸系統並且碰巧有相同的service_id和transport_stream_id,它們被傳輸到一個新的傳輸系統。在這個例子中,這兩個服務被安排在新的network中的不同TS中。如果這兩個服務被放在同一個TS中,那麼必須修改服務的ID,因爲在同一個TS中一個SERVICE_ID不能夠分配給多個服務,並且一個TS僅僅可以對應一個original_network_id。

2、              BAT信息

BAT提供一組服務,這些服務提供了一個基礎,IRD在這些基礎之上向用戶展示有效的服務,BAT的傳輸是可選的。下面的規則提高了SI比特流的連貫性並且簡化了IRD的工作。

SI比特流應當在每個BAT子表中列出集錦的所有服務。

注意:一個服務可以屬於多個bouquet。這一規定使得IRD可以通過不同的TS得到一個服務。如果IRD將bouquet中服務信息提供給用戶,那麼列在bouquet中的服務就得到保證,否則一些服務將會丟失。一個bouquet可以把不同網絡傳輸的多個TS中的服務集中起來。如果BAT中所有服務都被列在SDT中,IRD對bouquet中所有服務信息的訪問將會變得容易。同樣的,如果NIT信息給出所有TS中service的容量,IRD對service的訪問將會變得容易。

3、              SDT信息

SDT用來羅列TS中service的名稱以及其他參數。每一個TS中都有一個獨立的SDT子表。爲了提高對service的採集,定義了下列規定:強制傳輸當前TS的SDT;SDT列出的SI比特流至少包括TS中所有服務。另外:當前TS(例如table_id=0x46)中SDT描述其他TS時,應當列出這個TS的所有service。強烈推薦service_id,在一個network中一旦把一個service_id分配給了一個特定的服務,那麼這個service_id將不再變化,以便於IRD實現收藏頻道列表之類的功能。

DVE-SI入門(三)

4、              EIT信息

時間信息表用來傳遞當前的、將來的甚至更遠的未來的事件的信息。每個Service都有自己獨立的EIT子表。

4.1             EIT Present/Following信息(以下簡稱EIT P/F)

下列規則簡化了EIP P/F信息的獲得,SI規範規定EIT段最大部超過4096字節。

SI流中的每個Service都有兩段來描述EIT Present/Following,section_number 0x00用老描述當前事件,section_number 0x01描述下一個事件。這些約束不適用於NVOD引用的Service,這些Service在每段中可能有多個事件描述,並且在EIT Present/Following中可能有更多的段。推薦提供事件描述event_id的升級排列。

在一個section中,SI可以最多4096個字節來描述一個單獨的事件。

對於當前事件有如下規定:

a、              同一時刻最多隻有一個當前事件。

b、              當存在一個當前事件時,該事件應該被描述在EIT Present/Following的section0中。

c、              當前事件中的running_status應當被給出。

d、              在同一時刻,最多有一個following event.

e、              如果following event存在,該事件應當在EIT Present/Following的section1中。

f、               如果following event不存在,則傳輸一個section1爲空的EIT Present/Following。

g、              Following event的running_status應當給出。

事件的持續時間和EIT持續事件一樣,必須包含事件被設置爲“not running”或者“pausing”。事件的開始時間和EIT start_time一樣,應當是整個事件的開始事件,而不是從pause恢復後的時間。

注意:一個事件的開始時間加上它的持續時間可能比following event的開始時間要小。換句話說,允許事件之間有間隔。在這種情況下,following event被看作是間隔後的事件,這個事件應當編在EIT Present/Following的secting1中。

注意:開始時間和持續時間都是預定的,一些廣播服務提供商可能會更新這些信息,而另外一些則更願意保持開始時間不變。例如爲了避免名爲“8點新聞”的事件被誤解,把信息中的開始事件從8:01:23改爲8:00:00

4.2、EIT Schedule結構

1)EIT Schedule結構遵從如下規則:

1、 EIT/Schedule分配了16個table_id,0x50-0x5F給當前TS,0x60-0x6F給其它TS,這些id按照時間順序排列;

2、子表下的256個section被分爲32段(segment),每8個section一個字段(segment).Segment#1、從section0到7、section#2、從section8到15等等

3、 每段包含三個小時內開始的事件信息;

4、 段內事件信息按照事件排列;

5、 如果一個段(segment)有n節(section),而n<8,這個信息必須放在段前n個節中,還要顯示指明最後一節的位置:S0+n-1(S0是段中第一節),這個值在EIT的segment_last_section_number中。例如,第二段只有兩節,那麼segment_last_section_number包含值8+2-1=9;

6、 如果段中有節的話,段的segment_last_section_number應當有值s0+7;

7、 完全空的段通過空節(不包含loop over事件)表示,段的vsegment_last_section_number值爲s0+0

8、 段中事件的安排遵從一個時間t0.

T0是通過時間座標(Universal Time Coordinated(UTC))的“last midnight”。

舉個例子:UTC-6的下午5點,就是UTC-0的下午11點,即從:last midnight”算起23小時。因此對於UTC-6,t0就是前一天的下午6點;

table_id 0x50(對於其它TS是0x60)的第0段,包含從午夜(UTC時間)到“今天”02:59:59(UTC時間)(三個小時)的事件信息。第一段包含從03:00:00到05:59:59(UTC時間)的事件信息。依此類推,這就意味着第一個子表包含“今天”UTC午夜時間算起4天的信息;

9、last_section_number用來指明子表的結束位置;

10、last_table_id用來指明整個EIT/Schedule結構的結束位置;

11、與過去相關的段可以用空段代替,參見7規則;

12、EIT/Schedule包含的時間定義中的running_status應當設爲“爲定義”即0x00;

13、EIT/Schedule表不適用於NVOD涉及的服務,因爲這些服務帶有未定義開始時間的事件;

2)EIT加密

EIT Schedule表格可以被加密,爲了與條件接入相聯繫,必須分配一個service_id(=MPEG-2 program_number)來描述加密的EIT Schedule Tables,這個service_id在PSI中。EIT在PMT中定義,service_id看成由一個private steam組成的各種電視節目(The EIT is identified in the Program Map Table(PMT)section for this service_id as a programme consisting of one private steam),PMT包含一個或者多個CA_descriptor來驗證相關的CA碼流。爲達到這個目的,在DVB應用程序中service_id的值0xFFFF被保留。

 

怎樣在衆多的數字電視節目中快速地找到用戶所需要的節目,是數字電視應用所要解決的問題。在DVB接收機中通常都使用電子節目指南(EPG)這一工具來達到快速查找節目的目的,生成EPG的數據來源於DVB碼流中的有業務信息SI信息。

在數字電視中,所有視頻、音頻、文字、圖片等經數字化處理後都變成了數據,並按照MPEG-2的標準打包,形成固定長度(188個字節)的傳送包,然後將這些數據包進行復用,形成傳送碼流(TS),通常一個頻道對應一個TS流,一個頻道的TS流由多個節目及業務組成。在TS流中如果沒有引導信息,數字電視的終端設備將無法找到需要的碼流,所以在MPEG-2中,專門定義PSI來信息,其作用是自動設置和引導接收機進行解碼。PSI信息在複用時通過複用器插入到TS流中,並用特定的PID(包標識符)進行標識。

在MPEG-2標準中定義的節目信息PSI,是對單一碼流的描述,由於系統通常存在多個碼流,爲了使使用者能在多個碼流中快速地找到自己需要的業務,在DVB對MPEF-2地PSI進行了擴充,在PSI是個表的基礎上再增加了九個表,形成SI。SI是對整個系統所有碼流的描述,描述系統傳輸內容、廣播數據流的編排和事件表等的數據,它包括PSI信息。

一、節目信息(PSI)

PSI由節目關聯表(PAT)、條件接受表(CAT)、節目映射表(PMT)和網絡信息表(NIT)組成,這些表插入到TS中傳輸。PSI指定了如何從一個攜帶多個節目的傳輸流中正確找到特定的節目,當接收機要接收某一指定節目時,它首先從節目關聯表中取得這個節目映射表中的PID值,,然後從TS中找出與此PID值相對應的節目映射表,從這個節目映射表中獲得構成這個節目的基本碼流的PID值,根據這個PID值濾出相應的視頻、音頻、和數據等基本碼流,解碼後復原爲原始信號,刪除含有其餘PID的傳送包。MPEG-2傳送的結構如圖所示:

    

從上面的幾幅圖中可知,要保證傳送流能正常接收,在該流中至少有一個完整有效的PAT。CAT描述了節目的加密方式,它包含了節目的EMM識別PID,只有授權的解碼器才能由CAT受到密鑰,解碼出相應的數據流。NIT包含節目的頻道調諧參數、頻率、符號率等物理傳輸網信息,這些信息使得接收機可以按照用戶的選擇以很少的延時或無延時地改變頻道、調諧參數,正確地解碼出    TS。由於PSI數據的完整性十分重要,因此在每個PSI段中均需要加校驗碼。

二、業務信息(SI)

   PSI數據只提供了單個TS的信息,使接收機能對單個TS中的不同節目流進行解碼,但它不能提供多個TS的有關業務和節目的類型、什麼節目、什麼時間開始等信息,因此DVB系統對PSI進行了擴展,提供了其他不同信息種類的多種表格,形成SI。在實用中,我們將SI所提供的數據通過有序地組織起來,生成類似節目報的形式,它能在電視機上即時瀏覽,這樣將大大方便用戶的使用,這就是電子節目指南EPG。

   SI定義了9個表格

1、              業務羣關聯表(BAT):它提供了業務羣相關的信息,給出了業務羣的名稱以及每個業務羣中的業務列表。

2、              業務描述表(SDT):它包含了描述系統中業務的數據,例如業務名稱、起始時間、持續時間等。

3、              事件信息表(EIT):它包含了與事件或節目相關的數據,EIT是生成EPG的主要表。

4、              運行狀態表(RST):它給出了事件的狀態(運行/非運行),運行狀態表更新這些信息,允許自動適應切換事件。

5、              時間和日期表(TDT):它給出了與當前事件和日期相關的信息,由於這些信息更新頻繁,所以需要單獨使用一個表。

6、              時間偏移表(TOT):它給出了與當前事件、日期和本地事件偏移相關的信息,由於這些信息更新頻繁,所以需要單獨使用一個表。

7、              填充表(ST):它用於使現有的段無效,例如在一個傳輸系統的邊界。

8、              選擇信息表(SIT):它僅用於碼流片段中,如記錄一段碼流,它包含了描述該碼流段業務信息間斷的地方。

9、              間斷信息表(DIT):它僅用於碼流片段,如記錄的一段碼流中,它將插入到碼流片段業務信息間斷的地方。

這裏值得一提的是,NIT在MPEG-2標準中未予以規定,而是由SI規定。

以上這些表在傳送流中以數據段的形式發送,不同的信息表在傳送流中通過賦予不同的特定PID來進行區分(如表一)。而具有相同的PID的不同信息表則進行由表標識符TABLE ID來區分,在接收端通過查這些特定的PID來找到它們。這裏說明一下,TS中有兩種標識符,一種使包標識符,一種使表標識符。例如SI中的SDT的每一個表都對一個特定的TS中的業務進行描述,這些業務可能使這個表所存在的TS的一部分,也可能使其他TS的一部分,這些SDT的PID都是相同的,這時候我們就可以通過不同的表標識符來區分它們,從而識別出那一個表所描述的業務使那一個TS的。

表一

PID值

PAT

0X000

CAT

0X001

PMT

0X002

NIT

0X0010

SDT、BAT

0X0011

EIT

0X0012

TDT、TOT

0X0014

  SI中的各表在實際使用中並不都需要傳送,其中NIT、SDT、EIT、TDT是必須傳送的,其它表則按照需要進行選擇傳送。

三、電子節目指南(EPG)

在DVB系統中,EPG可使用戶方便、快捷、直觀地找到需要的節目,根據《數字電視廣播業務規範》對EPG的要求,EPG應對提供節目單和當前節目播放等基本功能,還提供節目附加信息、節目分類、節目預定和家長分級控制等功能。EPG的這些功能均可通過SI來實現,也就是說SI是實現EPG功能的前提。在SI中,最重要的是NIT、EIT和SDT,利用這3個表中的數據就可以構成功能不同的EPG。

NIT的作用在上面已經說過,SDT的作用是提供對每個業務的描述,使用戶能方便地瞭解每個業務的內容。對於每一個TS都有一個SDT與之對應。EIT實際上是一個節目表,對於每一個節目都存在一個獨立的EIT。

EPG包含兩個部分:一是播出前端的EPG編輯器;二是用戶端接收機相應的控制軟件,兩部分一一對應,每個接收機的相關部分必須按照前端定義的數據結構來定製,從而接收顯示前端送出的業務信息。

SI一般在複用器合成TS時插入,有3種插入方式:

1、              將各表數據通過複用器廠家提供的應用軟件接口由複用器插入到節目碼流中。

2、              將各表數據按MPEG-2標準打包,通過碼流播出卡輸出,再將之送入複用器的異步串行口與節目碼流複用。

3、              通過條件接收加擾器提供的接口插入,因此可通過局域網將數據表送入加擾器,由加擾器向碼流中插入SI。

四、接收機與EPG

DVB接收機又稱機頂盒,它是接收DVB節目的用戶端設備。打開接收機,通常都有一個開機畫面,這個畫面實際上是一個存儲於機頂盒內的一個菜單選擇頁面,它是由稱爲裝載器的控制軟件生成的用戶操作界面,用戶可通過遙控器進行選擇操作。每個有線電視營運商所開發的這個界面都有所不同,但功能都是一樣的,其主要內容是營運商提供業務(節目)的分類和系統設置及一些輔助功能。這些內容構成了頁面的最上層主菜單,其下一層菜單則通常由SI生成的EPG所構成。

主菜單中的系統設置是爲了引導接收機快速準確的接收到DVB節目而設的,其有最基本的三個操作:信息檢測、節目搜索、軟件下載。

1、信息檢測:它主要顯示目前DVB系統的主頻及相關參數,如主頻率、碼率、調製方式、誤碼率、信號電平等,供維護人員檢測參考。(這裏說明一下,所謂主頻是指SI所在碼流的調製頻率。)

2、節目搜索:接收機在節目搜索時首先搜索主頻頻率,找出SI信息,然後生成EPG,又由EPG生成一個節目列表,這個節目列表包括節目名稱、節目說明、節目播出事件等,並將這個節目列表作爲下一層菜單,每個下層菜單都指向相應節目所在的TS流,達到用戶能方便快捷的收看到所需節目的目的。

3、軟件下載:在前面說過,接收機的裝載器必須要按照前端定義的數據結構來定製,當前端需要變更播出節目時(如增加或減少節目的播出,調整播出節目的類別等)或更改主頻頻率時,接收機的裝載器也應做相應的變更。所以,當前端要做節目變更時,營運商必須要同時變更接收機的裝載器,並向所有接收機發出軟件更新信息,用戶收到信息後,就可用軟件下載功能來更新接收機的裝載器了。

    綜上所述,構成一個DVB系統最基本的業務信息應該包括PSI和SI業務信息。EPG由SI生成,DVB接收機靠EPG來引導接收和選擇收看DVB節目。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章