如何运用 DVB中的SI 信息表
網絡表還提供一組傳輸流以及相應的信息。
NIT在IRD(集成接收解碼器)啟動程序中跟踪,然後信息存儲到了尚未確定的位置存儲中。變化。
NIT曲線如下規定:
a、當前的傳輸系統必須包含NIT。
b、當且僅當 NIT 可用的傳輸系統,當前傳輸系統才有效。
這說明了 NIT 包含有效信息的條件。在一些廣播傳輸系統中,TS 中的 NIT 也被允許使用廣播頻道中的早期網絡。
被接收到有效,如果一個電纜IRD接收到當前傳輸系統的一個電纜傳輸系統佔用時間同樣有效,但是,如果電纜IRD接收到當前傳輸系統的一個衛星傳輸系統,那麼耗時那麼長的IRD就是無效的。
c、如果當前傳輸系統一個有效的NIT在SI比特流,那麼這個NIT就會出現當前傳輸系統中所有的TS。
d、SI流每10個可能應該有8個TS包來傳輸NIT或空包。成為可能。
SI 使用兩個標誌來描述系統。它們分別是 network_id 和 original_network_id。
後來作為一個TS中的一個服務的唯一標誌,即使這個TS被傳輸到了其他的傳輸系統裡面。一個TS可以路徑:original_network_id/transport_stream_id唯一標識。
一個服務可以被路徑:original_network_id/transportstream_id/service_id唯一標識。,network_id不在這個路徑之內。另外,每個original_network_id中都有不同的service_id。當一個服務同(一個TS)內)被傳送到另一個傳輸系統後,只有network_id改變了,original_network_id不能獲得。
下面舉個例子,考慮如下情況:有兩個服務(A和B),它們各自有兩個不同的傳輸系統並且碰巧有相同的service_id和transport_stream_id,它們傳輸到了一個新的傳輸系統。
在例子中,這兩個服務被安排在新網絡中的不同的這個 TS 中。不能分配給多個服務,並且可以對應一個 original_network_id。
2、BAT信息
BAT 提供了一系列服務,這些服務提供了一個基礎,IRD 在這些基礎上增加了向用戶展示有效的服務。BAT 的傳輸是的。下面的規則提高了 SI 比特流的連貫性並選擇了 IRD 的工作。
SI比特應該每個時間在BAT子表中的錦集的所有服務。
注意:一個服務可以是多個花束。這個規定的粘貼 IRD 可以通過不同的 TS 得到一個服務。
如果IRD將bouquet中的服務信息提供給用戶,那麼在bouquet中的服務就得到保證,否則一些服務就會丟失。一個bouquet可以把不同的網絡傳輸的多個TS中的服務集中起來。如果BAT中所有服務都被列在SDT中,IRD對bouquet所有服務信息的訪問將變得容易。如果NIT信息提供所有TS中服務的能力,IRD對服務的訪問將變得容易。
3、SDT信息
SDT 保存羅列 TS 中服務的名稱以及參數。每一個 TS 中其他一個獨立的 SDT 子表。為了提高對服務的採集,定義了以下規則:
強制傳輸當前TS的SDT。
SDT 的 SI 比特流至少包括 TS 中的所有服務。
附加:
當前TS例如table_id=0x46)中S描述其他TS時,應該是該TS的所有服務。
強烈的service_id,在一個網絡中把一個service_id推薦給了一個特定的服務,那麼service_id將不再變化,以便於IRD實現收藏頻道列表之類的功能。
4. EIT 信息
事件信息表用来传递当前的,将来的甚至更远的未来的事件的信息。每个Service都有自己独立的EIT子表。
4.1 EIT Present/Following 信息(一下简称EIT P/F)
下列规则简化了EIT 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应当被给出。如下表:
e、在同一时刻,最多有一个following event。
f、如果following event存在,该事件应当在EIT Present/Following的section1中。
g、如果following event不存在,则传输一个section1为空的EIT Present/Following。
h、following event的running_status应当给出,如下表:
事件的持续时间和EIT持续时间一样,必须包含事件被置为“not running”或者“pausing”。事件的开始时间和EIT start_time一样,应当是整个事件的开始时间,而不是从pause恢复后的时间。
注意:一个事件的开始时间加上它的持续时间可能比following event的开始时间要小。换句话说,允许事件之间有间隔。在这种情况下,following event被看作是间隔后的事件。这个事件应当编在EIT Present/Following的section1中。
注意:开始时间和持续时间都是预定的。一些广播服务提供商可能会更新这些信息。而另一些则更愿意保持开始时间不变。例如为了避免名为“8点新闻”的事件被误解,把信息中的开始时间从8:01:23改为8:00:00。
4.2 EIT Schedule信息
1)EIT Schedule结构
遵从如下规则:
a、EIT/Schedule分配了16个table_id,0x50-0x5F给当前TS,0x60-0x6F给其它TS,这些id按照时间顺序排列;
b、子表下的256个section被分为32段(segment),每8个section一个段(segment)。Segment#1,从section0到7,segment#2,从section8到15,等等;
c、每段包含三个小时内开始的事件信息;
d、段内事件信息按照时间排列;
e、如果一个段(segment)有n节(section),而n<8,这个信息必须放在段中前n个节中,还要显式指明最后一节的位置:S0+n-1(S0是段中第一节),这个值在EIT的segment_last_section_number中。例如,第二段只有两节,那么segment_last_section_number包含值8+2-1=9;
f、如果段中有节的话,段的segment_last_section_number应当有值s0+7;
g、完全空的段通过空节(不含任何loop over事件)表示,段的vsegment_last_section_number值为s0+0;
h、段中事件的安排遵从一个时间t0。
t0是通用时间坐标(Universal Time Coordinated(UTC))的“last midnight”。
举个例子:UTC-6的下午5点,就是UTC-0的下午11点,即从“last midnight”算起23小时。因此对于UTC-6,t0就是前一天的下午6点;
i、table_id 0x50(对其它TS是0x60)的第0段,包含从午夜(UTC时间)到“今天”02:59:59(UTC时间)(三个小时)的事件信息。第1段包含从03:00:00到05:59:59(UTC时间)的事件信息,依此类推。这就意味着,第一个子表包含从“今天”UTC午夜时间算起前4天的信息;
j、last_section_number用来指明子表的结束位置;
k、last_table_id用来指明整个EIT/Schedule结构的结束位置;
l、与过去事件相关的段可以用空段代替,参见g规则;
m、EIT/Schedule包含的事件定义中的running_status应当设为“为定义”即0x00;
n、EIT/Schedule表不适用于NVOD涉及的服务,因为这些服务带有未定义开始时间的事件;
2)EIT 加密
EIT Schedule表格可以被加密。为了与条件接入相联系,必须分配一个service_id(=MPEG-2 program_number)来描述加密的EIT Schedule Tables,这个service_id在PSI中。EIT在PMT中定义,service_id看成由一个private stream组成的各种电视节目(The EIT is identified in the Program Map Table (PMT) section for this service_id as a programme
consisting of one private stream),PMT包含一个或多个CA_descriptor来验证相关的CA码流。为达到这个目的,在DVB应用程序中service_id的值0xFFFF被保留。
No comments:
Post a Comment