專利名稱:手持?jǐn)?shù)字視頻廣播中電子服務(wù)指南信息更新的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及手機(jī)電視領(lǐng)域,尤其涉及一種DVB-H (Digital Video Broadcasting Handheld,手持?jǐn)?shù)字視頻廣播)中的ESG(Electronic Service Guide,電子服務(wù)指南)信息更新的實(shí)現(xiàn)方法。
背景技術(shù):
隨著移動(dòng)數(shù)據(jù)業(yè)務(wù)的普及、手機(jī)性能的提高以及數(shù)字電視技術(shù)和網(wǎng)絡(luò)的迅 速發(fā)展,利用具有操作系統(tǒng)和視頻功能的智能手機(jī)或3G手機(jī)觀看電視的手機(jī) 電視業(yè)務(wù)引起了人們的廣泛關(guān)注。由于手機(jī)用戶普及率高且手機(jī)擁有攜帶方便 等特性,手機(jī)電視業(yè)務(wù)顯示出了比普通電視更廣泛的影響力。DVB-H標(biāo)準(zhǔn)是 手機(jī)電視標(biāo)準(zhǔn)中一種很有影響力的地面數(shù)字電視廣播標(biāo)準(zhǔn),在許多國家,尤其 是歐美國家,都得到了大力的推廣和應(yīng)用。在DVB-H中,ESG包含當(dāng)前可用服務(wù)的信息,通過這些信息,用戶可以 選擇自己感興趣的服務(wù)并且找到自己手機(jī)上已經(jīng)存儲(chǔ)的信息。圖1是DVB-H中的ESG位置及功能示意圖,手機(jī)對(duì)準(zhǔn)DVB-H 11的電視 傳輸信道,接收IPDC (IP Datacast, IP數(shù)據(jù)廣播)數(shù)據(jù)之后,從PSI/SI (Program Specific Information /Service Information,節(jié)目特定信息/業(yè)務(wù)信息)12的表格 當(dāng)中可以知道如何收取ESG導(dǎo)入信息(Bootstrap) , ESG 13從中解析出相關(guān) 的信息。ESG應(yīng)用14將這些信息反映給用戶,用戶就可以選擇一個(gè)服務(wù)應(yīng)用 15 (業(yè)務(wù))執(zhí)行。所述ESG13中所包含的信息,可以讓手機(jī)對(duì)準(zhǔn)到所需要的 IP (Internet Protocol,互聯(lián)網(wǎng)協(xié)議)數(shù)據(jù)流上去。圖2是ESG包含的主要功能示意圖,其中ESG的操作主要有3個(gè)ESG引導(dǎo)21 (Bootstrap):讓手機(jī)知道那些ESG信息可用,并且如何得 到這些ESG信息;ESG獲取22:長時(shí)間沒有連接手機(jī)電視的情況下,第一次獲取ESG信息; ESG更新23:手機(jī)刷新自己所存儲(chǔ)的ESG信息;ESG更新23可以讓用戶及時(shí)獲取最新的服務(wù)信息,是ESG功能實(shí)現(xiàn)中的 重要一部分。對(duì)于ESG更新的實(shí)現(xiàn),DVB-H標(biāo)準(zhǔn)中并沒有進(jìn)行過多的說明。 目前,對(duì)于ESG更新比較常見的處理方式有如下幾種。第一種,在傳輸層由CDP (Content Delivery Protocol,內(nèi)容投遞協(xié)議)來 實(shí)現(xiàn)。傳輸層的CDP在接收套接字(Socket)上面的文件投遞表(FDT: File Delivery Table)后,對(duì)比新舊FDT表,對(duì)變化了的傳輸對(duì)象標(biāo)識(shí)TOI(Transport Object Idemifier)進(jìn)行重新下載,作為變化的ESG容器文件更新消息通知ESG, 由ESG進(jìn)行相應(yīng)的更新處理。該種方法可以有效獲取ESG的更新消息。但是 在CDP要保存舊FDT表,同時(shí)周期性進(jìn)行比較,會(huì)大量消費(fèi)CDP的系統(tǒng)資 源,特別是在網(wǎng)絡(luò)側(cè)不會(huì)頻繁更新文件的情況下,對(duì)CDP本身的傳輸功能有 較大的影響。所述容器是DVB-H中的數(shù)據(jù)傳輸單元,DVB-H簡單地通過這些 容器傳送壓縮圖像、聲音或數(shù)據(jù)到手機(jī)。第二種,在ESG中保存ESG數(shù)據(jù)分段信息,通過直接比較數(shù)據(jù)分段,從 而實(shí)現(xiàn)ESG的信息更新。ESG更新主要應(yīng)該在ESG處理中實(shí)現(xiàn),而不應(yīng)該過度增加CDP的負(fù)擔(dān)。 因此,需要在ESG中專門保存相應(yīng)的容器文件信息或是分段信息,如圖3所 示,ESG專門保存的容器文件信息的分段鏈表中依次包括有分段頭以及分段 l n。在ESG信息更新觸發(fā)時(shí),對(duì)比接收到的CDP信息和ESG保存的相應(yīng) 信息,來判斷是否有ESG更新,以及ESG信息更新所屬類型(即ESG信息 增加、ESG信息刪除、ESG信息改變或無變化)。該種方法需要大量的系統(tǒng) 資源,比如保存ESG信息需要的內(nèi)存資源,比較時(shí)遍歷ESG信息需要的時(shí)間 資源。第三種,在ESG保存信息,由CDP進(jìn)行比較,從而實(shí)現(xiàn)ESG的信息更新。該種方法是前述兩種方法的一種折衷,由ESG保存ESG信息列表,在 ESG信息更新觸發(fā)時(shí),通過對(duì)CDP的交互,把該信息列表告訴CDP,由CDP 進(jìn)行比較,確定ESG更新類型后,再把相應(yīng)的文件送給ESG,由ESG進(jìn)行更 新文件的處理。該種方法需要增加消息交互,如果ESG保存的信息比較多, 傳遞的消息量就大,對(duì)系統(tǒng)正常運(yùn)行的性能有影響。 綜上可知,上述現(xiàn)有技術(shù)雖然都能夠?qū)崿F(xiàn)ESG的信息更新,但都比較煩 瑣,需要額外考慮由于ESG信息保存所需的大量的內(nèi)存資源,以及進(jìn)行ESG 信息遍歷所需的時(shí)間消耗。發(fā)明內(nèi)容針對(duì)上述的缺陷,本發(fā)明的目的在于提供一種手持?jǐn)?shù)字視頻廣播中電子服 務(wù)指南信息更新的實(shí)現(xiàn)方法,使用本方法對(duì)ESG進(jìn)行更新,可節(jié)省大量的系 統(tǒng)資源。為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種手持?jǐn)?shù)字視頻廣播中電子服務(wù)指南信 息更新的實(shí)現(xiàn)方法,包括步驟如下A、 建立電子服務(wù)指南的分段信息的目錄結(jié)構(gòu)鏈表;B、 接收到容器文件之后,所述電子服務(wù)指南遍歷對(duì)比所述目錄結(jié)構(gòu)鏈表 判斷更新類型;C、 對(duì)發(fā)生改變的容器文件進(jìn)行解析,得到分段信息后送達(dá)服務(wù)應(yīng)用;D、 對(duì)所述目錄結(jié)構(gòu)鏈表進(jìn)行更新。 根據(jù)本發(fā)明的方法,所述步驟A進(jìn)一步包括 Al、接收初始化容器文件;A2、解析初始化容器文件中的目錄結(jié)構(gòu),建立所述電子服務(wù)指南的目錄 結(jié)構(gòu)鏈表,該目錄結(jié)構(gòu)鏈表中至少包括電子服務(wù)指南的容器標(biāo)識(shí)和容器版本。根據(jù)本發(fā)明的方法,所述步驟B進(jìn)一步包括,當(dāng)電子服務(wù)指南更新觸發(fā) 時(shí),內(nèi)容投遞協(xié)議接收到新的文件投遞表,并將該文件投遞表相應(yīng)的容器文件 傳遞給電子服務(wù)指南。根據(jù)本發(fā)明的方法,所述步驟B進(jìn)一步包括,將接收到的容器文件的容 器標(biāo)識(shí)和容器版本與所述目錄結(jié)構(gòu)鏈表中相應(yīng)的容器標(biāo)識(shí)和容器版本進(jìn)行遍 歷對(duì)比,如果兩者的容器標(biāo)識(shí)相等,容器版本也相等,則表明電子服務(wù)指南無更新; 如果兩者的容器標(biāo)識(shí)相等,但容器版本不相等,則表明該電子服務(wù)指南有 修改;如果兩者的容器標(biāo)識(shí)不相等,則表明該電子服務(wù)指南有增加。 根據(jù)本發(fā)明的方法,所述目錄結(jié)構(gòu)鏈表還包括有査找標(biāo)識(shí),在所述步驟B
進(jìn)行遍歷對(duì)比后,設(shè)置相關(guān)的査找標(biāo)識(shí),通過對(duì)査找標(biāo)識(shí)的檢査,進(jìn)一步判斷 電子服務(wù)指南是否存在刪除。根據(jù)本發(fā)明的方法,所述步驟D之后進(jìn)一步包括有步驟E,當(dāng)系統(tǒng)關(guān)機(jī) 或重啟時(shí),釋放步驟A所建立的目錄結(jié)構(gòu)鏈表。根據(jù)本發(fā)明的方法,所述步驟A中所建立的目錄結(jié)構(gòu)鏈表自上而下中包 括有根節(jié)點(diǎn),包含所在的容器標(biāo)識(shí)和容器版本; 若干目錄節(jié)點(diǎn),各目錄節(jié)點(diǎn)中包含所在的容器標(biāo)識(shí); 若干子目錄節(jié)點(diǎn),各子目錄節(jié)點(diǎn)中包含所在的容器標(biāo)識(shí);和/或 若干分段節(jié)點(diǎn),各分段節(jié)點(diǎn)中包含數(shù)據(jù)分段標(biāo)識(shí)和數(shù)據(jù)分段版本。 根據(jù)本發(fā)明的方法,所述步驟A中的各目錄節(jié)點(diǎn)和/或子目錄節(jié)點(diǎn)中進(jìn)一步包括有節(jié)點(diǎn)標(biāo)識(shí)和査找標(biāo)識(shí),所述查找標(biāo)識(shí)用于遍歷對(duì)比后確認(rèn)電子服務(wù)指南是否存在刪除。根據(jù)本發(fā)明的方法,所述步驟B進(jìn)一步包括,步驟B1、如果接收到初始化容器文件,將該初始化容器文件的目錄結(jié)構(gòu) 與步驟A所建立的目錄結(jié)構(gòu)鏈表進(jìn)行遍歷對(duì)比,依次比較根節(jié)點(diǎn)下面的目錄 節(jié)點(diǎn)、子目錄節(jié)點(diǎn)和/或分段節(jié)點(diǎn)來判斷電子服務(wù)指南的更新類型;步驟B2、如果接收到目錄容器文件,將該目錄容器文件的容器標(biāo)識(shí)和容 器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的目錄節(jié)點(diǎn)的容器標(biāo)識(shí)和容器版本 進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型;步驟B3、如果接收到子目錄容器文件,將該子目錄容器文件的容器標(biāo)識(shí) 和容器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的子目錄節(jié)點(diǎn)的容器標(biāo)識(shí)和容 器版本進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型;步驟B4、如果接收到數(shù)據(jù)容器文件,將該數(shù)據(jù)容器文件的容器標(biāo)識(shí)和容 器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的分段節(jié)點(diǎn)的數(shù)據(jù)分段標(biāo)識(shí)和數(shù)據(jù) 分段版本進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型。根據(jù)本發(fā)明的方法,所述步驟C進(jìn)一步包括,如果是目錄容器文件或子 目錄容器文件發(fā)生改變,電子服務(wù)指南要求內(nèi)容投遞協(xié)議傳輸目錄容器文件或 子目錄容器文件包含的數(shù)據(jù)容器文件,并對(duì)該數(shù)據(jù)容器文件進(jìn)行解析得到分段 信息后送達(dá)服務(wù)應(yīng)用;
如果是數(shù)據(jù)容器文件發(fā)生改變,對(duì)該數(shù)據(jù)容器文件進(jìn)行解析,得到相應(yīng)的 分段信息后送達(dá)服務(wù)應(yīng)用。本發(fā)明通過建立ESG分段信息的目錄結(jié)構(gòu)鏈表,只需遍歷對(duì)比該目錄結(jié) 構(gòu)鏈表便可判斷ESG更新類型,并僅對(duì)發(fā)生改變的容器文件進(jìn)行解析,相對(duì) 于對(duì)容器文件的全部遍歷和解析,本發(fā)明為系統(tǒng)節(jié)省了大量的時(shí)間資源。進(jìn)一 步地,本發(fā)明可利用ESG初始化容器中的目錄結(jié)構(gòu)來建立ESG分段信息的目 錄結(jié)構(gòu)鏈表,其避免了為保存ESG分段信息所用的額外內(nèi)存開銷,從而為系 統(tǒng)節(jié)省了大量的內(nèi)存資源。
圖1是現(xiàn)有技術(shù)中DVB-H中的ESG位置及功能示意圖;圖2是現(xiàn)有技術(shù)中ESG包含的主要功能示意圖;圖3是現(xiàn)有技術(shù)中在ESG中實(shí)現(xiàn)ESG更新的分段鏈表示意圖;圖4是本發(fā)明ESG更新流程示意圖;圖5是本發(fā)明的ESG和CDP啟動(dòng)時(shí)的交互示意圖;圖6是本發(fā)明的ESG分段信息的目錄結(jié)構(gòu)鏈表示意圖;圖7是本發(fā)的的ESG實(shí)體的目錄結(jié)構(gòu)鏈表示意圖;圖8a 8d分別是本發(fā)明根節(jié)點(diǎn)鏈表、目錄節(jié)點(diǎn)鏈表、子目錄節(jié)點(diǎn)鏈表和 分段節(jié)點(diǎn)鏈表的示意圖;圖9是本發(fā)明判斷ESG更新類型的流程示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的基本思想是提供一種DVB-H (手持?jǐn)?shù)字視頻廣播)中ESG (電 子服務(wù)指南)信息更新的實(shí)現(xiàn)方法,包括建立ESG的分段信息的目錄結(jié)構(gòu) 鏈表;接收到容器文件之后,ESG遍歷對(duì)比所述目錄結(jié)構(gòu)鏈表判斷更新類型; 對(duì)發(fā)生改變的容器文件進(jìn)行解析,得到分段信息后送達(dá)服務(wù)應(yīng)用;對(duì)所述目錄結(jié)構(gòu)鏈表進(jìn)行更新。本發(fā)明不但可有效、迅捷地實(shí)現(xiàn)了對(duì)ESG分段信息的單 個(gè)更新,而且對(duì)ESG分段信息的批量更新也是高效可行的。圖4是本發(fā)明ESG信息更新流程的示意圖,包括步驟如下 步驟S101,建立ESG的分段信息的目錄結(jié)構(gòu)鏈表。 為了充分利用ESG初始化容器的目錄結(jié)構(gòu),首先接收ESG初始化容器文 件;解析ESG初始化容器文件中的目錄結(jié)構(gòu),建立ESG分段信息的目錄結(jié)構(gòu) 鏈表,該目錄結(jié)構(gòu)鏈表中包括ESG的容器標(biāo)識(shí)和容器版本。本步驟利用ESG 初始化容器中的目錄結(jié)構(gòu)信息來建立ESG分段信息的目錄結(jié)構(gòu)鏈表,由于 ESG初始化容器中的目錄結(jié)構(gòu)信息需要保存?zhèn)渲T如SPD (Session Partition Declaration,會(huì)話分割聲明)等使用,相比較專門使用一段緩沖保存具體的ESG 分段信息方法,可以節(jié)省額外的內(nèi)存資源開銷。并且由于ESG分段信息的目 錄結(jié)構(gòu)鏈表是在接收初始化容器時(shí)建立,對(duì)ESG更新時(shí)的性能影響基本可以 忽略不計(jì)。步驟S102, ESG更新觸發(fā)時(shí),接收容器文件。本步驟中當(dāng)ESG更新觸發(fā) 時(shí),CDP (內(nèi)容投遞協(xié)議)接收到新的FDT (文件投遞表),并將相應(yīng)的容器 文件傳遞給ESG,由ESG進(jìn)行更新流程處理。所述更新觸發(fā)包括自動(dòng)更新和 手動(dòng)更新。步驟S103,根據(jù)接收的容器文件,ESG遍歷對(duì)比目錄結(jié)構(gòu)鏈表,判斷ESG 更新類型,如果容器文件有改變,則執(zhí)行步驟S104;否則,不作更新處理而 直接結(jié)束。所述ESG更新類型包括有ESG增加、ESG刪除、ESG修改和ESG無 更新。本步驟中將接收到的容器文件的容器標(biāo)識(shí)和容器版本與所述目錄結(jié)構(gòu)鏈表中相應(yīng)的容器標(biāo)識(shí)和容器版本進(jìn)行遍歷對(duì)比,如果兩者的容器標(biāo)識(shí)相等,容 器版本也相等,則表明ESG無更新;如果兩者的容器標(biāo)識(shí)相等,但容器版本 不相等,則表明ESG有修改;如果兩者的容器標(biāo)識(shí)不相等,則表明ESG有增 加。所述目錄結(jié)構(gòu)鏈表還包括有査找標(biāo)識(shí),在進(jìn)行遍歷對(duì)比后,設(shè)置相關(guān)的査 找標(biāo)識(shí),通過對(duì)査找標(biāo)識(shí)的檢査,進(jìn)一步判斷該容器文件是否存在刪除。由于 可根據(jù)ESG的容器標(biāo)識(shí)和容器版本來判斷ESG更新類型,從而節(jié)省了 ESG 更新類型判斷的時(shí)間開銷。步驟S104,對(duì)發(fā)生改變的容器文件進(jìn)行解析,例如對(duì)容器文件對(duì)應(yīng)的數(shù) 據(jù)分段XML (Extensible Markup Language,可擴(kuò)展置標(biāo)語言)解析或者 BIM(Binary format for Metadata,原數(shù)據(jù)二進(jìn)制格式)解析,得到分段信息后送 達(dá)服務(wù)應(yīng)用。由于只是解析容器標(biāo)識(shí)和/或容器版本發(fā)生改變的容器文件,相 對(duì)于對(duì)容器文件的全部解析,本發(fā)明節(jié)省了容器文件解析的時(shí)間開銷。步驟S105,對(duì)步驟S101建立的目錄結(jié)構(gòu)鏈表進(jìn)行更新。比較確認(rèn)ESG更新信息并解析處理后,需要對(duì)目錄結(jié)構(gòu)鏈表進(jìn)行相應(yīng)的 同步維護(hù)處理,使用新的目錄結(jié)構(gòu)鏈表替代舊的目錄結(jié)構(gòu)鏈表,以便及時(shí)準(zhǔn)確 地確認(rèn)下一次ESG更新。步驟S106,當(dāng)系統(tǒng)(即手機(jī))關(guān)機(jī)或者重啟時(shí),釋放步驟S101建立的目 錄結(jié)構(gòu)鏈表的內(nèi)存,從而進(jìn)一步地節(jié)省系統(tǒng)的內(nèi)存資源。進(jìn)一步地,所述步驟S101在DVB-H中接收初始化容器文件的過程如圖5 所示,包括步驟如下步驟S501,系統(tǒng)開機(jī)后,UI(UserInterface,用戶界面)1進(jìn)行初始化電視 接收。步驟S502, ESG 2要求CDP 3上報(bào)ESG導(dǎo)入信息(Bootstrap)。 步驟S503 , CDP 3上報(bào)Bootstrap給ESG 2。步驟S504, ESG 2接收CDP 3上報(bào)的Bootstrap后,解析獲取運(yùn)營商信息 和接入信息后上報(bào)給UIl。步驟S505, UI 1將選擇的運(yùn)營商信息發(fā)送給ESG 2。步驟S506, ESG2配置接入ESG信息的IP地址、端口號(hào)、TSI (Transport Session Identifier,傳輸會(huì)話標(biāo)識(shí))等ESG實(shí)體信息給CDP 3,要求CDP 3上報(bào) 初始化容器文件。步驟S507, CDP 3根據(jù)接收到的ESG實(shí)體信息上報(bào)對(duì)應(yīng)的初始化容器文 件給ESG 2。步驟S508, ESG2解析初始化容器文件中的目錄結(jié)構(gòu),并建立ESG的目 錄結(jié)構(gòu)鏈表,其充分利用了ESG初始化容器,有效降低了保存大量ESG信息 所需的內(nèi)存資源。步驟S509,對(duì)于多流(Multiple Stream)傳輸?shù)那闆r,ESG 2要求CDP 3 上報(bào)某IP上的所有容器文件。步驟S510, CDP3將該IP上的所有容器文件上報(bào)給ESG2。 步驟S511, ESG2對(duì)接收的容器文件進(jìn)行分段解析,以解析出具體頻道
和節(jié)目信息。步驟S512, ESG2向UI1上報(bào)具體的頻道和節(jié)目信息。 其中,上述步驟S501 S504是開機(jī)、接收BootStap的過程;而步驟S505 S512是對(duì)ESG所有信息全部接收的過程。更進(jìn)一步地,對(duì)于包含目錄結(jié)構(gòu)的傳輸流,例如多流(Multiple Stream) 傳輸,所述步驟S101中所建立的目錄結(jié)構(gòu)鏈表如圖6所示,其自上而下包括 根節(jié)點(diǎn)IndexList,由目錄節(jié)點(diǎn)Index 1 Index n構(gòu)成的Index結(jié)構(gòu)鏈表,由子 目錄節(jié)點(diǎn)Sublndexl Sublndexn構(gòu)成的Sublndex結(jié)構(gòu)鏈表,由分段節(jié)點(diǎn)l 分段節(jié)點(diǎn)n構(gòu)成的分段結(jié)構(gòu)鏈表。其中,IndexList作為一個(gè)目錄結(jié)構(gòu)的根節(jié)點(diǎn), 從相應(yīng)的Index容器文件讀出并且建立Index結(jié)構(gòu)鏈表、Sublndex結(jié)構(gòu)鏈表、 分段結(jié)構(gòu)鏈表。對(duì)于沒有目錄結(jié)構(gòu)的傳輸流,例如單流(Single Stream)傳輸,所述步驟 S101中所建立的目錄結(jié)構(gòu)鏈表如圖7所示,其自上而下包括ESG實(shí)體節(jié)點(diǎn), 由容器節(jié)點(diǎn)1 容器節(jié)點(diǎn)n構(gòu)成的容器結(jié)構(gòu)鏈表,由分段節(jié)點(diǎn)1 分段節(jié)點(diǎn)n 構(gòu)成的分段結(jié)構(gòu)鏈表。其中, 一個(gè)ESG實(shí)體節(jié)點(diǎn)對(duì)應(yīng)圖6的一個(gè)Indexlist節(jié) 點(diǎn),而一個(gè)容器節(jié)點(diǎn)對(duì)應(yīng)圖6的一個(gè)Index節(jié)點(diǎn)或者Sublndex節(jié)點(diǎn)。無目錄結(jié) 構(gòu)的流傳輸?shù)哪夸浗Y(jié)構(gòu)鏈表中的Index、 Sublndex都為單節(jié)點(diǎn)鏈表,信息主要 集中在葉節(jié)點(diǎn)。圖8a 圖8d分別是所述ESG目錄結(jié)構(gòu)鏈表中根節(jié)點(diǎn)鏈表、目錄節(jié)點(diǎn)鏈表、 子目錄節(jié)點(diǎn)鏈表和分段節(jié)點(diǎn)鏈表的示意圖,其中IndexList節(jié)點(diǎn)中包含有IndexList節(jié)點(diǎn)所在容器標(biāo)識(shí)(ID, identity)、 容器版本,Index鏈表頭以及用于區(qū)分多個(gè)ESG實(shí)體的會(huì)話ID;Index節(jié)點(diǎn)中包含有Index節(jié)點(diǎn)所在的容器ID、節(jié)點(diǎn)ID、查找標(biāo)識(shí)和會(huì) 話ID等信息,其中査找標(biāo)識(shí)用于遍歷時(shí)確認(rèn)ESG更新的刪除類型使用,初始 化為未査找;Index節(jié)點(diǎn)還包括有所屬IndexList指針和Sublndex鏈表頭。Sublndex節(jié)點(diǎn)包含有Sublndex節(jié)點(diǎn)所在的容器ID、節(jié)點(diǎn)ID、査找標(biāo)識(shí) 和會(huì)話ID等信息,其中査找標(biāo)識(shí)用于遍歷時(shí)確認(rèn)ESG更新的刪除類型使用, 初始化為未査找;Sublndex節(jié)點(diǎn)還包括有所屬Index指針和分段鏈表頭。分段節(jié)點(diǎn)中包含有分段節(jié)點(diǎn)所在的數(shù)據(jù)分段ID、數(shù)據(jù)分段版本、會(huì)話 ID、所屬Sublndex指針等信息。
另夕卜,上述四種節(jié)點(diǎn)鏈表中均包含有雙向鏈表節(jié)點(diǎn)listjiead ,定義如下 struct list—head {struct list—head lext;〃指向下一個(gè)節(jié)點(diǎn)struct list—head承prev;〃指向上一個(gè)節(jié)點(diǎn)上述目錄結(jié)構(gòu)鏈表不僅適用于包含目錄結(jié)構(gòu)的多流傳輸,而且對(duì)于不包含 目錄結(jié)構(gòu)的單流傳輸,為了兼容性考慮,也可使用該ESG分段信息的目錄結(jié) 構(gòu)鏈表,只不過其使用是對(duì)多流傳輸?shù)暮喕?。?duì)于單流傳輸,增加的只是一個(gè) Index單節(jié)點(diǎn)或Siiblndex單節(jié)點(diǎn),對(duì)內(nèi)存資源開銷的影響是很小的。 參見圖9所示,所述步驟S103中判斷ESG更新類型進(jìn)一步包括 步驟S901, ESG更新觸發(fā),包括手動(dòng)更新和自動(dòng)更新。 步驟S902, CDP將新接收的FDT所對(duì)應(yīng)的的容器文件上報(bào)給ESG。 步驟S903, ESG判斷所接收的容器文件是否有改變。首先根據(jù)接收到的 容器文件的容器標(biāo)識(shí)和容器版本,判斷該容器文件是否改變,對(duì)于發(fā)生改變的 容器文件進(jìn)入步驟S904;否則,不進(jìn)行更新處理,直接結(jié)束流程。步驟S904,判斷CDP上報(bào)的是否為初始化容器文件,若網(wǎng)絡(luò)側(cè)重發(fā)目錄 結(jié)構(gòu)更新后的初始化容器,表明該ESG實(shí)體下的信息有比較大的改變,則執(zhí) 行步驟S906;否則執(zhí)行步驟S905。步驟S905,判斷上報(bào)的容器文件是目錄容器文件(或子目錄容器文件) 還是數(shù)據(jù)容器文件,若是目錄容器文件(或子目錄容器文件)則執(zhí)行步驟S906, 若是數(shù)據(jù)容器文件則執(zhí)行步驟S911 。步驟S906,如果ESG接收到的是目錄容器文件(或子目錄容器文件), 表明網(wǎng)絡(luò)側(cè)同一時(shí)候批量更新ESG信息。本步驟中,將接收到的目錄容器文 件(或子目錄容器文件)的容器標(biāo)識(shí)和容器版本與步驟S101所建立的目錄結(jié) 構(gòu)鏈表中的目錄節(jié)點(diǎn)(或子目錄節(jié)點(diǎn))的容器標(biāo)識(shí)和容器版本進(jìn)行遍歷對(duì)比, 以判斷ESG更新類型。進(jìn)一步判斷目錄結(jié)構(gòu)鏈表中是否存在該接收到的目錄 容器文件(或子目錄容器文件),若不存在則執(zhí)行步驟S907;若存在,但同 時(shí)刪除了ESG信息,則執(zhí)行步驟S908;若存在,但容器版本不同,則執(zhí)行步 驟S909。具體來說,如果接收到CDP傳輸來的目錄容器文件(或子目錄容器文件)
后,ESG在目錄結(jié)構(gòu)鏈表的根節(jié)點(diǎn)IndexList下査找同該目錄容器文件(或子 目錄容器文件)的容器ID相等的容器,如果容器ID相等,容器版本也相等, 說明該ESG信息無更新;如果容器ID相等,容器版本不相等,說明該ESG 信息更新有修改;如果査找結(jié)束后,容器ID不相等,說明該ESG信息更新增 加;遍歷后,設(shè)置相關(guān)的査找標(biāo)識(shí),通過對(duì)査找標(biāo)識(shí)的檢査,判斷該Index容 器下面是否有ESG信息的刪除。需要指出的是,若接收的是初始化容器文件, 則ESG將該初始化容器文件的目錄結(jié)構(gòu)鏈表(新表)與步驟S101所建立的目錄 結(jié)構(gòu)鏈表(舊表)進(jìn)行遍歷對(duì)比,依次比較根節(jié)點(diǎn)下面的目錄節(jié)點(diǎn)(或子目錄節(jié) 點(diǎn))和分段節(jié)點(diǎn)來判斷屬于哪種ESG更新類型。由于使用了目錄結(jié)構(gòu)鏈表,對(duì)于CDP傳輸?shù)哪夸浫萜魑募?或子目錄容 器文件)的比較在Index節(jié)點(diǎn)(或Sublndex節(jié)點(diǎn))比較就可以確認(rèn)ESG更新 類型,相比較專門使用一段緩沖保存具體的分段信息的方法,省卻了對(duì)目錄容 器文件(或子目錄容器文件)包含的多個(gè)數(shù)據(jù)分段的遍歷,節(jié)省和緩解了批量 的ESG信息更新時(shí)對(duì)數(shù)據(jù)分段遍歷的時(shí)間消耗。步驟S907,判斷出目錄容器文件(或子目錄容器文件)有增加,即ESG 有增加,則執(zhí)行步驟S910。步驟S908,判斷出目錄容器文件(或子目錄容器文件)存在刪除,即ESG 有刪除,則執(zhí)行步驟S910。步驟S909,判斷出目錄容器文件(或子目錄容器文件)有修改,即ESG 有修改,則執(zhí)行步驟S911。步驟S910,對(duì)目錄容器文件(或子目錄容器文件)下的數(shù)據(jù)分段進(jìn)行處 理,要求CDP傳輸目錄容器文件(或子目錄容器文件)包含的數(shù)據(jù)容器文件, 并對(duì)該數(shù)據(jù)容器文件進(jìn)行解析得到分段信息后送達(dá)服務(wù)應(yīng)用。步驟S911,本步驟中,將該數(shù)據(jù)容器文件的容器標(biāo)識(shí)和容器版本與步驟 S101所建立的目錄結(jié)構(gòu)鏈表中的分段節(jié)點(diǎn)的數(shù)據(jù)分段標(biāo)識(shí)和數(shù)據(jù)分段版本進(jìn) 行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型。進(jìn)一步判斷目錄結(jié)構(gòu)鏈表中是 否存在數(shù)據(jù)容器文件,如果不存在,則執(zhí)行步驟S912;如果存在,但同時(shí)刪 除了ESG信息,則執(zhí)行步驟S913;如果存在,但版本改變,則執(zhí)行步驟914。具體來說,如果接收到CDP傳輸來的數(shù)據(jù)容器文件,需要解析該數(shù)據(jù)容 器文件包含的數(shù)據(jù)分段,ESG在根節(jié)點(diǎn)IndexList下的分段結(jié)構(gòu)鏈表中進(jìn)行查
找和比較,如果數(shù)據(jù)分段的ID相同,版本不同,說明數(shù)據(jù)分段有修改;如果 數(shù)據(jù)分段的ID相同,版本也相同,說明數(shù)據(jù)分段無更新;如果沒有找到相同 ID的數(shù)據(jù)分段,說明數(shù)據(jù)分段有增加;對(duì)査找、比較后對(duì)數(shù)據(jù)分段設(shè)置相應(yīng) 的査找標(biāo)識(shí),査找結(jié)束后,檢索査找標(biāo)識(shí),判讀是否存在數(shù)據(jù)分段刪除。 步驟S912,判斷出該數(shù)據(jù)分段存在增加,即ESG有增加。 步驟S913,判斷出該數(shù)據(jù)分段存在刪除,即ESG有刪除。 步驟S914,判斷出該數(shù)據(jù)分段存在修改,即ESG有修改。 步驟S915,對(duì)ESG數(shù)據(jù)分段進(jìn)行更新處理,對(duì)該數(shù)據(jù)容器文件進(jìn)行解析, 得到相應(yīng)的分段信息后送達(dá)服務(wù)應(yīng)用。綜上所述,本發(fā)明充分利用了 DVB-H的容器信息(容器標(biāo)識(shí)和容器版本), 以及初始化容器中的目錄結(jié)構(gòu),通過對(duì)目錄結(jié)構(gòu)鏈表的建立和維護(hù),有效降低 了保存大量ESG信息所需的內(nèi)存資源;同時(shí)在CDP文件傳輸?shù)呐浜舷拢梢?高效的實(shí)現(xiàn)對(duì)ESG分段信息的遍歷;并且僅對(duì)發(fā)生更新的容器文件進(jìn)行解析, 從而節(jié)省了解析時(shí)間資源。本發(fā)明相比其他方法,在內(nèi)存資源和時(shí)間資源的開 銷上均具有明顯優(yōu)勢。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情 況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但 這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1. 一種手持?jǐn)?shù)字視頻廣播中電子服務(wù)指南信息更新的實(shí)現(xiàn)方法,其特征在于,包括如下步驟A、建立電子服務(wù)指南的分段信息的目錄結(jié)構(gòu)鏈表;B、接收到容器文件之后,所述電子服務(wù)指南遍歷對(duì)比所述目錄結(jié)構(gòu)鏈表判斷更新類型;C、對(duì)發(fā)生改變的容器文件進(jìn)行解析,得到分段信息后送達(dá)服務(wù)應(yīng)用;D、對(duì)所述目錄結(jié)構(gòu)鏈表進(jìn)行更新。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟A進(jìn)一步包括, Al、接收初始化容器文件;A2、解析初始化容器文件中的目錄結(jié)構(gòu),建立所述電子服務(wù)指南的目錄 結(jié)構(gòu)鏈表,該目錄結(jié)構(gòu)鏈表中至少包括電子服務(wù)指南的容器標(biāo)識(shí)和容器版本。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B進(jìn)一步包括, 當(dāng)電子服務(wù)指南更新觸發(fā)時(shí),內(nèi)容投遞協(xié)議接收到新的文件投遞表,并將該文 件投遞表相應(yīng)的容器文件傳遞給電子服務(wù)指南。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B進(jìn)一步包括,將接收到的容器文 件的容器標(biāo)識(shí)和容器版本與所述目錄結(jié)構(gòu)鏈表中相應(yīng)的容器標(biāo)識(shí)和容器版本 進(jìn)行遍歷對(duì)比,如果兩者的容器標(biāo)識(shí)相等,容器版本也相等,則表明電子服務(wù)指南無更新; 如果兩者的容器標(biāo)識(shí)相等,但容器版本不相等,則表明該電子服務(wù)指南有 修改;如果兩者的容器標(biāo)識(shí)不相等,則表明該電子服務(wù)指南有增加。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述目錄結(jié)構(gòu)鏈表還包括 有査找標(biāo)識(shí),在所述步驟B進(jìn)行遍歷對(duì)比后,設(shè)置相關(guān)的査找標(biāo)識(shí),通過對(duì) 査找標(biāo)識(shí)的檢查,進(jìn)一步判斷電子服務(wù)指南是否存在刪除。
6、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟D之后進(jìn)一步包 括有步驟E,當(dāng)系統(tǒng)關(guān)機(jī)或重啟時(shí),釋放步驟A所建立的目錄結(jié)構(gòu)鏈表。
7、 根據(jù)權(quán)利要求1 6任一項(xiàng)所述的方法,其特征在于,所述步驟A中所建立的目錄結(jié)構(gòu)鏈表自上而下中包括有根節(jié)點(diǎn),包含所在的容器標(biāo)識(shí)和容器版本; 若干目錄節(jié)點(diǎn),各目錄節(jié)點(diǎn)中包含所在的容器標(biāo)識(shí); 若干子目錄節(jié)點(diǎn),各子目錄節(jié)點(diǎn)中包含所在的容器標(biāo)識(shí);和/或 若干分段節(jié)點(diǎn),各分段節(jié)點(diǎn)中包含數(shù)據(jù)分段標(biāo)識(shí)和數(shù)據(jù)分段版本。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟A中的各目錄節(jié) 點(diǎn)和/或子目錄節(jié)點(diǎn)中進(jìn)一步包括有節(jié)點(diǎn)標(biāo)識(shí)和査找標(biāo)識(shí),所述査找標(biāo)識(shí)用于 遍歷對(duì)比后確認(rèn)電子服務(wù)指南是否存在刪除。
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述步驟B進(jìn)一步包括, 步驟B1、如果接收到初始化容器文件,將該初始化容器文件的目錄結(jié)構(gòu)與步驟A所建立的目錄結(jié)構(gòu)鏈表進(jìn)行遍歷對(duì)比,依次比較根節(jié)點(diǎn)下面的目錄 節(jié)點(diǎn)、子目錄節(jié)點(diǎn)和/或分段節(jié)點(diǎn)來判斷電子服務(wù)指南的更新類型;步驟B2、如果接收到目錄容器文件,將該目錄容器文件的容器標(biāo)識(shí)和容 器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的目錄節(jié)點(diǎn)的容器標(biāo)識(shí)和容器版本 進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型;步驟B3、如果接收到子目錄容器文件,將該子目錄容器文件的容器標(biāo)識(shí) 和容器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的子目錄節(jié)點(diǎn)的容器標(biāo)識(shí)和容 器版本進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型;步驟B4、如果接收到數(shù)據(jù)容器文件,將該數(shù)據(jù)容器文件的容器標(biāo)識(shí)和容 器版本與步驟A所建立的目錄結(jié)構(gòu)鏈表中的分段節(jié)點(diǎn)的數(shù)據(jù)分段標(biāo)識(shí)和數(shù)據(jù) 分段版本進(jìn)行遍歷對(duì)比,以判斷電子服務(wù)指南的更新類型。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟C進(jìn)一步包括, 如果是目錄容器文件或子目錄容器文件發(fā)生改變,電子服務(wù)指南要求內(nèi)容投遞 協(xié)議傳輸目錄容器文件或子目錄容器文件包含的數(shù)據(jù)容器文件,并對(duì)該數(shù)據(jù)容 器文件進(jìn)行解析得到分段信息后送達(dá)服務(wù)應(yīng)用;如果是數(shù)據(jù)容器文件發(fā)生改變,對(duì)該數(shù)據(jù)容器文件進(jìn)行解析,得到相應(yīng)的 分段信息后送達(dá)服務(wù)應(yīng)用。
全文摘要
本發(fā)明公開了一種手持?jǐn)?shù)字視頻廣播中電子服務(wù)指南信息(ESG)更新的實(shí)現(xiàn)方法,包括A.建立ESG的分段信息的目錄結(jié)構(gòu)鏈表;B.接收到容器文件之后,所述ESG遍歷對(duì)比所述目錄結(jié)構(gòu)鏈表判斷更新類型;C.對(duì)發(fā)生改變的容器文件進(jìn)行解析,得到分段信息后送達(dá)服務(wù)應(yīng)用;D.對(duì)所述目錄結(jié)構(gòu)鏈表進(jìn)行更新。本發(fā)明只需遍歷對(duì)比該目錄結(jié)構(gòu)鏈表便可判斷ESG更新類型,并僅對(duì)發(fā)生改變的容器文件進(jìn)行解析,相對(duì)于對(duì)容器文件的全部遍歷和解析,為系統(tǒng)節(jié)省了大量的時(shí)間資源。本發(fā)明還可利用ESG初始化容器中的目錄結(jié)構(gòu)來建立ESG分段信息的目錄結(jié)構(gòu)鏈表,其避免了為保存ESG分段信息所用的額外內(nèi)存開銷,從而為系統(tǒng)節(jié)省了大量的內(nèi)存資源。
文檔編號(hào)H04N5/445GK101212602SQ20061017155
公開日2008年7月2日 申請(qǐng)日期2006年12月30日 優(yōu)先權(quán)日2006年12月30日
發(fā)明者剛 曹, 王澤民 申請(qǐng)人:中興通訊股份有限公司