專利名稱:一種數字機頂盒epg系統的優化方法
技術領域:
本發明涉及數字機頂盒領域,尤其涉及一種數字機頂盒EPG系統的優化方法。
背景技術:
隨著數字電視、網絡技術的發展,模擬電視信號逐步關閉,數字電視信號逐步普 及。人們對數字電視及數字電視增值業務的需要日漸增強。隨著數字電視節目數量的不斷 增加,人們在使用機頂盒收看數字電視時,迫切需要一種可以方便、快速瀏覽電視節目預告 的方法。在這個背景下產生了 EPG(電子節目指南)系統。現有的EPG系統采用單進程工 作的機制,即CPU(中央處理器)在間隔的時間段內,分別處理從DVB標準業務信息碼流中 收取原始數據包,即電子節目指南數據的捕獲進程;或者進行原始數據包的拆分和解析,即 電子節目指南數據的分析進程;這樣必然導致電子節目指南數據的接收和分析后顯示的速 度變慢。
同時,現有的EPG系統采用固定長度的數組對數據進行緩存,由于EPG不同節目, 不同時刻的數據量不一致,這樣會導致內存空間的浪費,如圖1所示,在圖中Section的長 度固定為4096個字節,而EPG數據庫為不定長度,長度經常小于4096字節,因此會造成內
存浪費。
發明內容
為了解決上述問題,本發明提供一種可以加快EPG數據的抓取與分析,減小內存 空間浪費的數字機頂盒EPG系統的優化方法,使機頂盒收到的數據以最快的速度轉化為電 子節目單,呈現在電視屏幕上供數字電視用戶查閱。本發明一種數字機頂盒EPG系統的優化方法,具體包括以下步驟步驟1、由內存申請一段連續的空間作為數據緩沖區,同時申請三個變量用于表示 目前數據緩沖區的狀態,其中,讀指針用于表示目前數據讀到的位置,寫指針用于表示目前 數據寫到的位置,bW_after_R用于指示讀寫指針的先后關系,兩個指針互相牽制,環形移 動,形成一個環形數據緩沖區;通過控制讀、寫指針使得環形數據緩沖區內的數據必須先寫 數據,然后才能讀取,并且在數據沒有讀完時,寫指針不能讓新的數據覆蓋未讀走的數據;步驟2、采用雙進程進行數據處理,一個進程專門進行數據捕獲,一個進程專門進 行數據分析,兩個進程間通過步驟1中的環形數據緩沖區進行數據緩沖,同時進行異步處 理;從DVB標準業務信息碼流中濾取出EPG系統數據信息后,第一時間將該數據轉移 到優化后的環形數據緩沖區中,數據分析進程可以在任何時間從優化后的環形數據緩沖區 中取得數據進行分析。所述的數據捕獲進程指的是,在捕獲到一個數據段時,先判斷寫指針和讀指針的 關系,如果寫指針還沒有趕上讀指針,就將該數據段的長度寫到該環形數據緩沖區的寫指 針位置,緊接著將該數據段的數據寫入到該環形數據緩沖區中,并將寫指針移動到數據的結尾。所述的數據分析進程指的是,每隔一段時間對環形數據緩沖區內的寫指針和讀指 針進行分析,如果讀指針還沒有趕上寫指針,則從環形數據緩沖區的讀指針位置讀取數據 段的長度,緊接著讀取數據段,然后調用分析函數對數據段進行解析。本發明通過對數據結構和算法的改進,一改現有的單進程工作機制,采用雙進程 協助異步處理的技術,大大提高了數據的緩存和分析速度,能在切臺的第一時間顯示該節 目的電子節目指南信息,為用戶的數字電視收視帶來全新的良好體驗。該發明同時改進了 數據的存儲結構,采用環形緩沖,大大節省了 EPG數據緩存的開銷,為嵌入式系統的其它應 用節省了寶貴的內存資源。
圖1為現有的EPG系統數據緩沖區的數組結構示意圖;圖2為本發明的數據捕獲和分析進程的工作流程圖;圖3為本發明寫指針快于讀指針時的數據緩沖區的示意圖;圖4為本發明讀指針快于寫指針時的數據緩沖區的示意圖。以下結合附圖和具體實施例對本發明作進一步的詳述。
具體實施例方式本發明公開的一種數字機頂盒EPG系統的優化方法具體包括以下步驟步驟1、設置數據緩沖區由內存申請一段連續的空間作為數據緩沖區,同時申請三個變量用于表示目前 數據緩沖區的狀態,其中,讀指針(ReadPointer)用于表示目前數據讀到的位置,寫指針 (WritePointer)用于表示目前數據寫到的位置,控制變量(bW_after_R)用于指示讀寫指 針的先后關系,兩個指針互相牽制,環形移動,形成一個環形數據緩沖區;通過控制讀、寫指 針使得環形數據緩沖區內的數據必須先寫數據,然后才能讀取,并且在數據沒有讀完時,寫 指針不能讓新的數據覆蓋未讀走的數據。如圖4所示,當bW_after_R的值為TRUE時,說明寫指針在讀指針之后,當寫指針 遇到讀指針時,不能進行寫操作,必須等讀指針往前走,把數據讀走之后,才能寫入數據,不 然會覆蓋掉沒有讀走的數據,造成數據丟失。當讀指針到達緩沖區末端,讀完所有數據時, 將讀指移動到緩沖區首部,并且將bW_after_R的值置為FALSE。如圖3所示,當bW_after_R的值為False時,說明寫指針在讀指針之前。當讀指 針遇到寫指針時,不能進行讀操作,必須等寫指針往前走,寫入新數據之后,才能讀出數據。 當寫指針到達緩沖區末端,沒有內存可以寫數據的時候,將寫指移動到緩沖區首部,并且將 bff_after_R 的值置為 TRUE。本發明的數據緩沖區采用異步的FIFO結構,先申請一段連續的空間,用于數據段 (Section)共享使用。如圖3、4所示,其中LenN用于表示第N段數據段的實際長度大小, Section N表示第N段數據段的具體存儲空間。每個數據段只會占用本身大小的空間。步驟2、采用雙進程進行數據處理,一個進程專門進行數據捕獲,一個進程專門進 行數據分析,兩個進程間通過一個環形數據緩沖區進行數據緩沖,同時進行異步處理;從DVB標準業務信息碼流中濾取出EPG系統數據信息后,第一時間將該數據轉移到優化后的 環形數據緩沖區中,數據分析進程可以在任何時間從優化后的環形數據緩沖區中取得數據 進行分析。所述的數據捕獲進程指的是在捕獲到一個數據段(section)時,先判斷寫指針 和讀指針的關系,如果寫指針還沒有趕上讀指針,說明還有空閑的空間可以存儲數據,就將 該數據段(section)的長度寫到緩沖區的寫指針位置,緊接著將該數據段(section)的數 據寫入到緩沖區,并將寫指針移動到數據的結尾;所述的數據分析進程指的是每隔一段時間對緩沖區內的寫指針和讀指針進行 分析,如果讀指針還沒有趕上寫指針,說明還有未讀取的數據,則從數據緩沖區的讀指針 位置讀取數據段(section)的長度(Ien),然后緊接著讀Ien這么長的數據,即數據段 (section),然后調用分析函數對數據段(section)進行解析。如圖2所示,本發明在濾波進程中從DVB標準業務信息碼流中濾取EPG系統數據 信息,第一時間將數據轉移到優化后的環形數據緩沖區中,數據分析進程可以在任何時間 從優化后的環形數據緩沖區中取得數據進行分析。雖然兩個進程間的處理速度可能不一 致,但通過環形數據緩沖區的兩個指針互相牽制、環形移動,且優化后的環形數據緩沖區能 有效對數據進行緩存,這就協調了兩個進程在運行速度上的不一致,加快了數據處理的速 度,大大加快了 EPG系統數據的捕獲和分析的速度。采用本發明的技術方案后,從現有技術的單進程工作機制變成雙進程協作方式,雙進程間采用了環形數據緩存區進行數據通信,基于環形數據緩存區,兩個進程間可以進 行異步的數據處理及緩沖。同時,數據緩沖從現有技術的固定長度的組數結構變成環形緩 存區,有效減少了內存的浪費,節省嵌入式系統保貴的內存資源。
權利要求
一種數字機頂盒EPG系統的優化方法,其特征在于具體包括以下步驟步驟1、由內存申請一段連續的空間作為數據緩沖區,同時申請三個變量用于表示目前數據緩沖區的狀態,其中,讀指針用于表示目前數據讀到的位置,寫指針用于表示目前數據寫到的位置,bW_after_R用于指示讀寫指針的先后關系,兩個指針互相牽制,環形移動,形成一個環形數據緩沖區;通過控制讀、寫指針使得環形數據緩沖區內的數據必須先寫數據,然后才能讀取,并且在數據沒有讀完時,寫指針不能讓新的數據覆蓋未讀走的數據;步驟2、采用雙進程進行數據處理,一個進程專門進行數據捕獲,一個進程專門進行數據分析,兩個進程間通過步驟1中的環形數據緩沖區進行數據緩沖,同時進行異步處理;從DVB標準業務信息碼流中濾取出EPG系統數據信息后,第一時間將該數據轉移到優化后的環形數據緩沖區中,數據分析進程可以在任何時間從優化后的環形數據緩沖區中取得數據進行分析。
2.根據權利要求1所述的一種數字機頂盒EPG系統的優化方法,其特征在于所述的 數據捕獲進程指的是,在捕獲到一個數據段時,先判斷寫指針和讀指針的關系,如果寫指針 還沒有趕上讀指針,就將該數據段的長度寫到該環形數據緩沖區的寫指針位置緊接著將該 數據段的數據寫入到該環形數據緩沖區中,并將寫指針移動到數據的結尾。
3.根據權利要求1所述的一種數字機頂盒EPG系統的優化方法,其特征在于所述的 數據分析進程指的是,每隔一段時間對環形數據緩沖區內的寫指針和讀指針進行分析,如 果讀指針還沒有趕上寫指針,則從環形數據緩沖區的讀指針位置讀取數據段的長度,緊接 著讀取數據段,然后調用分析函數對數據段進行解析。
全文摘要
本發明公開了一種數字機頂盒EPG系統的優化方法,在濾波進程中從DVB標準業務信息碼流中濾取EPG系統數據信息,第一時間將數據轉移到優化后的環形數據緩沖區中,數據分析進程可以在任何時間從優化后的環形數據緩沖區中取得數據進行分析;本發明通過環形數據緩沖區的兩個指針互相牽制、環形移動,且優化后的環形數據緩沖區能有效對數據進行緩存,這就協調了兩個進程在運行速度上的不一致,加快了數據處理的速度,大大加快了EPG系統數據的捕獲和分析的速度,且基于環形數據緩存區,兩個進程間可以進行異步的數據處理及緩沖,同時,數據緩沖從現有技術的固定長度的組數結構變成環形數據緩存區,有效減少了內存的浪費,節省嵌入式系統寶貴的內存資源。
文檔編號H04N5/00GK101834978SQ20091011302
公開日2010年9月15日 申請日期2009年12月23日 優先權日2009年12月23日
發明者黃少雄 申請人:福建新大陸通信科技有限公司