鄧 凱,楊秀芝,林 武
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350108)
隨著數(shù)字電視的推廣普及,數(shù)字電視廣告開(kāi)始以其豐富多彩的表現(xiàn)形式展現(xiàn)在人們眼前。傳統(tǒng)的模擬電視廣告是在節(jié)目錄制編輯的時(shí)候植入的,無(wú)論是一個(gè)角標(biāo)還是一段廣告視頻,都已然成為了電視節(jié)目的一部分。所以傳統(tǒng)的模擬電視廣告發(fā)布權(quán)是掌握在前端電視臺(tái)手中的。而對(duì)于數(shù)字電視而言,由于電視信號(hào)的數(shù)字化和在屏顯示技術(shù)(On-Screen Display,OSD)的發(fā)展,數(shù)字電視廣告元素開(kāi)始從電視節(jié)目中獨(dú)立出來(lái)以單獨(dú)的一個(gè)層展現(xiàn)在人們眼中[1]。這樣,數(shù)字電視網(wǎng)絡(luò)運(yùn)營(yíng)商也擁有了發(fā)布廣告的能力,與前端各級(jí)電視臺(tái)和演播室共同瓜分廣告市場(chǎng)這塊蛋糕[2]。時(shí)下流行的電子節(jié)目指南(Elec?tronic Program Guide,EPG)廣告就擁有著豐富的表現(xiàn)形式。它充分利用OSD層的空間,包括強(qiáng)制開(kāi)機(jī)廣告、強(qiáng)制門戶廣告、導(dǎo)航條廣告、音量條廣告、頻道列表廣告、EPG菜單廣告、音頻廣播背景廣告等多種展現(xiàn)形式,這些形式的廣告伴隨著用戶的按鍵操作而出現(xiàn),隨著操作界面的退出而消失[3]。但大多數(shù)數(shù)字電視廣告不具備實(shí)時(shí)更新功能,每個(gè)廣告位上的廣告元素一般是在機(jī)頂盒軟件升級(jí)時(shí)一起打包寫入到Flash中的,并在較長(zhǎng)一段時(shí)間里重復(fù)使用。這對(duì)數(shù)字電視廣告的定點(diǎn)投放和個(gè)性化定制產(chǎn)生了制約。本文將論述一種數(shù)字電視廣告在線發(fā)布系統(tǒng)的構(gòu)建,能夠?qū)崿F(xiàn)廣告元素的實(shí)時(shí)接收和定時(shí)定位顯示。
系統(tǒng)總體架構(gòu)如圖1所示。本系統(tǒng)通過(guò)衛(wèi)星接收機(jī)接收并解調(diào)通過(guò)衛(wèi)星天線接收下來(lái)的數(shù)字電視信號(hào),前端廣告編輯發(fā)布模塊編輯的信息發(fā)送給條件接收系統(tǒng)(CAS),由CAS生成私有數(shù)據(jù)P_EMM包。數(shù)字電視信號(hào)(解調(diào)的TS流)與CAS生成的私有數(shù)據(jù)包一同發(fā)送給碼流信息插入模塊,由碼流信息插入模塊將帶有私有數(shù)據(jù)的TS包插進(jìn)數(shù)字電視節(jié)目的TS流中。重組之后的TS流將由QPSK調(diào)制器重新調(diào)制后發(fā)送給數(shù)字電視機(jī)頂盒,經(jīng)數(shù)字電視機(jī)頂盒解調(diào)后,濾取私有數(shù)據(jù)解析并顯示到電視機(jī)屏幕上。
前端廣告編輯發(fā)布模塊使用C#語(yǔ)言編寫,使用基于TCP的Socket編程技術(shù)實(shí)現(xiàn)與CAS的連接。在連接建立后,考慮到數(shù)據(jù)傳輸?shù)目煽啃?,設(shè)計(jì)了如下的通信協(xié)議:
1)編輯發(fā)布模塊發(fā)送Tag=0x01給CAS;
2)CAS收到Tag=0x01后,返回Tag=0x02給編輯發(fā)布模塊;
3)編輯發(fā)布模塊收到Tag=0x02,驗(yàn)證成功后發(fā)送Tag=0x03,然后發(fā)送廣告數(shù)據(jù);
4)CAS收到Tag=0x03,將數(shù)據(jù)接收下來(lái),并發(fā)送Tag=0x04確認(rèn);
5)編輯發(fā)布模塊收到Tag=0x04,若數(shù)據(jù)未全部發(fā)送完成,則繼續(xù)發(fā)送Tag=0x03并發(fā)送數(shù)據(jù);若數(shù)據(jù)全部發(fā)送完成,則發(fā)送Tag=0x05。
廣告編輯發(fā)布模塊發(fā)送的一個(gè)包的最大長(zhǎng)度為180 byte。每一個(gè)從廣告編輯發(fā)布模塊發(fā)送的包,到達(dá)CAS后,前面17 byte會(huì)被加入一些TS流固定標(biāo)志位、循環(huán)冗余校驗(yàn)位等信息進(jìn)行重組。這些重組的數(shù)據(jù)為25 byte,加上后面的data數(shù)據(jù)組成一個(gè)188 byte的TS包,然后被發(fā)送到碼流信息插入模塊。
廣告編輯發(fā)布模塊可編輯的信息包括文字和圖片兩種類型。文字的信息量較小,一般一個(gè)數(shù)據(jù)包就可以承載全部信息。而廣告圖片的數(shù)據(jù)量比較大,需要用壓縮算法將圖片數(shù)據(jù)壓縮。本系統(tǒng)通過(guò)一個(gè)壓縮算法將BMP圖片數(shù)據(jù)進(jìn)行壓縮,并將壓縮后的數(shù)據(jù)轉(zhuǎn)成BIN文件。廣告編輯發(fā)布模塊讀取BIN文件,每次截取140 byte組包,分成多個(gè)包將全部數(shù)據(jù)發(fā)送到CAS。
廣告編輯發(fā)布模塊還有用戶登錄,注冊(cè)和管理等功能,限于篇幅,這里不再詳細(xì)介紹。
碼流信息插入模塊在本系統(tǒng)中的作用主要是將CAS產(chǎn)生的私有數(shù)據(jù)包插入到節(jié)目碼流中實(shí)現(xiàn)傳輸。CAS把生成的私有數(shù)據(jù)包發(fā)送給碼流信息插入模塊,私有數(shù)據(jù)包被存放到EMM存儲(chǔ)器中,然后等待調(diào)度輸出。
后端數(shù)字機(jī)頂盒從TS流中過(guò)濾得到需要的P_EMM包進(jìn)行數(shù)據(jù)解析處理。數(shù)據(jù)解析的程序處理流程如圖2所示[4-7]。
首先對(duì)P_EMM的前17 byte進(jìn)行數(shù)據(jù)解析,然后根據(jù)得到的數(shù)據(jù)類型調(diào)用字幕信息處理解析進(jìn)程或者角標(biāo)信息處理解析進(jìn)程對(duì)數(shù)據(jù)部分進(jìn)行解析處理。
字幕數(shù)據(jù)處理解析進(jìn)程將判決是否對(duì)收到的字幕數(shù)據(jù)進(jìn)行解析處理,并將解析得到的顯示時(shí)間與從系統(tǒng)中提取的當(dāng)前時(shí)間進(jìn)行比對(duì),根據(jù)比對(duì)結(jié)果進(jìn)入到三個(gè)判決器中,控制字幕的顯示時(shí)間、顯示頻率和結(jié)束時(shí)間。角標(biāo)數(shù)據(jù)處理解析進(jìn)程和字幕數(shù)據(jù)處理解析進(jìn)程的設(shè)計(jì)思想相似,但該進(jìn)程需要處理多包數(shù)據(jù)。本系統(tǒng)接收端設(shè)計(jì)了一種亂序接收算法,能在幾十秒內(nèi)將圖片數(shù)據(jù)接收完成。這種算法的思想是先創(chuàng)建一個(gè)很大的空數(shù)組check[],接收并解析包號(hào)為1的角標(biāo)數(shù)據(jù)包,根據(jù)解析后得到的總包數(shù)NUM將check[2]到check[NUM]全部置1,然后進(jìn)行亂序接收:只要收到一個(gè)角標(biāo)數(shù)據(jù)類型的包,就解析提取它的包號(hào)ID,然后進(jìn)行check[ID]的檢測(cè),若為1,則接收該包的數(shù)據(jù),并將check[ID]清零,否則丟掉該包。同時(shí)每次接收數(shù)據(jù)后,對(duì)數(shù)組的check[1]到check[NUM]進(jìn)行求和,若和為0,說(shuō)明所有數(shù)據(jù)包全部接收完畢。
數(shù)據(jù)解析處理程序只負(fù)責(zé)向消息隊(duì)列定時(shí)發(fā)送顯示請(qǐng)求,顯示請(qǐng)求被處理時(shí)會(huì)將有關(guān)標(biāo)志位置1。界面顯示程序不停的檢測(cè)這些標(biāo)志位,當(dāng)檢測(cè)到標(biāo)志位被置1時(shí),開(kāi)始顯示字幕或者角標(biāo),并在退出時(shí)將這些標(biāo)志位清零。字幕和角標(biāo)的顯示程序流程如圖3和圖4所示[8-10]。
圖3 字幕顯示程序流程圖
圖4 角標(biāo)顯示程序流程圖
在按照如圖1所示構(gòu)建的實(shí)際系統(tǒng)中進(jìn)行測(cè)試,字幕可控的在屏幕上下兩個(gè)位置上滾動(dòng)顯示,角標(biāo)可控的在屏幕左上、左中、左下、右上、右中、右下六個(gè)位置顯示,所有時(shí)間定時(shí)器工作正常,字幕和角標(biāo)按規(guī)定時(shí)間循環(huán)顯示并最后消失。當(dāng)新的字幕或角標(biāo)信息到達(dá)后,能夠即時(shí)替換掉當(dāng)前顯示的字幕或者角標(biāo)。實(shí)際效果如圖5和圖6所示。
本文論述的數(shù)字電視廣告在線發(fā)布系統(tǒng),主要工作集中在廣告數(shù)據(jù)的即時(shí)接收和定時(shí)顯示上。本文闡述了整個(gè)廣告在線發(fā)布系統(tǒng)的架構(gòu),介紹了高效的亂序接收算法,實(shí)現(xiàn)了在線發(fā)布的要求。從測(cè)試結(jié)果來(lái)看取得了很好的效果。
:
[1]吳資玉,龍鳳.新型數(shù)字機(jī)頂盒的視頻顯示及OSD[J].中國(guó)有線電視,2005(7):624-627.
[2]韋恩敏.“后轉(zhuǎn)換時(shí)代”數(shù)字電視廣告經(jīng)營(yíng)策略探討[J].中國(guó)數(shù)字電視,2007(2):54-56.
[3]李江濤.EPG廣告技術(shù)及業(yè)務(wù)開(kāi)展淺析[J].中國(guó)有線電視,2012(1):66-69.
[4]ETSI TR 101 200 Version 1.1.1,利用DVB規(guī)范和標(biāo)準(zhǔn)的指南[S].1997.
[5]ETSI TR 101 211,DVB業(yè)務(wù)信息(SI)的使用和執(zhí)行指南(DVBSI)[S].2000.
[6]ETSI EN 300 468 V1.8.1,DVB 系統(tǒng)中的業(yè)務(wù)信息(SI)規(guī)范[S].2008.
[7]ETSI EN 301 192 V1.4.2,數(shù)據(jù)廣播的DVB規(guī)范[S].2008.
[8]張愛(ài)娟,葉宇煌,蘇凱雄.數(shù)字機(jī)頂盒的OSD設(shè)計(jì)與優(yōu)化[J].電氣電子教學(xué)學(xué)報(bào),2009,31(5):77-79.
[9]葉寧,蘇凱雄,杜偉慶.數(shù)字機(jī)頂盒GUI系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].有線電視技術(shù),2012,36(10):86-89.
[10]修曉琴,楊秀芝,鄭明魁.基于FPGA內(nèi)嵌軟核的機(jī)頂盒OSD設(shè)計(jì)[J].電視技術(shù),2013,37(13):70-72.