張定京,金 鑫,王 穎,趙良福,陳德林
(國(guó)家廣播電影電視總局廣播科學(xué)研究院,北京 100045)
中國(guó)移動(dòng)多媒體廣播(CMMB),作為信息傳播的一種新興媒體形式,目前已經(jīng)成為國(guó)內(nèi)信息產(chǎn)業(yè)的發(fā)展熱點(diǎn),是今后廣播電視事業(yè)發(fā)展的新的重要領(lǐng)域。移動(dòng)多媒體廣播業(yè)務(wù)是指通過(guò)衛(wèi)星和地面無(wú)線廣播方式,在手機(jī)、PDA、MP3、MP4、數(shù)碼相機(jī)、筆記本式計(jì)算機(jī)等7 in以下的小屏幕、移動(dòng)便攜手持式終端上,實(shí)現(xiàn)隨時(shí)隨地接收廣播電視節(jié)目收視與信息服務(wù)[1]。
在CMMB系統(tǒng)中,數(shù)據(jù)廣播是指除音視頻基本業(yè)務(wù)之外的一種利用CMMB廣播信道傳輸數(shù)據(jù)流或數(shù)據(jù)文件的增值業(yè)務(wù)。數(shù)據(jù)廣播可以傳輸多種信息內(nèi)容,包括視頻、音頻、文本、圖片、網(wǎng)頁(yè)、業(yè)務(wù)流或其他多媒體信息數(shù)據(jù)。因此,CMMB數(shù)據(jù)廣播可為用戶提供除廣播電視節(jié)目之外的其他多種個(gè)性化服務(wù),擴(kuò)展并豐富了移動(dòng)多媒體廣播的業(yè)務(wù)內(nèi)容,對(duì)推動(dòng)移動(dòng)多媒體廣播事業(yè)的發(fā)展起到越來(lái)越重要的作用。
CMMB數(shù)據(jù)廣播分為流模式和文件模式兩種。若數(shù)據(jù)業(yè)務(wù)以離散數(shù)據(jù)文件的方式展現(xiàn),通常無(wú)時(shí)序要求、傳輸無(wú)時(shí)間標(biāo)簽指示或同步要求,則采用文件模式進(jìn)行處理[2]。目前,CMMB數(shù)據(jù)廣播業(yè)務(wù)已在國(guó)內(nèi)多個(gè)城市進(jìn)行試播,其中在北京試播的數(shù)據(jù)廣播業(yè)務(wù)主要有:智能交通誘導(dǎo)、實(shí)時(shí)股票財(cái)經(jīng)、電子雜志、精選短視頻、網(wǎng)頁(yè)推送等[2]。其中電子雜志、精選短視頻、網(wǎng)頁(yè)推送等業(yè)務(wù)實(shí)時(shí)性要求不高,具有文件模式業(yè)務(wù)的特點(diǎn),所以采用數(shù)據(jù)廣播的文件模式進(jìn)行處理,而數(shù)據(jù)廣播文件發(fā)生器可作為文件模式業(yè)務(wù)傳輸?shù)耐ㄓ闷脚_(tái)實(shí)現(xiàn)這些服務(wù)。
2008年9月16日,國(guó)家廣電總局科技司發(fā)布GD/J024—2008《移動(dòng)多媒體廣播數(shù)據(jù)廣播文件發(fā)生器與XPE封裝機(jī)技術(shù)要求和測(cè)量方法》這一廣播電影電視行業(yè)暫行技術(shù)文件,該技術(shù)文件規(guī)定了數(shù)據(jù)廣播文件發(fā)生器與XPE封裝機(jī)的各項(xiàng)技術(shù)要求和測(cè)量方法[3]。筆者依據(jù)該技術(shù)文件及其他CMMB相關(guān)標(biāo)準(zhǔn),開(kāi)發(fā)完成了CMMB數(shù)據(jù)廣播文件發(fā)生器,并用于廣電總局開(kāi)展的移動(dòng)多媒體廣播系統(tǒng)技術(shù)實(shí)驗(yàn)。
本文中,筆者將依據(jù)GY/T 220.5—2008標(biāo)準(zhǔn)[2]和相關(guān)技術(shù)文件,介紹CMMB數(shù)據(jù)廣播文件發(fā)生器的方案設(shè)計(jì)和功能模塊組成,并以主要模塊為例,分析CMMB數(shù)據(jù)廣播文件發(fā)生器的實(shí)現(xiàn)過(guò)程及涉及的關(guān)鍵技術(shù)。
GD/J024—2008技術(shù)文件[3]描繪了CMMB數(shù)據(jù)廣播文件發(fā)生器的功能框圖,如圖1所示。
圖1 數(shù)據(jù)廣播文件發(fā)生器的功能框圖
數(shù)據(jù)廣播文件發(fā)生器主要功能包括輸入、文件分割封裝、輸出等。輸入模塊通過(guò)光驅(qū)、USB或以太網(wǎng),將數(shù)據(jù)文件上載至數(shù)據(jù)廣播文件發(fā)生器;文件分割模塊將數(shù)據(jù)文件分割成等長(zhǎng)的文件片,多個(gè)文件片組成一個(gè)文件塊;糾刪編碼模塊對(duì)文件塊進(jìn)行糾刪編碼生成糾刪檢驗(yàn)塊,糾刪校驗(yàn)塊分割為糾刪校驗(yàn)片;文件屬性表 (File Attribute Table,F(xiàn)AT)生成模塊根據(jù)待播數(shù)據(jù)文件的數(shù)量、屬性、傳輸參數(shù)等信息,生成FAT文件;數(shù)據(jù)封裝模塊主要是對(duì)FAT片、文件片和糾刪校驗(yàn)片進(jìn)行封裝,分別生成FAT片傳輸包、文件片傳輸包和糾刪校驗(yàn)片傳輸包;輸出模塊按照設(shè)定的發(fā)送碼率,采用UDP協(xié)議將封裝完成的文件模式傳輸包輸出給后級(jí)設(shè)備。
上述模塊中,文件分割、糾刪編碼和FAT生成模塊在設(shè)計(jì)上較為復(fù)雜,筆者將在下一章中以此3個(gè)模塊為重點(diǎn),結(jié)合實(shí)例,詳細(xì)分析數(shù)據(jù)廣播文件發(fā)生器的實(shí)現(xiàn)過(guò)程以及涉及到的技術(shù)細(xì)節(jié)。
數(shù)據(jù)文件在進(jìn)行分割之前,首先應(yīng)確定編碼類型(是否采用壓縮編碼)。如需壓縮,則應(yīng)先生成源文件的壓縮文件后,對(duì)壓縮文件進(jìn)行分割。分割形式如圖2所示。
圖2 數(shù)據(jù)文件分割示意圖
文件分割參數(shù)計(jì)算如下[2]
式中:ceil()為向上取整運(yùn)算;floor()為向下取整運(yùn)算。 若 KA=KB,則 ZA=Z。 否則,ZA=(Kt-KB×Z)/(KA-KB),ZB=Z-ZA。
下面以文件“a.jpeg”和“b.wmv”為例,進(jìn)一步說(shuō)明以上公式和參數(shù)的含義(見(jiàn)表1)。
表1 文件分割參數(shù)舉例
當(dāng)一個(gè)數(shù)據(jù)文件被分割成多個(gè)等長(zhǎng)的文件片時(shí),如果 Kt×T>F,則在最后一個(gè)文件片的結(jié)尾處填補(bǔ)(Kt×T-F)個(gè)填充字節(jié)(填充值為“0”)。CMMB終端在接收數(shù)據(jù)廣播文件模式業(yè)務(wù)時(shí),要確定待接收文件在傳輸中是否被填充,可通過(guò)分析FAT文件的內(nèi)容信息和分割信息來(lái)判斷。首先應(yīng)確定文件的有效長(zhǎng)度F,如果該文件未經(jīng)過(guò)壓縮 (file_encoding=0)[2], 則F為file_length的值,否則為file_encoding_length的值[1]。然后計(jì)算文件實(shí)際傳輸?shù)拈L(zhǎng)度 F′,方法為
如果F′>F,說(shuō)明該文件在最后1個(gè)文件塊的最后1個(gè)文件片有填充字節(jié)。當(dāng)終端接收到最后1個(gè)文件片時(shí),應(yīng)將文件片尾部的(F′-F)個(gè)填充字節(jié)丟棄,將剩余有效數(shù)據(jù)保存或?qū)懭胛募?/p>
糾刪編碼是一種前向糾刪碼,可糾正刪除錯(cuò)誤,被用于恢復(fù)在傳輸信道中丟失的數(shù)據(jù)。CMMB數(shù)據(jù)廣播文件模式采用的就是糾刪碼方法,來(lái)保證數(shù)據(jù)實(shí)時(shí)可靠的傳輸,其中糾刪碼采用低密度生成矩陣碼 (Low Density Generator-matrix Code,LDGC)[2]。
數(shù)據(jù)文件進(jìn)行糾刪編碼時(shí)按文件塊進(jìn)行,得到糾刪校驗(yàn)塊,糾刪校驗(yàn)塊再劃分成若干與文件片等長(zhǎng)的糾刪校驗(yàn)片,糾刪校驗(yàn)片與文件片連續(xù)編號(hào)[2],如圖3a所示。
CMMB終端在接收數(shù)據(jù)文件時(shí),如果在文件片傳輸層的低層協(xié)議層檢測(cè)到錯(cuò)誤,即可擴(kuò)展協(xié)議封裝包(eXtensible Protocol Encapsulation,XPE)[1]包出現(xiàn)誤碼,并且對(duì)XPE包數(shù)據(jù)進(jìn)行前向糾錯(cuò)也無(wú)法糾正錯(cuò)誤時(shí),該XPE包將被拋棄,其所承載的數(shù)據(jù)也隨之丟失。丟失的位置是隨機(jī)的,既可能是文件片,也可能是糾刪校驗(yàn)片。在文件片傳輸層將表現(xiàn)為某個(gè)文件塊內(nèi)的文件片序號(hào)不連續(xù)且無(wú)法收齊,如圖3b所示。
如果出現(xiàn)上述情況,終端可利用糾刪校驗(yàn)片恢復(fù)丟失的文件片。終端需記錄下該文件塊的文件片/糾刪校驗(yàn)片的丟失位置,將組合后的文件塊和糾刪校驗(yàn)塊一起進(jìn)行糾刪解碼,如果文件片丟失數(shù)目在有效糾刪范圍內(nèi),文件塊中所有文件片的數(shù)據(jù)將全部被恢復(fù)出來(lái)[4],如圖3c所示。
圖3 文件片/糾刪校驗(yàn)片圖示
糾刪校驗(yàn)塊的數(shù)據(jù)是對(duì)文件塊進(jìn)行糾刪編碼(LDGC編碼)后生成,有關(guān)糾刪編碼相關(guān)參數(shù)計(jì)算如下
下面以表1中的文件B(b.wmv)為例,說(shuō)明各參數(shù)的含義(見(jiàn)表 2)。
表2 糾刪校驗(yàn)塊大小計(jì)算舉例
3.3.1 FAT生成
FAT文件用于描述數(shù)據(jù)業(yè)務(wù)所包含的數(shù)據(jù)文件的構(gòu)成、路徑、分割參數(shù)等信息[2]。FAT文件中各個(gè)元素的值需根據(jù)待播數(shù)據(jù)文件的數(shù)量、路徑、屬性、傳輸參數(shù)等信息而定。在生成FAT文件之前,需先獲取、計(jì)算并保存有關(guān)參數(shù),F(xiàn)AT生成的基本流程見(jiàn)圖4。
圖4 FAT生成流程示意圖
下面以表1中的文件B(b.wmv)為例,說(shuō)明FAT文件的具體內(nèi)容。其中,文件所在相對(duì)路徑為“b”,數(shù)據(jù)文件編碼方式為GZIP壓縮,糾刪編碼算法為L(zhǎng)DGC編碼,冗余開(kāi)銷為25%。圖5為根據(jù)文件“b.wmv”生成的FAT文件實(shí)例。
圖5 FAT文件XML實(shí)例
3.3.2 FAT分割與傳輸
同數(shù)據(jù)文件一樣,F(xiàn)AT文件也需要分割后再進(jìn)行傳輸。FAT文件分割成FAT片,對(duì)FAT片進(jìn)行封裝,生成FAT片傳輸包,語(yǔ)法結(jié)構(gòu)見(jiàn)圖6[2]。
圖6 FAT片傳輸包的語(yǔ)法結(jié)構(gòu)
由圖6可以看出,F(xiàn)AT文件最多可以被分成256片(最后片序號(hào)為8位),F(xiàn)AT片的長(zhǎng)度為N byte(最大值為4 095 byte),通過(guò)FAT片傳輸包傳輸?shù)腇AT文件最大長(zhǎng)度為M byte(256×N)。FAT片長(zhǎng)度一般與數(shù)據(jù)文件的文件片長(zhǎng)度等長(zhǎng),以便控制輸出碼率的穩(wěn)定。
如果原始FAT文件較大,文件長(zhǎng)度超出M值,F(xiàn)AT片傳輸包將無(wú)法完整傳輸FAT文件。這種情況下,F(xiàn)AT文件需要進(jìn)行壓縮編碼以縮短文件長(zhǎng)度,壓縮編碼方式可采用GZIP算法。壓縮后的FAT文件的長(zhǎng)度一般可比原始FAT文件縮小幾倍到幾十倍。FAT文件如經(jīng)過(guò)壓縮,被分割、封裝生成FAT片傳輸包,其中的“編碼類型”字段的值要設(shè)為“1”(GZIP 壓縮)。
當(dāng)數(shù)據(jù)廣播文件模式業(yè)務(wù)發(fā)送的文件發(fā)生變化時(shí),F(xiàn)AT文件需要重新生成,文件片傳輸包和FAT片傳輸包也需要重新封裝,其中多個(gè)代表更新標(biāo)志的字段必須變更,以便于終端能及時(shí)發(fā)現(xiàn)文件業(yè)務(wù)的變化,進(jìn)行相應(yīng)處理。更新標(biāo)志字段包括:
1)MaxVersion,為FAT文件中的FAT元素大版本號(hào)屬性。若大版本號(hào)變化,終端需要重新構(gòu)建資源標(biāo)識(shí)與文件的對(duì)應(yīng)關(guān)系。
2)MinVersion為FAT文件中的FAT元素小版本號(hào)屬性。若僅有小版本號(hào)變化,資源標(biāo)識(shí)與文件的對(duì)應(yīng)關(guān)系保持不變。
3)UpdateIndex為FAT文件中的FAI元素更新序號(hào)屬性。
4)文件片“更新序號(hào)”,即文件片/糾刪檢驗(yàn)片傳輸包語(yǔ)法中的更新標(biāo)志,與“UpdateIndex”一致,要聯(lián)動(dòng)變更。
5)FAT片“更新序號(hào)”,即FAT片傳輸包語(yǔ)法中的更新標(biāo)志,表示FAT信息發(fā)生變化。
表3為歸納的幾種主要更新標(biāo)志字段需要變更的情況。表3中,“√”表示當(dāng)數(shù)據(jù)廣播文件業(yè)務(wù)出現(xiàn)最左列描述的情況時(shí),該更新標(biāo)志字段要變更(循環(huán)遞增加1)。
表3 更新標(biāo)志字段變更表
目前,在移動(dòng)多媒體廣播系統(tǒng)中,除廣播電視節(jié)目之外的其他多種個(gè)性化服務(wù)都需要在數(shù)據(jù)廣播平臺(tái)上展開(kāi),多元化的服務(wù)內(nèi)容將是CMMB品牌的新的業(yè)務(wù)增長(zhǎng)點(diǎn)。接下來(lái),CMMB還將不斷推出新的數(shù)據(jù)廣播增值業(yè)務(wù),如精彩游戲、生活資訊、打折信息等服務(wù),這些服務(wù)都可以采用文件模式進(jìn)行處理,因此數(shù)據(jù)廣播文件發(fā)生器將在這些服務(wù)中發(fā)揮重要的作用。
筆者開(kāi)發(fā)的CMMB數(shù)據(jù)廣播文件發(fā)生器,已在CMMB前端播出平臺(tái)中得到應(yīng)用,經(jīng)過(guò)使用,運(yùn)行良好,對(duì)促進(jìn)CMMB前期實(shí)驗(yàn)工作的開(kāi)展起到一定積極作用。
[1]解偉.移動(dòng)多媒體廣播(CMMB)技術(shù)與發(fā)展[J].電視技術(shù),2008,32(4):4-7.
[2]GY/T 220.5—2008,移動(dòng)多媒體廣播 第5部分:數(shù)據(jù)廣播[S].2008.
[3]GD/J024—2008,移動(dòng)多媒體廣播數(shù)據(jù)廣播文件發(fā)生器與XPE封裝機(jī)技術(shù)要求和測(cè)量方法[S].2008.
[4]慕建君,路成業(yè),王新梅.關(guān)于糾刪碼的研究與進(jìn)展[J].電子與信息學(xué)報(bào),2002(9):1276-1281.