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