袁三男,王紹徐
(上海電力學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,上海 200090)
責(zé)任編輯:孫 卓
中國(guó)移動(dòng)多媒體廣播(China Mobile Multimedia Broadcasting,CMMB)采用天地一體、星網(wǎng)結(jié)合、統(tǒng)一標(biāo)準(zhǔn)、全國(guó)漫游的技術(shù)體系,通過大功率S波段衛(wèi)星和地面增補(bǔ)轉(zhuǎn)發(fā),形成全程全網(wǎng)無縫覆蓋的傳播系統(tǒng),建成全國(guó)統(tǒng)一的移動(dòng)多媒體廣播電視傳輸網(wǎng)絡(luò),目前支持25套電視節(jié)目和30套廣播節(jié)目[1]。從2006年起廣電總局陸續(xù)頒布了CMMB系統(tǒng)的各個(gè)標(biāo)準(zhǔn),其核心的傳輸技術(shù)采用中國(guó)自主研發(fā)的衛(wèi)星地面交互式多業(yè)務(wù)體系(STIMI)標(biāo)準(zhǔn)[2]?;跁r(shí)隙及復(fù)用的幀結(jié)構(gòu)如圖1所示,每1 s為1幀,每幀40個(gè)時(shí)隙,即40個(gè)復(fù)用幀,其中第0時(shí)隙是控制邏輯信道,其他1~39時(shí)隙為業(yè)務(wù)邏輯信道。目前已有學(xué)者對(duì)CMMB碼流進(jìn)行了部分研究[3]。本文針對(duì)CMMB的廣泛應(yīng)用,特別是對(duì)于CMMB碼流的解復(fù)用播放、CMMB信號(hào)監(jiān)測(cè)等領(lǐng)域,按照CMMB標(biāo)準(zhǔn)[4-6],提出了用嵌入式系統(tǒng)進(jìn)行CMMB碼流的分析,并實(shí)時(shí)將監(jiān)測(cè)結(jié)果通過網(wǎng)絡(luò)傳出。
CMMB中沒有采用國(guó)際上通用的TS流,而是采用了由中國(guó)自主研發(fā)的MFS流技術(shù)。MFS專門針對(duì)窄帶傳輸設(shè)計(jì),效率可高達(dá)95%以上,這對(duì)于帶寬需求敏感的移動(dòng)電視非常重要。此外,MFS復(fù)用協(xié)議還能靈活支持各種音/視頻流、數(shù)據(jù)承載等業(yè)務(wù),并且支持多路業(yè)務(wù)再?gòu)?fù)用,容錯(cuò)設(shè)計(jì)以及具有可擴(kuò)展性,如支持短時(shí)間業(yè)務(wù)和持續(xù)業(yè)務(wù)的組合。前者可以將多個(gè)時(shí)隙并在一起,形成高速下載等功能。
在CMMB中,系統(tǒng)主要傳輸音頻、視頻、數(shù)據(jù)和電子業(yè)務(wù)指南等信息,這些信息的傳輸通過時(shí)分復(fù)用來實(shí)現(xiàn)(見圖1),每個(gè)廣播信道幀分為n個(gè)復(fù)用幀,每個(gè)復(fù)用幀又分為若干個(gè)復(fù)用子幀。復(fù)用幀編號(hào)從0~39重復(fù),稱為MF_ID,其中第0個(gè)復(fù)用幀規(guī)定用于傳輸控制信息,其他復(fù)用幀傳輸業(yè)務(wù)信息。
復(fù)用幀由復(fù)用幀頭和凈荷構(gòu)成,復(fù)用幀頭和復(fù)用凈荷結(jié)構(gòu)如圖2~4所示。
圖2表示了整個(gè)復(fù)用幀頭的結(jié)構(gòu),其中最主要的信息為分隔符或起始碼0x00000001、復(fù)用標(biāo)識(shí)(即MF_ID號(hào))、版本信息、網(wǎng)絡(luò)信息和有關(guān)表序號(hào)。圖3表示MF_ID為0的復(fù)用凈荷結(jié)構(gòu),主要為各類控制信息表。圖4表示MF_ID不為0的復(fù)用凈荷,實(shí)際上為承載業(yè)務(wù),即視音頻及數(shù)據(jù)等。視頻段主要承載視頻業(yè)務(wù)參數(shù)和視頻數(shù)據(jù),由視頻段頭和多個(gè)視頻單元組成,音頻段主要承載音頻業(yè)務(wù)參數(shù)和音頻數(shù)據(jù),由音頻段頭和多個(gè)音頻單元組成。數(shù)據(jù)段主要承載數(shù)據(jù)業(yè)務(wù)參數(shù)和數(shù)據(jù),由數(shù)據(jù)段頭和多個(gè)數(shù)據(jù)單元組成,具體格式如系統(tǒng)軟件設(shè)計(jì)流程所述。
本系統(tǒng)采用CMMB解調(diào)電路及PowerPC平臺(tái)實(shí)現(xiàn)CMMB碼流的分析,其硬件框圖如圖5所示。CMMB解調(diào)電路采用思亞諾公司的SMS1180,該電路專為CMMB標(biāo)準(zhǔn)設(shè)計(jì),高度集成了數(shù)字調(diào)諧器、解調(diào)器和各類接口控制器,性價(jià)比高,功耗低。對(duì)于僅實(shí)現(xiàn)移動(dòng)數(shù)字電視而言,也可采用泰合志恒TP30系列芯片、創(chuàng)毅視訊IF系列CMMB芯片等[7],但是這些電路輸出的MFS流不是完整的,只能選取某個(gè)節(jié)目的相關(guān)復(fù)用幀。SMS1180能一次同時(shí)輸出40個(gè)復(fù)用幀的全部數(shù)據(jù),對(duì)于碼流分析而言是最佳的。PowerPC為AMCC公司的高性能PowerPC處理器PPC440EPX。該芯片采用高性能的RISC處理器,集成了豐富的外圍接口控制器,性價(jià)比高于x86,ARM,MIPS,同時(shí)該芯片集成了浮點(diǎn)運(yùn)算單元(FPU),具有內(nèi)置SRAM,DDR SDRAM,NAND Flash,PCI,DMA,MAL,UART,SPI和I2C等控制器,以及千兆以太網(wǎng)接口,運(yùn)算速度快。本文使用NOR Flash,容量為64 Mbyte,用于存儲(chǔ)Linux內(nèi)核、根文件系統(tǒng)、U-Boot引導(dǎo)加載程序和應(yīng)用程序。天線接收CMMB電視信號(hào)后送入SMS1180模塊,經(jīng)處理后通過SPI接口輸出標(biāo)準(zhǔn)的完整MFS流到后端Pow?erPC,PowerPC在Linux OS下進(jìn)行MFS碼流的分析解析。
本文在PowerPC平臺(tái)上采用Linux操作系統(tǒng)進(jìn)行CMMB的碼流分析,其軟件框圖如圖6所示。MFS數(shù)據(jù)流分析為其應(yīng)用程序,按照碼流復(fù)用協(xié)議[8],分析解析流程如圖7所示。從收到的碼流中搜索復(fù)用幀起始碼0x00000001,然后按照?qǐng)D2復(fù)用幀頭結(jié)構(gòu)進(jìn)行復(fù)用幀頭解析。如果當(dāng)前MD_IF為0,則為控制信息幀,否則為業(yè)務(wù)幀。
復(fù)用幀0控制信息的分析如圖8所示,按照表標(biāo)識(shí)進(jìn)行,其中網(wǎng)絡(luò)信息表NIT描述了該網(wǎng)絡(luò)的相關(guān)信息,為NIT表更新序號(hào)4 bit,保留字段4 bit,系統(tǒng)時(shí)間40 bit,國(guó)家碼24 bit,網(wǎng)絡(luò)級(jí)別4 bit,網(wǎng)絡(luò)號(hào)12 bit,網(wǎng)絡(luò)名稱長(zhǎng)度N1(8 bit),網(wǎng)絡(luò)名稱,頻點(diǎn)編號(hào)8 bit,中心頻率32 bit,帶寬4 bit,保留4 bit,網(wǎng)絡(luò)其他頻點(diǎn)數(shù)量N2(4 bit),對(duì)應(yīng)N2個(gè)頻率情況(頻點(diǎn)編號(hào)8 bit,中心頻率32 bit,帶寬4位,保留4 bit),鄰區(qū)網(wǎng)絡(luò)數(shù)量N3(4 bit),保留4 bit,對(duì)應(yīng)N3個(gè)鄰區(qū)網(wǎng)絡(luò)信息(鄰區(qū)網(wǎng)絡(luò)級(jí)別4 bit,鄰區(qū)網(wǎng)絡(luò)號(hào)12 bit,基本載頻的頻點(diǎn)編號(hào)8 bit,中心頻率32 bit,帶寬4 bit,保留字段4 bit)和CRC_32。
持續(xù)業(yè)務(wù)和短時(shí)間業(yè)務(wù)復(fù)用配置表除表標(biāo)識(shí)號(hào)不同外,其他參數(shù)都相同,分別描述了一定時(shí)間內(nèi)的每個(gè)持續(xù)業(yè)務(wù)和短時(shí)間業(yè)務(wù)復(fù)用幀配置的信息,包括頻點(diǎn)編號(hào)8 bit,復(fù)用配置表更新序號(hào)4 bit,保留6 bit,復(fù)用幀數(shù)量N1(6 bit),N1個(gè)復(fù)用幀信息(復(fù)用幀標(biāo)識(shí)6 bit,RS 碼速率 2 bit,字節(jié)交織模式2 bit,LDPC編碼速率2 bit,調(diào)制方式2 bit,保留1 bit,擾碼方式3 bit,時(shí)隙個(gè)數(shù)N2(6 bit),N2個(gè)時(shí)隙信息(時(shí)隙號(hào)6 bit,保留2 bit),保留 4 bit,復(fù)用子幀數(shù)量N3(4 bit),N3個(gè)復(fù)用子幀信息(復(fù)用子幀號(hào)4位,保留4 bit,業(yè)務(wù)標(biāo)識(shí)16 bit))和CRC_32。
持續(xù)業(yè)務(wù)和短時(shí)間業(yè)務(wù)配置表除表標(biāo)識(shí)號(hào)不同外,其他參數(shù)相同,分別描述了本網(wǎng)絡(luò)的所有持續(xù)業(yè)務(wù)和短時(shí)間業(yè)務(wù)與載頻之間的對(duì)應(yīng)關(guān)系,具體包括段長(zhǎng)度16 bit,段號(hào)8 bit,段數(shù)量8 bit,業(yè)務(wù)配置表更新序號(hào)4 bit,保留4 bit,業(yè)務(wù)個(gè)數(shù)N1(16 bit),N1個(gè)業(yè)務(wù)信息(業(yè)務(wù)標(biāo)識(shí)16 bit,頻點(diǎn)編號(hào)8 bit)以及CRC_32。
電子業(yè)務(wù)指南(Electronic Service Guide,ESG)是移動(dòng)多媒體廣播的業(yè)務(wù)導(dǎo)航系統(tǒng),其用途是為CMMB終端用戶提供移動(dòng)多媒體廣播業(yè)務(wù)的導(dǎo)航信息,如業(yè)務(wù)名稱、節(jié)目播放時(shí)間、節(jié)目名稱、節(jié)目分類和內(nèi)容介紹等,用戶使用ESG對(duì)移動(dòng)多媒體廣播的播出內(nèi)容進(jìn)行快速檢索和訪問,具體信息包括:ESG更新序號(hào)4 bit,段長(zhǎng)度12 bit,段序號(hào)4 bit,段數(shù)量 4 bit,網(wǎng)絡(luò)級(jí)別4 bit,網(wǎng)絡(luò)號(hào)12 bit,保留2 bit,本地時(shí)間偏移6 bit,字符編碼類型4 bit,ESG業(yè)務(wù)數(shù)量N1(4 bit),N1個(gè)業(yè)務(wù)標(biāo)識(shí)(保留4 bit,業(yè)務(wù)索引標(biāo)識(shí)4 bit,業(yè)務(wù)標(biāo)識(shí)16 bit),保留4 bit,數(shù)據(jù)類型個(gè)數(shù)N2(4 bit),N2個(gè)數(shù)據(jù)信息(數(shù)據(jù)類型標(biāo)識(shí)4 bit,保留4 bit,數(shù)據(jù)塊數(shù)量N3(8 bit)),N3個(gè)數(shù)據(jù)塊信息(數(shù)據(jù)塊標(biāo)識(shí)8 bit,數(shù)據(jù)塊版本號(hào)4 bit,業(yè)務(wù)索引標(biāo)識(shí)4 bit)和CRC_32。
緊急廣播由表頭和緊急廣播數(shù)據(jù)組成,緊急廣播數(shù)據(jù)段是一般的文本文檔數(shù)據(jù)。當(dāng)MD_IF不等于0時(shí),該幀為業(yè)務(wù)復(fù)用幀,其分析流程如圖9所示。子幀頭提供了該子幀所包含的視音頻和數(shù)據(jù)段的相關(guān)信息,包括頭長(zhǎng)度8 bit,起始播放時(shí)間指示1 bit,視頻段指示1 bit,音頻段指示1 bit,數(shù)據(jù)段指示1 bit,擴(kuò)展區(qū)指示1 bit,保留3 bit;若起始播放時(shí)間指示為1,則起始播放時(shí)間32 bit;若視頻段指示為1,則視頻段長(zhǎng)度21 bit,視頻流總數(shù)N1(3 bit);若音頻段指示為1,則音頻段長(zhǎng)度21 bit,音頻流總數(shù)N2(3 bit);若數(shù)據(jù)段指示為1,則數(shù)據(jù)段長(zhǎng)度 21 bit,保留3 bit;若擴(kuò)展區(qū)指示為1,則N1個(gè)視頻信息(視頻算法類型3 bit,視頻碼率指示1 bit,圖像顯示指示1 bit,分辨力指示1 bit,幀頻指示 1 bit,保留 1 bit;若圖像顯示指示標(biāo)記等于1,則增加2 byte(即16 bit),分別是6 bit圖像顯示橫坐標(biāo),6 bit圖像顯示縱坐標(biāo),3位圖像顯示優(yōu)先級(jí),保留1 bit;若分辨力指示為1,則保留4 bit,視頻水平分辨力10 bit,視頻垂直分辨力10 bit;若幀頻指示為1,則幀頻4 bit,保留4 bit)。N1個(gè)視頻信息后為N2個(gè)音頻信息(音頻算法類型4 bit,音頻碼率指示1 bit,音頻采樣率指示1 bit,音頻流描述指示1 bit,保留1 bit;若音頻碼率指示為1,則音頻碼率14 bit,保留2 bit;若音頻采樣率指示為1,則保留4 bit,音頻采樣率4 bit;若音頻流描述指示為1,則音頻流描述24 bit)。最后為CRC_32。
當(dāng)進(jìn)行視音頻解碼時(shí),首先根據(jù)業(yè)務(wù)幀中得到的信息,提取視音頻數(shù)據(jù),然后進(jìn)行分解,得到各路不同的節(jié)目。視頻段頭是視頻段的核心數(shù)據(jù),決定著視頻段的視頻數(shù)據(jù),為視頻段里的各個(gè)視頻單元都分配了各自的業(yè)務(wù)參數(shù),以保證視頻內(nèi)容的正常使用。視頻段頭解碼時(shí),首先得到12 bit的視頻段頭長(zhǎng)度,逐字節(jié)分析視頻段頭內(nèi)容。具體信息包括視頻單元長(zhǎng)度、數(shù)據(jù)、圖像幀類型、視頻流編號(hào)等信息。音頻段解碼過程同視頻段解碼相似,得到音頻單元長(zhǎng)度、數(shù)據(jù)及音頻流編號(hào)等信息。數(shù)據(jù)段解碼時(shí)直接提取數(shù)據(jù)單元中的有效數(shù)據(jù)凈荷。至此可以得到CMMB碼流中的全部業(yè)務(wù)數(shù)據(jù)及信息(視音頻數(shù)據(jù)),可送至播放器播放或監(jiān)測(cè)處理。具體的視音頻段頭、數(shù)據(jù)段頭解復(fù)用流程如圖10~12所示。
本文按照如上所述的系統(tǒng)硬件方案和軟件結(jié)構(gòu)、碼流分析流程實(shí)現(xiàn)了CMMB碼流的分析和監(jiān)測(cè),客戶端可以從網(wǎng)絡(luò)實(shí)時(shí)得到本系統(tǒng)的分析結(jié)果及視音頻數(shù)據(jù)。本文所述的應(yīng)用系統(tǒng)軟件即MFS碼流分析程序經(jīng)過稍微修改也在PC的Windows系統(tǒng)VC環(huán)境下針對(duì)CMMB的MFS碼流文件進(jìn)行了分析,測(cè)出結(jié)果也完全正確。系統(tǒng)在CMMB檢測(cè)等領(lǐng)域得到了廣泛應(yīng)用。
[1]陳得志.發(fā)展中的CMMB中國(guó)移動(dòng)多媒體廣播[J].有線電視技術(shù),2009(7):64-66.
[2]張勝波,潘志文.CMMB體系架構(gòu)及其核心技術(shù)STIMI[J].信息化研究,2009(8):44-47.
[3]戴光束,陳泳恩.中國(guó)移動(dòng)多媒體廣播電視系統(tǒng)(CMMB)中的控制幀頭解析器實(shí)現(xiàn)[J].電子元器件應(yīng)用,2009(5):45-47.
[4]GY/T220.1—2006,移動(dòng)多媒體廣播第一部分:傳輸部分[S].2006.
[5]GY/Z234—2008,移動(dòng)多媒體廣播復(fù)用實(shí)施指南[S].2008.
[6]GY/T220.2—2006,移動(dòng)多媒體廣播第二部分:復(fù)用[S].2006.
[7]曾敏,張偉偉,王昊.基于ARM11的移動(dòng)數(shù)字電視的解決方案[J].電視技術(shù),2009,33(S2):122-123.
[8]袁三男.數(shù)字電視碼流的分析轉(zhuǎn)換[J].電視技術(shù),2010,34(12):11-14.