999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TS流復用器中EPG信息處理的優化*

2010-03-14 09:04:56于鴻洋
電視技術 2010年12期
關鍵詞:數據庫優化信息

葛 倩,于鴻洋,張 萍

(電子科技大學 電子工程學院,四川 成都 611731)

1 引言

在數字電視廣播系統中,在TS(Transport Stream)傳輸流最終被送到信道設備進行信道發送之前,TS流復用器將不同來源的傳輸流合并為一個新的傳輸流。電子節目指南(Electronic Program Guide,EPG)是指在符合MPEG-2(13818-1)的TS傳輸流中插入DVB標準定義的業務信息(Service Information,SI),是一種收視導航工具,是交互電視的關鍵技術。EPG協助觀看電視節目的用戶選擇節目,用戶通過EPG可以得到節目的相關信息。

復用時,EPG等其他服務信息要通過復用器插入到TS流中。由于輸入到復用器的各TS流的EPG信息可能不完整或需要在原TS流中插播節目,所以復用之前需對各個待復用TS流的EPG信息進行添加或修改。同時,復用器會對節目號等信息重新賦值,攜帶EPG信息的各個表也要根據復用器的修改情況進行相應的修改和合并。EPG的處理在TS復用中非常重要,筆者介紹了一種TS流復用器中EPG信息相關表的處理方法。

EPG信息由兩部分信息組成:基本EPG信息和擴展EPG信息。基本EPG信息是指完全可以用《數字廣播業務信息規范(GY/Z174-2001)》中的網絡信息表(NIT)、業務群關聯表(BAT)(可選)、業務描述表(SDT)和事件信息表(EIT)進行描述的EPG信息[1-3]。筆者主要介紹基本EPG的處理,包括對NIT,SDT和EIT的處理,BAT的處理方式與其他表相似。

2 EPG處理系統框圖

筆者設計基于IP多路輸入、多路復用輸出的TS軟件復用器中的EPG處理部分,復用器與設計均在Linux系統下實現。整個設計主要可分為EPG獲取、EPG數據存儲編輯、EPG發生等模塊,系統框圖如圖1所示。

圖1 系統框圖

EPG獲取模塊主要完成對EPG信息的接收提取與分析。之后由EPG數據存儲編輯模塊將得到的信息存入數據庫MySQL,并由用戶進行導入或編輯操作,對EPG進行相應的添加或修改,最后EPG發生模塊根據數據庫中存儲的新EPG信息和復用信息,產生新的EPG數據,按一定的時間間隔插入到輸出TS流中。筆者將通過對各模塊的實現方法介紹來論述TS流復用器中EPG信息處理的實現。

3 模塊實現方法

3.1 EPG獲取模塊優化及實現

3.1.1 EPG獲取優化

為了提高EPG的接收效率,對EPG獲取的兩個處理過程進行了優化,即各表section接收和接收信息完整性的判斷。

1)section接收優化

部分機頂盒由于處理器主頻和存儲空間的限制,在接收PSI/SI表的section時采用PAT→NIT→SDT→EIT順序接收的方法,即在一個時間段內只對一種PSI/SI表進行接收。會出現接收到SDT或EIT的包時,因為PAT或NIT沒有接收完成或者丟包而放棄接收分析的情況,當需要接收這些表時又要等到下一個發送周期,這樣接收完所有的表可能需要幾個發送周期,接收效率較低。由于系統在PC上實現,存儲空間和處理器主頻的限制較小,故對接收方式進行了優化,采用并行接收,即先接收PAT,之后并行接收NIT,SDT和EIT,可以節省時間。并行接收主要體現在section的接收處理上,接收步驟為:

(1) 過濾 PID=0x000的包,分析PAT,獲得 NIT的PID、該流的節目數量以及所有節目的節目號,存入節目數據鏈表。由于PAT發送周期較短(為40ms),這一步驟可在很短的時間內完成。

(2)對其余3種表的section進行并行接收。程序根據TS包的PID過濾出需要的包,分別送入NIT,SDT和EIT各自的接收通道中,每個通道利用獨立的數據結構來記錄section接收情況信息和獨立的存儲空間,存儲接收到的section內容,使得各通道互不干擾。

(3)section進入各自的接收通道后,先判斷是否丟包,之后對TS包解包,將section內容存入緩沖,根據section_length來判斷一個section是否接收完成,如果完成,按照各表的結構,分析該section,存儲相關信息,最后判斷接收信息的完整性,決定是否繼續接收。

2)判斷信息完整性優化

在判斷接收信息的完整性時,不采用以往一些設計中根據last_section_number來判斷的方法,這要求section以section_number的順序依次接收,若開始接收時錯過section_number為0的包或者丟包,則導致之后section_number的包需等到下一發送周期才能接收,降低了接收效率,PSI/SI發送周期較長或者網絡質量較差時影響尤為嚴重。

筆者采用一種改進的接收判斷方法,可以解決這個問題,即利用段存在標志數組來判斷信息完整性,不要求按照section_number順序接收。具體實現為:程序首次收到該表section時,通過last_section_number(EIT還需要segment_last_section_number和last_table_id以及本TS流中的節目數和節目的program_number)計算出該表的section總數和所有section_number,以此建立section存在標志數組。以SDT為例,若得到last_section_number為1,則可以計算出該流SDT分段有2個section,section_number分別為0和1,即可建立標志數組,把0和1的位置置位為存在。之后每接收完一個section,把對應標志數組中的該section標志置位為已接收,并檢查所有的存在標志,若有存在標志未置位為已接收,則繼續接收該表,否則該表接收完成,停止接收。

3)優化結果

優化以存儲空間為代價來提高接收效率,適合于在存儲空間限制較小的PC上實現。若不經優化,系統可能需要接收端接收到數次完整的信息才能完成接收,而優化之后的系統接收端只須收到一次完整的信息,就可以完成接收,減小了PSI/SI發送周期和丟包的影響。

3.1.2 表分析處理流程圖

系統對各表采用介紹的優化方法進行并行接收,完成EPG信息的分析存儲,接收框圖如圖2所示。

3.2 EPG數據存儲和編輯

EPG相關表格接收完畢后,形成數據鏈表,結構如圖3所示。

這樣的結構可以通過輸入TS流標號和節目號迅速定位節目信息,使之在鏈表中的添加刪除靈活簡便,也便于之后的表生成模塊的處理。

選用的數據庫為MySQL。MySQL是一個開放源碼的關系數據庫管理系統,支持Linux操作系統,CPU利用率高,查詢速度快,還提供多種語言支持,滿足EPG信息的多語言要求。基于這些特性,MySQL可以滿足設計中對EPG處理的要求。

所有的EPG信息存入創建的database中,程序根據輸入TS流的EPG建立table:SDT,EIT_PF和EIT_schedule_stream.No_prog_program.No,存入相關信息。

用戶通過EPG編輯器對EPG信息進行編輯。其功能模塊包括網絡配置和事件編輯(包括節目編輯和節目單導入導出),完成后,將修改的信息導入數據庫。

圖3 EPG信息數據鏈表

3.3 EPG數據打包發送

3.3.1 各表section生成

為了便于表的生成,為各輸出流建立一個數據結構數組mult_infomation,存儲該流的復用信息,其中包含了stream_id(輸入 TS 流標號),origin_program_number(該節目的原始節目號),new_program_number(在復用流中的節目號)等信息,數組的項數為該復用流中所包含的節目數,通過該數據結構可以方便地得到節目被復用到輸出流中的位置。

NIT,SDT和EIT在TS流中的獨立性各不相同,所以section生成方式稍有不同。NIT對網絡信息進行描述,在同一網絡中,所有流的NIT是相同的,只須生成一種NIT section之后進行打包,作為同一網絡中所有流的NIT包,對于SDT,每個流的SDT section各不相同,需對各輸出流生成各自的SDT section,之后再打包,EIT是以節目為單位獨立的,即相同節目的EIT section除了service_id,其余部分在各TS流中都是相同的,所以先對各輸入TS流的各節目生成EIT section,之后輸出流根據mult_infomation從這些EIT section中選出需要的section,修改service_id,進行打包。

生成section的信息從數據庫中讀取,之后根據各表的結構建立section,完成后計算CRC并插入。輸出TS流還需帶有同一網絡中其他TS流的SDT和EIT信息,傳輸這些信息需修改 table_id(SDT改為 0x4F,EIT在原table_id上加上0x10)和重新計算CRC。

3.3.2 生成各表的待發送TS包鏈表

SDT和EIT作為其他流信息發送時只須改變table_id和CRC,所以同一網絡TS流中的SDT和EIT除table_id和CRC部分不同之外,其余部分完全相同,同時,一個網絡中所有流共用一個NIT。由于設計的復用器輸出流均在同一網絡中,故各表可分別僅用一個TS包鏈表和相應的修改信息構成網絡中所有輸出流的待發送包。

為了建立鏈表,須對生成的section打包并存儲到TS包數據結構中,該數據結構除了有TS包的完整內容之外,還帶有output_id(輸出流編號)和需要替換的內容(table_id和CRC)。建立好的鏈表如圖4所示(以SDT為例),其中NEXT_SDT_USE[output_id]為指向TS包數據結構的指針,每個輸出流均有1個,用于在發送TS包時指示當前應發送的包,header_n和rear_n為指向輸出流n的本流SDT包鏈表的頭和尾。

圖4 TS包鏈表結構

3.3.3 各輸出流EPG包發送

對于每一個輸出流,需發送的表為:網絡NIT、流SDT和EIT、同一網絡中其他流SDT和EIT分段。DVB關于SI表的傳輸間隔要求如表1[4]所示。

表1 DVB關于SI表的傳輸間隔

以SDT發送為例,每隔2 s發送一次本流SDT分段,每隔10 s發送一次本流和其他流SDT分段,每發送一個包,NEXT_SDT_USE[output_id]就指向下一個包,當發現發送完成標志(僅發送當前流分段時標志為rear_n,發送所有分段時標志為header_n)即停止發送,等待下一發送周期,EIT和NIT的發送與此類似。當TS包作為其他流分段 (根據結構體中output_id和當前輸出流id判斷)發送時,須根據結構體中的修改信息進行修改。

3.3.4 EPG信息更新

EPG更新可以采用兩種方式:僅允許用戶手動更新和根據輸入TS流更新。更新方式的選擇以輸入TS流為單位。

1)用戶手動更新。在復用過程中,用戶通過EPG編輯器更新EPG信息,導入數據庫,程序根據數據庫中的信息重新生成表,并使表的version_number加1,完成更新。

2)根據輸入TS流更新。開始復用后,程序監視各種表的version_number,若發現版本號變化,進行相關表的重新接收存儲,按照復用信息mult_infomation確定應該重建哪些表,同樣,使表的version_number加1。更新原則為[5]:

(1)若NIT變更,重新建立整個網絡的傳輸流和業務信息。

(2)若SDT變更,重新建立對應傳輸流里的業務信息。

(3)若EIT變更,不改變整個網絡的傳輸流和業務信息,只改變相應的事件信息。

4 實驗結果與分析

TS流復用器的EPG處理系統工作于Linux系統下,完成復用器中EPG信息的添加、刪除等處理,進行測試,結果與分析如表2所示。

表2 系統EPG接收效率測試結果

測試中的丟包由隨機刪去發送流PSI/SI包來模擬,丟包程度為能夠保證接收端在1min內收到一次完整的信息,接收超時時間設為1 min,若在網絡環境較差的情況下,可適當增加接收超時時間,以保證獲取完整的信息。在不丟包的情況下,理論上,對于TS1和TS2,優化后的接收方式需要的最長時間分別為5 s和30 s。由表2的測試結果可以看到,優化后的接收方式所用的時間小于未優化的接收方式,并且丟包對優化后的接收方式影響較小,對于沒有優化的接收方式,丟包的影響在發送周期較長的分段時尤為嚴重。

之后對EPG信息通過EPG編輯器進行修改,輸出流經EPG分析軟件分析,各表均正常。EPG編輯器界面如圖5所示。

圖6和圖7分別為輸入輸出流的EPG在數據庫中的情況 (系統對復用輸出流再次進行接收可分析得到輸出流的EPG情況),右半部分為數據庫中的table,左半部分為SDT內容。輸入為2個TS流,第1個流沒有EPG信息,SDT中的provide_name和program_name默認為節目號。經EPG編輯后輸出,輸出為1個流,第1個流選取節目號為ec1的流,第2個流選取所有節目,可以看到,節目號均重新賦值,并且對ec1節目的SDT進行了添加。

[1]王大鵬.電子節目指南(EPG)在機頂盒中的實現[C]//國際有線電視技術研討會論文集,2003.杭州:中國廣播電視協會技術工作委員會,2003:406-410.

[2]ISO/IEC 13818-1,Third edition 2007.10 information technologygeneric coding ofmoving pictures and associated audio information:system[S].2007.

[3]方濤.數字電視業務信息及其編碼[M].北京:國防工業出版社,2003.

[4]Guidelines on implementation and usage of service information[EB/OL].[2010-04-13].http://www.bjpace.com.cn/data/tec/tec-DVB/DVB-20BlueBooks-20Standards/Specifications-20and-20Standards/multiplexing/dvb-si/a005r1.pdf.

[5]陳德林.EPG前端SI發表和機頂盒終端收表策略[J].廣播與電視技術,2005(8):99-101.

猜你喜歡
數據庫優化信息
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 亚洲一区二区三区在线视频| 欧洲欧美人成免费全部视频| 国产一区二区影院| 亚洲天堂区| 亚洲欧美极品| 尤物午夜福利视频| 日韩资源站| 国产午夜福利在线小视频| 2020久久国产综合精品swag| 久久久久久久久亚洲精品| 91精品日韩人妻无码久久| 日韩精品一区二区三区免费在线观看| 91久久青青草原精品国产| 91年精品国产福利线观看久久 | 最新加勒比隔壁人妻| 精品欧美视频| 无码内射在线| 在线一级毛片| 欧美日韩高清在线| 国产成人综合网在线观看| 国产美女91呻吟求| 中文字幕免费视频| 精品国产免费观看| 伊人蕉久影院| 中文纯内无码H| 91视频精品| 亚洲热线99精品视频| 亚洲成年人片| 中文字幕天无码久久精品视频免费 | 香蕉精品在线| av在线无码浏览| 日韩精品一区二区三区视频免费看| 欧美视频在线观看第一页| 人妻少妇乱子伦精品无码专区毛片| 欧洲精品视频在线观看| 91九色国产在线| 999精品视频在线| 精品夜恋影院亚洲欧洲| 欧美精品成人| 亚洲日本中文综合在线| 欧美日韩成人| 99无码中文字幕视频| a级毛片毛片免费观看久潮| 欧美日韩中文国产| 国产成人精品亚洲77美色| 久久久久久国产精品mv| 亚洲视频a| 97久久精品人人做人人爽| 无码中文字幕精品推荐| 欧美天堂在线| 欧美一级片在线| 精品国产网站| 久久中文字幕2021精品| 国产午夜一级毛片| 国产精品久久久久婷婷五月| 国产成人亚洲精品色欲AV | 国产免费黄| 亚洲三级视频在线观看| 久久精品这里只有精99品| 免费一级毛片| 久久综合成人| 久久免费精品琪琪| 欧美成人免费一区在线播放| 99伊人精品| 自偷自拍三级全三级视频| 亚洲精品国产成人7777| 中文字幕日韩视频欧美一区| 99视频在线免费| 亚洲91精品视频| 国内a级毛片| 一级毛片免费高清视频| 成年av福利永久免费观看| 成年人午夜免费视频| 国产亚洲精品91| 国产手机在线ΑⅤ片无码观看| 久久久久中文字幕精品视频| 国产精品林美惠子在线播放| 亚洲AV成人一区二区三区AV| 亚洲女同一区二区| 国产区在线看| 日本在线免费网站| 国产打屁股免费区网站|