两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)處理的方法及系統(tǒng)的制作方法

文檔序號:7716568閱讀:117來源:國知局
專利名稱:一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)處理的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及移動多媒體數(shù)據(jù)廣播技術(shù)領(lǐng)域,更具體地,涉及一種移動多 媒體數(shù)據(jù)廣播業(yè)務(wù)處理的方法及系統(tǒng)。
背景技術(shù)
近年來,數(shù)字移動多媒體廣播技術(shù)和標(biāo)準(zhǔn)發(fā)展迅速,例如歐洲的DVB-H (Digital Video Broadcast Handheld,數(shù)字視頻廣播手持式接收),美國的 MediaFLO( Media Forward Link Only,媒體單一前向鏈路)以及中國的CMMB (China Mobile Multimedia Broadcasting ,中國移動多媒體廣播)等。
數(shù)據(jù)廣播是移動多媒體廣播的一項(xiàng)增值業(yè)務(wù),擴(kuò)展并豐富了移動多媒體 廣播的業(yè)務(wù)內(nèi)容。制定數(shù)據(jù)廣播標(biāo)準(zhǔn)對于推動移動多媒體廣播業(yè)務(wù)的開展十 分重要。數(shù)據(jù)廣播以點(diǎn)到多點(diǎn)的廣播方式,傳輸多種信息內(nèi)容,包括視頻、 音頻、文本、圖片、網(wǎng)頁、軟件程序或者其他多々某體信息數(shù)據(jù)。通過數(shù)據(jù)廣 播業(yè)務(wù),可以為終端用戶提供各類信息服務(wù),如股票資訊、交通導(dǎo)航、氣象 服務(wù)、網(wǎng)站廣播等。
CMMB的數(shù)據(jù)業(yè)務(wù)分為流模式和文件模式兩種,流模式的數(shù)據(jù)業(yè)務(wù)以數(shù) 據(jù)流的方式提供,通常數(shù)據(jù)流的傳輸具有時(shí)序要求,傳輸時(shí)包含時(shí)間標(biāo)簽指 示或數(shù)據(jù)流內(nèi)部有同步要求;而文件模式的數(shù)據(jù)業(yè)務(wù)則以離散文件的方式提 供,數(shù)據(jù)的傳輸無時(shí)序要求。
文件模式的數(shù)據(jù)文件的分割封裝語法和XPE (extensible Protocol Encapsulation,可擴(kuò)展十辦i義去于裝)/XPE誦FEC ( extensible Protocol Encapsulation -Forward Error Correction,可擴(kuò)展協(xié)議封裝-前向糾錯(cuò))封裝語法處于不同的 協(xié)議層次,而流模式的數(shù)據(jù)可直接進(jìn)行XPE/XPE-FEC封裝,所以數(shù)據(jù)廣播 業(yè)務(wù)前端可使用獨(dú)立的設(shè)備完成數(shù)據(jù)文件發(fā)生和XPE封裝。示意圖,其中文件下載服務(wù)器,用于處理CMMB數(shù)據(jù)廣播系統(tǒng)接收到的文件模式數(shù) 據(jù),實(shí)現(xiàn)數(shù)據(jù)文件的分割和封裝,并向協(xié)議封裝器輪播數(shù)據(jù);數(shù)據(jù)廣播協(xié)議封裝器,是一種可擴(kuò)展的支持多種協(xié)議、多個(gè)業(yè)務(wù)的數(shù)據(jù) 封裝設(shè)備,用于將流數(shù)據(jù)和分割封裝的文件數(shù)據(jù)經(jīng)過XPE/XPE-FEC封裝后 適配到復(fù)用子幀的數(shù)據(jù)段中。數(shù)據(jù)廣播協(xié)議封裝器可以同時(shí)處理多路業(yè)務(wù),需要實(shí)時(shí)偵聽每路業(yè)務(wù)數(shù) 據(jù)并要求及時(shí)將數(shù)據(jù)處理并發(fā)送出去。目前暫沒有具體如何實(shí)施多路業(yè)務(wù)處 理的技術(shù)方案。同時(shí),在這個(gè)過程中,業(yè)務(wù)源的速率是可變的,這就有可能會造成數(shù)據(jù) 丟包,目前的技術(shù)主要采用基于窗口的擁塞控制,如應(yīng)用廣泛的網(wǎng)絡(luò)傳輸層 協(xié)議TCP及其若干變種等。 一般處理起來相對比較復(fù)雜,對于數(shù)據(jù)量大、實(shí) 時(shí)性要求較高的數(shù)據(jù)廣播業(yè)務(wù),需要一種處理相對方便、處理速度較快的 UPD擁塞控制機(jī)制。發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是提供一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)處理的方 法及系統(tǒng),為移動多媒體廣播系統(tǒng)提供實(shí)時(shí)、可靠的數(shù)據(jù)處理和穩(wěn)定的速率 控制。為了解決上述問題,本發(fā)明提供了一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)的處理 方法,包括根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),并為每路數(shù)據(jù)業(yè)務(wù)設(shè)置單獨(dú)的業(yè)務(wù)接收 單元、業(yè)務(wù)發(fā)送單元及共享緩存,對于每一路數(shù)據(jù)業(yè)務(wù)的處理包括所述業(yè)務(wù)接收單元接收數(shù)據(jù),并將接收到的數(shù)據(jù)保存到所述共享緩存的 尾部;所述業(yè)務(wù)發(fā)送單元從所述共享緩存的頭部讀取數(shù)據(jù)并發(fā)送。 進(jìn)一步地,上述方法還可具有如下特點(diǎn)所述業(yè)務(wù)接收單元設(shè)置最大緩存長度,接收到數(shù)據(jù)后,讀取所述共享緩 存的已使用緩存長度,并根據(jù)接收到數(shù)據(jù)的數(shù)據(jù)長度更新當(dāng)前的已使用緩存 長度,再判斷所述最大緩存長度與更新后的已使用緩存長度的差值是否小于 臨界值,如果是,則增大所述最大緩存長度,成功后,為接收到的數(shù)據(jù)分配緩存空間;所述業(yè)務(wù)發(fā)送單元如果發(fā)送數(shù)據(jù)成功,則從所述共享緩存中刪除該數(shù)據(jù), 并更新當(dāng)前的已使用緩存長度。進(jìn)一步地,上述方法還可具有如下特點(diǎn)所述業(yè)務(wù)接收單元將接收到的數(shù)據(jù)保存到所述共享緩存的尾部是指在 所述共享緩存中創(chuàng)建先入先出FIFO共享隊(duì)列指針,將接收到的數(shù)據(jù)保存到 所述共享隊(duì)列的隊(duì)尾;所述業(yè)務(wù)發(fā)送單元從所述共享緩存中的頭部讀取數(shù)據(jù)并發(fā)送是指從所 述共享隊(duì)列的隊(duì)首讀取數(shù)據(jù)并發(fā)送。進(jìn)一步地,上述方法還可具有如下特點(diǎn)如果增大所述最大緩存長度失敗,則將所述共享隊(duì)列的隊(duì)首指針后移, 并將隊(duì)首對應(yīng)元素所占的內(nèi)存刪除后,更新當(dāng)前的已使用緩存長度。進(jìn)一步地,上述方法還可具有如下特點(diǎn)所述臨界值的長度至少大于一個(gè)最大傳輸單元MTU。進(jìn)一步地,上述方法還可具有如下特點(diǎn)所述業(yè)務(wù)接收單元和所述業(yè)務(wù)發(fā)送單元通過對共享緩存加鎖實(shí)現(xiàn)數(shù)據(jù)同步。本發(fā)明還提供了 一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)的處理系統(tǒng),包括業(yè)務(wù)接 收單元、業(yè)務(wù)發(fā)送單元和共享緩存,所述業(yè)務(wù)接收單元進(jìn)一步包括數(shù)據(jù)接收模塊和緩存分配模塊,所述業(yè)務(wù)發(fā)送單元進(jìn)一步包括數(shù)據(jù)處理模塊和數(shù)據(jù)發(fā) 送模塊,其中所述數(shù)據(jù)接收模塊用于,根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),接收所述多路 數(shù)據(jù)業(yè)務(wù)中的一鴻教據(jù)業(yè)務(wù)的數(shù)據(jù),并將接收到的數(shù)據(jù)發(fā)送至所述緩存分配所述緩存分配模塊用于,將接收到的數(shù)據(jù)保存到所述共享緩存的尾部;所述數(shù)據(jù)處理模塊用于,從所述共享緩存的頭部讀取數(shù)據(jù),并對讀取的 數(shù)據(jù)進(jìn)行前向糾錯(cuò)FEC編碼標(biāo)志校驗(yàn),根據(jù)有無FEC編碼標(biāo)志對數(shù)據(jù)判斷 是否對其進(jìn)行FEC編碼,對通過校驗(yàn)的數(shù)據(jù)進(jìn)行封裝處理后,發(fā)送給所述數(shù) 據(jù)發(fā)送模塊;所述數(shù)據(jù)發(fā)送模塊用于,將封裝后的數(shù)據(jù)發(fā)送至目的地址。 進(jìn)一步地,上述系統(tǒng)還可具有如下特點(diǎn)所述緩存分配模塊通過以下方式將接收到的數(shù)據(jù)保存到所述共享緩存的 尾部在所述共享緩存中創(chuàng)建先入先出FIFO共享隊(duì)列指針,并將接收到的 數(shù)據(jù)保存到所述共享隊(duì)列的隊(duì)尾;所述數(shù)據(jù)處理模塊通過以下方式從所述共享緩存的頭部讀取數(shù)據(jù)從所 述共享隊(duì)列的隊(duì)首讀取數(shù)據(jù)并發(fā)送。進(jìn)一步地,上述系統(tǒng)還可具有如下特點(diǎn)所述緩存分配單元還用于,設(shè)置最大緩存長度,并在接收到數(shù)據(jù)后,讀 取所述共享緩存的已使用緩存長度,并根據(jù)接收到數(shù)據(jù)的數(shù)據(jù)長度更新當(dāng)前 的已使用緩存長度,再判斷所述最大緩存長度與更新后的已使用緩存長度的 差值是否小于臨界值,該臨界值的長度至少大于一個(gè)最大傳輸單元,如果是, 則增大所述最大緩存長度,成功后,為接收到的數(shù)據(jù)分配緩存空間;數(shù)據(jù)發(fā)送模塊還用于,在成功發(fā)送數(shù)據(jù)后,從所述共享緩存中刪除該數(shù) 據(jù),并更新當(dāng)前的已使用緩存長度。進(jìn)一步地,上述系統(tǒng)還可具有如下特點(diǎn)如果所述緩存分配單元增大所述最大緩存長度失敗,則將所述共享隊(duì)列 的隊(duì)首指針后移,并將隊(duì)首對應(yīng)元素所占的內(nèi)存刪除后,更新當(dāng)前的已使用 緩存長度。綜上所述,本發(fā)明通過在CMMB數(shù)據(jù)廣播系統(tǒng)中采用多路業(yè)務(wù)并行處理,使得協(xié)議封裝器實(shí)時(shí)處理業(yè)務(wù)的效率大大提高,將延時(shí)時(shí)間控制在了毫秒級以內(nèi);此外,本發(fā)明通過在CMMB數(shù)據(jù)廣播系統(tǒng)中采用擁塞控制機(jī)制,大大降低了it據(jù)的丟包率。此外,本發(fā)明的優(yōu)選實(shí)施例通過實(shí)時(shí)分配緩存,以及處理后及時(shí)釋放內(nèi) 存,提高了內(nèi)存的利用率;并且在分配緩存前對使用的緩存進(jìn)行校驗(yàn),進(jìn)一 步降低了數(shù)據(jù)的丟包,并在多數(shù)情況下能保證數(shù)據(jù)不丟包。本發(fā)明采用線程 ^/L制處理,實(shí)施簡單、可靠;此外,本發(fā)明提供的協(xié)議封裝器系統(tǒng)采用B/S 架構(gòu)來實(shí)現(xiàn),可方便用戶來管理業(yè)務(wù)和進(jìn)行擁塞控制的管理。


圖1為CMMB數(shù)據(jù)廣播系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例的數(shù)據(jù)廣播協(xié)議封裝器實(shí)現(xiàn)對多路業(yè)務(wù)進(jìn)行處理的 系統(tǒng)示意圖;圖3為本發(fā)明實(shí)施例的數(shù)據(jù)廣播協(xié)議封裝器單個(gè)業(yè)務(wù)管理控制的示意圖;圖4為本發(fā)明實(shí)施例的數(shù)據(jù)廣播協(xié)議封裝器針對單個(gè)業(yè)務(wù)的處理系統(tǒng)示 意圖;圖5為本發(fā)明實(shí)施例的數(shù)據(jù)廣播協(xié)議封裝器進(jìn)行擁塞控制的流程圖。
具體實(shí)施方式
本發(fā)明的核心思想是 根據(jù)源端口區(qū)分多路業(yè)務(wù),每路業(yè)務(wù)之間都是 分別單獨(dú)處理的,即每路業(yè)務(wù)都有業(yè)務(wù)接收單元和業(yè)務(wù)發(fā)送單元,并且接收 單元和發(fā)送單元并行執(zhí)行;此外,本發(fā)明分別為每路業(yè)務(wù)提供緩存,業(yè)務(wù)的 接收單元和發(fā)送單元共享緩存數(shù)據(jù),通過實(shí)時(shí)分配共享緩存空間進(jìn)行擁塞控 制,以提高內(nèi)存利用率,減少數(shù)據(jù)的丟包。具體地,本發(fā)明采用如下技術(shù)方案對每路業(yè)務(wù)進(jìn)行處理業(yè)務(wù)接收單元根據(jù)端口號接收每路業(yè)務(wù)的流數(shù)據(jù)或經(jīng)過分割封裝的文件數(shù)據(jù),將數(shù)據(jù)保存到緩存中;
業(yè)務(wù)發(fā)送單元從緩存中讀取數(shù)據(jù),根據(jù)是否進(jìn)行FEC編碼,進(jìn)行 XPE/XPE-FEC封裝,將封裝后的數(shù)據(jù)發(fā)往目的地址。
其中,目的地址是業(yè)務(wù)管理門戶配置并保存到數(shù)據(jù)庫中去的。
進(jìn)一步地,業(yè)務(wù)接收單元采用阻塞模式偵聽源端口,區(qū)分每if各業(yè)務(wù)。
其中,阻塞模式指的是socket以阻塞模式創(chuàng)建,阻塞模式下,程序在調(diào) 用接收函數(shù)時(shí)(如recv),如果沒有數(shù)據(jù)到達(dá),此函數(shù)會一直等待,即當(dāng)前線 程會被阻塞,直到有數(shù)據(jù)時(shí)才返回。
進(jìn)一步地,業(yè)務(wù)發(fā)送單元根據(jù)業(yè)務(wù)發(fā)送速率(即根據(jù)業(yè)務(wù)的帶寬來讀取 數(shù)據(jù),比如業(yè)務(wù)帶寬是128kbps,則會在每秒從內(nèi)存讀不超過128kbit的數(shù)據(jù) 包)從緩存中讀取數(shù)據(jù),對于讀取的每個(gè)數(shù)據(jù)包進(jìn)行標(biāo)志變量校驗(yàn),判斷是 否需要進(jìn)行FEC編碼,如果標(biāo)志為FEC編碼,則對緩存中的數(shù)據(jù)包進(jìn)行FEC 編碼,然后對編碼后的數(shù)據(jù)進(jìn)行XPE-FEC封裝。編碼數(shù)據(jù)及進(jìn)行過XPE-FEC 封裝過的數(shù)據(jù)無需放入緩存,先發(fā)XPE封裝后的源數(shù)據(jù),再發(fā)對應(yīng)的 XPE-FEC封裝后的編碼數(shù)據(jù)。目前CMMB數(shù)據(jù)廣播中FEC采用的是RS編 碼算法,編碼后的數(shù)據(jù)進(jìn)行XPE-FEC封裝后得到的數(shù)據(jù)包比XPE封裝的長 度要小。
進(jìn)一步地,業(yè)務(wù)接收單元和業(yè)務(wù)發(fā)送單元通過對共享數(shù)據(jù)區(qū)加鎖來實(shí)現(xiàn) 業(yè)務(wù)接收單元和業(yè)務(wù)發(fā)送單元的數(shù)據(jù)同步。
本發(fā)明還提供了一種移動多々某體數(shù)據(jù)廣播系統(tǒng)擁塞控制的方法,擁塞控 制在業(yè)務(wù)處理的基礎(chǔ)上進(jìn)行,包括以下步驟
業(yè)務(wù)接收單元校驗(yàn)緩存使用長度,為接收到的數(shù)據(jù)申請緩存空間,并保 存到共享緩存的尾部;
業(yè)務(wù)接收單元通過設(shè)置最大緩存長度,接收到數(shù)據(jù)后,讀取所述共享緩 存的已使用緩存長度,并根據(jù)接收到數(shù)據(jù)的數(shù)據(jù)長度更新當(dāng)前的已使用緩存 長度,再判斷所述最大緩存長度與更新后的已使用緩存長度的差值是否小于臨界值,如果是,則增大所述最大緩存長度,成功后,為接收到的數(shù)據(jù)分配 緩存空間。
業(yè)務(wù)發(fā)送單元根據(jù)業(yè)務(wù)發(fā)送速率來從共享緩存的頭部讀取數(shù)據(jù),如果發(fā) 送數(shù)據(jù)成功,則釋放數(shù)據(jù)緩存,更新援存使用長度。
下面以CMMB數(shù)據(jù)廣播中的協(xié)議封裝器為例,結(jié)合附圖對本發(fā)明具體 實(shí)施芳式作進(jìn)一步說明。
本發(fā)明實(shí)施例的業(yè)務(wù)處理方法中,對單個(gè)業(yè)務(wù)的處理流程的具體步驟如

步驟IOI,業(yè)務(wù)接收單元以阻塞模式循環(huán)偵聽源端口,當(dāng)接收到數(shù)據(jù)時(shí), 保存數(shù)據(jù),記錄數(shù)據(jù)長度;
步驟102,業(yè)務(wù)發(fā)送單元根據(jù)業(yè)務(wù)發(fā)送速率依次從共享隊(duì)列中讀取數(shù)據(jù)。 對于讀取的每個(gè)數(shù)據(jù)包,判斷是否進(jìn)行FEC編碼,如果需要進(jìn)行FEC編碼, 按照FEC算法對數(shù)據(jù)包進(jìn)行編碼,對源數(shù)據(jù)包進(jìn)行XPE封裝,對編碼數(shù)據(jù) 進(jìn)行XPE-FEC封裝,將XPE/XPE-FEC封裝完的數(shù)據(jù)包發(fā)往目的地址;如果 不需要進(jìn)行FEC編碼,則對取到的數(shù)據(jù)包進(jìn)行XPE封裝,將封裝完的數(shù)據(jù) 包發(fā)往目的地址。
通過將業(yè)務(wù)數(shù)據(jù)的處理放到業(yè)務(wù)發(fā)送單元處理,相對于放到業(yè)務(wù)接收單 元處理,可以更好的提高系統(tǒng)資源利用率和處理速度。
本發(fā)明實(shí)施例提供的業(yè)務(wù)處理系統(tǒng)如圖2所示,其中,對于文件^t式的 業(yè)務(wù),前端網(wǎng)絡(luò)指的是文件發(fā)生系統(tǒng),對于流才莫式的業(yè)務(wù),前端網(wǎng)絡(luò)可以是 股票、交通導(dǎo)航等系統(tǒng)。本實(shí)施例的業(yè)務(wù)處理系統(tǒng)具有如下特點(diǎn)
a、 協(xié)議封裝器釆用B/S架構(gòu),業(yè)務(wù)處理和擁塞控制可通過門戶來進(jìn)行 管理,門戶可通過JAVA實(shí)現(xiàn),門戶和后臺的通訊通過數(shù)據(jù)庫和內(nèi)部消息來 實(shí)現(xiàn),用戶只需簡單的熟悉門戶,便可以方便的實(shí)現(xiàn)對業(yè)務(wù)的控制;
b、 通過門戶來管理多路業(yè)務(wù),根據(jù)源端口區(qū)分多路業(yè)務(wù),每路業(yè)務(wù)單獨(dú)處理,可進(jìn)行業(yè)務(wù)的啟動、停止、修改以及刪除;
c、 每個(gè)業(yè)務(wù)都可以通過門戶來進(jìn)行擁塞控制,主要通過修改業(yè)務(wù)處理 及擁塞控制的參數(shù)實(shí)現(xiàn),如圖3所示,具體包括了 FEC編碼控制、業(yè)務(wù)緩存 控制、接收單元控制、發(fā)送單元控制、擁塞控制算法五個(gè)部分,其中,各部 分功能如下
FEC編碼控制部分包括是否進(jìn)行FEC編碼,選擇FEC編碼算法;
業(yè)務(wù)緩存控制部分提供對本業(yè)務(wù)的緩存最大長度的修改;
接收單元控制部分提供對業(yè)務(wù)數(shù)據(jù)接收端口和業(yè)務(wù)源地址的配置;
其中,業(yè)務(wù)數(shù)據(jù)接收端口是指所要接收的前端網(wǎng)絡(luò)發(fā)過來的文件數(shù)據(jù)或 流數(shù)據(jù)的目的端口 ,業(yè)務(wù)源地址可以是本機(jī)地址也可以是前端網(wǎng)絡(luò)發(fā)送到的 組播地址。
發(fā)送單元控制部分提供對業(yè)務(wù)發(fā)送速率、業(yè)務(wù)發(fā)送目的IP和業(yè)務(wù)發(fā)送目 的端口的配置;
其中,目的IP和目的端口是復(fù)用器中配置的地址和端口,復(fù)用器才艮據(jù)業(yè) 務(wù)的目的IP和端口接收相應(yīng)的業(yè)務(wù)數(shù)據(jù)。
擁塞控制算法部分可進(jìn)行控制算法的選擇,目前提供FIFO ( First In First Out,先入先出)算法。
圖4示出了本發(fā)明實(shí)施例的實(shí)現(xiàn)數(shù)據(jù)廣播協(xié)議封裝器單個(gè)業(yè)務(wù)處理流程 的系統(tǒng)示意圖,包括業(yè)務(wù)接收單元、業(yè)務(wù)發(fā)送單元和共享緩存,其中,業(yè)務(wù) 接收單元進(jìn)一步包括數(shù)據(jù)接收模塊和緩存分配模塊,所述業(yè)務(wù)發(fā)送單元進(jìn)一 步包括數(shù)據(jù)處理模塊和數(shù)據(jù)發(fā)送模塊,各模塊的主要作用如下
數(shù)據(jù)接收模塊用于,根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),實(shí)時(shí)接收一路數(shù)據(jù) 業(yè)務(wù)的數(shù)據(jù),并將接收到的數(shù)據(jù)發(fā)送至緩存分配模塊;
緩存分配模塊用于,將接收到的數(shù)據(jù)保存到共享緩存的尾部;
數(shù)據(jù)處理模塊用于,從共享緩存的頭部讀取數(shù)據(jù),并對讀取的數(shù)據(jù)進(jìn)行 FEC編碼標(biāo)志校驗(yàn),根據(jù)有無FEC編碼標(biāo)志對數(shù)據(jù)判斷是否對其進(jìn)行FEC編碼,對通過校驗(yàn)的數(shù)據(jù)進(jìn)行封裝處理后,發(fā)送給數(shù)據(jù)發(fā)送模塊; 數(shù)據(jù)發(fā)送模塊用于,將封裝后的數(shù)據(jù)發(fā)送至目的地址。
圖5描述了在CMMB數(shù)據(jù)廣播中協(xié)議封裝器在業(yè)務(wù)處理時(shí)進(jìn)行擁塞控 制的流程,具體步驟如下
步驟201,對每路業(yè)務(wù),在業(yè)務(wù)接收單元創(chuàng)建空的FIFO共享隊(duì)列指針;
步驟202,判斷是否進(jìn)行RS ( Reed-Solomon)編碼(RS是一種具體的 算法,可以實(shí)現(xiàn)FEC編碼功能),如果進(jìn)行RS編碼,則根據(jù)RS編碼算法 計(jì)算每個(gè)包的編碼數(shù)據(jù)長度,并設(shè)置RS編碼時(shí)可允許分配的最大內(nèi)存;如 果不進(jìn)行RS編碼,設(shè)置未RS編碼時(shí)可允許分配的最大內(nèi)存;
其中,由系統(tǒng)配置可允許分配的最大內(nèi)存(即最大緩存長度),并需分 別為每路業(yè)務(wù)進(jìn)行最大緩存長度設(shè)置。最大緩存長度可根據(jù)實(shí)際可用內(nèi)存大 小、最大并行業(yè)務(wù)數(shù)來設(shè)置,最大緩存長度的默認(rèn)值可從配置文件中讀取, 具體的配置可通過門戶和數(shù)據(jù)庫來修改。例如, 一個(gè)數(shù)據(jù)包的長度不能大于 MTU (Maximum Transmission Unit,最大傳專lr單元), 一般為1024或512 字節(jié),則最大緩存長度默認(rèn)可設(shè)為2M,如果此時(shí)包是1024字節(jié),這樣就可 以緩存2000個(gè)包。
步驟203,業(yè)務(wù)接收單元接收到數(shù)據(jù)后,讀取當(dāng)前已使用的共享緩存長 度,并根據(jù)接收到的數(shù)據(jù)長度更新已使用的共享緩存長度,如果當(dāng)前最大緩 存長度與更新后的已使用共享緩存長度的差值小于某臨界值,(該臨界值至 少大于一個(gè)MTU),則增加最大緩存,增加的長度可配置, 一般需保證大于 一個(gè)MTU,成功則分配內(nèi)存,如果失敗仍根據(jù)接收的數(shù)據(jù)長度分配內(nèi)存,同 時(shí)通知用戶;
步驟204,將數(shù)據(jù)保存到隊(duì)尾,如果步驟203最大緩存長度與新的共享 緩存長度小于某臨界值且增大緩存失敗,則將隊(duì)首指針后移N(N包括但不 限于10的正整數(shù))個(gè)元素,并刪掉隊(duì)首前N個(gè)元素所占的內(nèi)存,并更新當(dāng) 前已使用共享緩沖長度;
步驟205,業(yè)務(wù)發(fā)送單元每發(fā)送完一個(gè)數(shù)據(jù)后,從緩存中刪掉數(shù)據(jù),釋放內(nèi)存,并更新當(dāng)前已使用共享緩存長度。
由上可知,采用本發(fā)明的業(yè)務(wù)處理方法,可保證業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)、穩(wěn)定的 處理及傳輸。
此外,除應(yīng)用于CMMB系統(tǒng)外,本發(fā)明的方法同樣適用于其他移動多 媒體廣播系統(tǒng)。
權(quán)利要求
1、一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)的處理方法,其特征在于,包括根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),并為每路數(shù)據(jù)業(yè)務(wù)設(shè)置單獨(dú)的業(yè)務(wù)接收單元、業(yè)務(wù)發(fā)送單元及共享緩存,對于每一路數(shù)據(jù)業(yè)務(wù)的處理包括所述業(yè)務(wù)接收單元接收數(shù)據(jù),并將接收到的數(shù)據(jù)保存到所述共享緩存的尾部;所述業(yè)務(wù)發(fā)送單元從所述共享緩存的頭部讀取數(shù)據(jù)并發(fā)送。
2、 如權(quán)利要求l所述的方法,其特征在于,所述業(yè)務(wù)接收單元設(shè)置最大緩存長度,接收到數(shù)據(jù)后,讀取所述共享緩 存的已使用緩存長度,并根據(jù)接收到數(shù)據(jù)的數(shù)據(jù)長度更新當(dāng)前的已使用緩存 長度,再判斷所述最大緩存長度與更新后的已使用緩存長度的差值是否小于 臨界值,如果是,則增大所述最大緩存長度,成功后,為接收到的數(shù)據(jù)分配 緩存空間;所述業(yè)務(wù)發(fā)送單元如果發(fā)送數(shù)據(jù)成功,則從所述共享緩存中刪除該數(shù)據(jù), 并更新當(dāng)前的已使用緩存長度。
3、 如權(quán)利要求2所述的方法,其特征在于,所述業(yè)務(wù)接收單元將接收到的數(shù)據(jù)保存到所述共享緩存的尾部是指在 所述共享緩存中創(chuàng)建先入先出FIFO共享隊(duì)列指針,將接收到的數(shù)據(jù)保存到 所述共享隊(duì)列的隊(duì)尾;所述業(yè)務(wù)發(fā)送單元從所述共享緩存中的頭部讀取數(shù)據(jù)并發(fā)送是指從所 述共享隊(duì)列的隊(duì)首讀取數(shù)據(jù)并發(fā)送。
4、 如權(quán)利要求3所述的方法,其特征在于,如果增大所述最大緩存長度失敗,則將所述共享隊(duì)列的隊(duì)首指針后移, 并將隊(duì)首對應(yīng)元素所占的內(nèi)存刪除后,更新當(dāng)前的已使用緩存長度。
5、 如權(quán)利要求2至4之任一項(xiàng)所述的方法,其特征在于,所述臨界值的長度至少大于一個(gè)最大傳輸單元MTU。
6、 如權(quán)利要求1至4之任一項(xiàng)所述的方法,其特征在于, 所述業(yè)務(wù)接收單元和所述業(yè)務(wù)發(fā)送單元通過對共享緩存加鎖實(shí)現(xiàn)數(shù)據(jù)同步。
7、 一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)的處理系統(tǒng),其特征在于,包括業(yè)務(wù) 接收單元、業(yè)務(wù)發(fā)送單元和共享緩存,所述業(yè)務(wù)接收單元進(jìn)一步包括數(shù)據(jù)接 收模塊和緩存分配模塊,所述業(yè)務(wù)發(fā)送單元進(jìn)一步包括數(shù)據(jù)處理模塊和數(shù)據(jù) 發(fā)送模塊,其中所述數(shù)據(jù)接收模塊用于,根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),接收所述多路 數(shù)據(jù)業(yè)務(wù)中的一路數(shù)據(jù)業(yè)務(wù)的數(shù)據(jù),并將接收到的數(shù)據(jù)發(fā)送至所述緩存分配 模塊;所述緩存分配模塊用于,將接收到的數(shù)據(jù)保存到所述共享緩存的尾部;所述數(shù)據(jù)處理模塊用于,從所述共享緩存的頭部讀取數(shù)據(jù),并對讀取的 數(shù)據(jù)進(jìn)行前向糾錯(cuò)FEC編碼標(biāo)志校驗(yàn),根據(jù)有無FEC編碼標(biāo)志對數(shù)據(jù)判斷 是否對其進(jìn)行FEC編碼,對通過校驗(yàn)的數(shù)據(jù)進(jìn)行封裝處理后,發(fā)送給所述數(shù) 據(jù)發(fā)送模塊;所述數(shù)據(jù)發(fā)送模塊用于,將封裝后的數(shù)據(jù)發(fā)送至目的地址。
8、 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述緩存分配^t塊通過以下方式將接收到的數(shù)據(jù)保存到所述共享緩存的 尾部在所述共享緩存中創(chuàng)建先入先出FIFO共享隊(duì)列指針,并將接收到的 數(shù)據(jù)保存到所述共享隊(duì)列的隊(duì)尾;所述數(shù)據(jù)處理模塊通過以下方式從所述共享緩存的頭部讀取數(shù)據(jù)從所 述共享隊(duì)列的隊(duì)首讀取數(shù)據(jù)并發(fā)送。
9、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述緩存分配單元還用于,設(shè)置最大緩存長度,并在接收到數(shù)據(jù)后,讀 取所述共享緩存的已使用緩存長度,并根據(jù)接收到數(shù)據(jù)的數(shù)據(jù)長度更新當(dāng)前的已使用緩存長度,再判斷所述最大緩存長度與更新后的已使用緩存長度的 差值是否小于臨界值,該臨界值的長度至少大于一個(gè)最大傳輸單元,如果是,則增大所述最大緩存長度,成功后,為接收到的數(shù)據(jù)分配緩存空間;數(shù)據(jù)發(fā)送模塊還用于,在成功發(fā)送數(shù)據(jù)后,從所述共享緩存中刪除該數(shù) 據(jù),并更新當(dāng)前的已使用緩存長度。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,如果所述緩存分配單元增大所述最大緩存長度失敗,則將所述共享隊(duì)列 的隊(duì)首指針后移,并將隊(duì)首對應(yīng)元素所占的內(nèi)存刪除后,更新當(dāng)前的已使用 緩存長度。
全文摘要
本發(fā)明公開了一種移動多媒體數(shù)據(jù)廣播業(yè)務(wù)的處理方法及系統(tǒng),所述方法包括根據(jù)端口號區(qū)分多路數(shù)據(jù)業(yè)務(wù),并為每路數(shù)據(jù)業(yè)務(wù)設(shè)置單獨(dú)的業(yè)務(wù)接收單元、業(yè)務(wù)發(fā)送單元及共享緩存;其中,對于每一路數(shù)據(jù)業(yè)務(wù)的處理包括所述業(yè)務(wù)接收單元接收數(shù)據(jù),并將接收到的數(shù)據(jù)保存到所述共享緩存的尾部;所述業(yè)務(wù)發(fā)送單元從所述共享緩存的頭部讀取數(shù)據(jù)并發(fā)送。本發(fā)明通過在CMMB數(shù)據(jù)廣播系統(tǒng)中采用多路業(yè)務(wù)并行處理,使得協(xié)議封裝器實(shí)時(shí)處理業(yè)務(wù)的效率大大提高,將延時(shí)時(shí)間控制在毫秒級以內(nèi);此外,本發(fā)明通過在CMMB數(shù)據(jù)廣播系統(tǒng)中采用擁塞控制機(jī)制,大大降低了數(shù)據(jù)的丟包率。
文檔編號H04L12/56GK101656682SQ200910203768
公開日2010年2月24日 申請日期2009年6月12日 優(yōu)先權(quán)日2009年6月12日
發(fā)明者峰 王 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
青岛市| 军事| 梨树县| 达州市| 江油市| 资兴市| 连江县| 固原市| 景德镇市| 岳普湖县| 大新县| 武隆县| 格尔木市| 嘉峪关市| 澜沧| 秦安县| 会同县| 泰安市| 永吉县| 淄博市| 阿拉善盟| 夹江县| 康保县| 墨脱县| 屏边| 道真| 三江| 扎赉特旗| 突泉县| 体育| 鄂尔多斯市| 江山市| 曲松县| 台南市| 平安县| 清河县| 洛宁县| 乌兰县| 金川县| 湄潭县| 青海省|