吳林煌,楊秀芝,云桂桂,鄒 濤
(福州大學(xué) 福建省數(shù)字電視工程研究中心,福建 福州 350002)
責(zé)任編輯:薛 京
數(shù)字電視作為當(dāng)代信息技術(shù)發(fā)展的重要產(chǎn)物,已經(jīng)全面進(jìn)入大眾的生活領(lǐng)域,人們對(duì)電視節(jié)目的內(nèi)容要求越來越高,對(duì)電視節(jié)目的編輯也變得越來越重要。其中,電視節(jié)目的無縫插播是研究重點(diǎn)。傳統(tǒng)的節(jié)目插播都是將原來的節(jié)目解碼后,進(jìn)行像素點(diǎn)的替換,然后再重新編碼發(fā)送,這樣就造成原有節(jié)目信息的丟失,而且效率比較低下。
本文提供了一種數(shù)字電視節(jié)目插播替換的方法,可以將一路數(shù)字電視傳輸流中的一套或多套節(jié)目替換為另一數(shù)字電視傳輸流中的一套或幾套節(jié)目,并使替換之后的數(shù)字電視傳輸流保持原來的各種標(biāo)識(shí)符,具有結(jié)構(gòu)簡(jiǎn)單、硬件設(shè)備少、成本低、速度快等優(yōu)點(diǎn)。該方法采用滑動(dòng)優(yōu)先級(jí)復(fù)用調(diào)度策略,在替換過程中僅過濾掉不需要的節(jié)目,同時(shí)將替換的節(jié)目、需要保留的節(jié)目以及各種服務(wù)信息通過復(fù)用調(diào)度的方式,重新合成為多節(jié)目傳輸流。
數(shù)字電視無縫插播系統(tǒng)是用一路TS流中的某一套節(jié)目或者廣告去插播另一路TS中的任意一套節(jié)目或者廣告。由于其工作在AVS標(biāo)準(zhǔn)的系統(tǒng)層,TS流中各套節(jié)目的時(shí)間基點(diǎn)允許不相同,并且TS流的抗誤碼性能高,因此本文所設(shè)計(jì)的數(shù)字電視無縫插播系統(tǒng)是基于TS流格式[1]。本節(jié)首先分析切換時(shí)出現(xiàn)馬賽克或黑屏的3個(gè)原因,再針對(duì)這些原因提出解決方法。
通常情況下在節(jié)目或者廣告進(jìn)行插播的過程中偶爾會(huì)出現(xiàn)黑屏或馬賽克現(xiàn)象,其根本原因是解碼器在解碼時(shí)出錯(cuò)[2],主要原因有3個(gè):1)由于兩路AVS傳送流的時(shí)間基準(zhǔn)可能不同,直接進(jìn)行節(jié)目切換會(huì)導(dǎo)致節(jié)目參考時(shí)鐘PCR不連續(xù);2)由于切換點(diǎn)的選擇不準(zhǔn)確,導(dǎo)致解碼的重要參數(shù)時(shí)間標(biāo)記(DTS)和顯示時(shí)間標(biāo)記(PTS)出現(xiàn)不連續(xù);3)視頻信息量比較多,為其開辟的緩沖區(qū)不夠大,出現(xiàn)溢出現(xiàn)象[3]。
1.2.1 PCR調(diào)整
在AVS標(biāo)準(zhǔn)中,通過在TS流中加入PCR來確保編解碼端時(shí)鐘的同步。但由于兩路TS流的時(shí)間基準(zhǔn)點(diǎn)可能不同,這就導(dǎo)致PCR不連續(xù)。通過尋找拼接點(diǎn)前被替換節(jié)目的最后一個(gè)TS包的PCR和拼接點(diǎn)后替換節(jié)目中的首個(gè)TS包的PCR,再根據(jù)AVS標(biāo)準(zhǔn)中的PCR公式進(jìn)行計(jì)算從而求出偏移量。把源節(jié)目TS包的PCR,DTS和PTS都附加上偏移量就可保證PCR連續(xù)[4]。
1.2.2 無縫拼接點(diǎn)的選擇
AVS標(biāo)準(zhǔn)的視頻層規(guī)定了3種幀類型:I幀(獨(dú)立編碼幀)、P幀(預(yù)測(cè)編碼幀)和B幀(雙向預(yù)測(cè)編碼幀)。可以作為參考幀的只有I幀和P幀,而B幀不能作為參考幀。所以在進(jìn)行節(jié)目替換或者廣告插播時(shí),應(yīng)該進(jìn)行檢測(cè)使替換源的節(jié)目以I幀開始。同時(shí)由于解碼器在解碼后對(duì)幀進(jìn)行重排,因此被替換的視頻流的圖像組必須完整通過,才能正確顯示替換之前的圖像,否則將產(chǎn)生馬賽克現(xiàn)象。所以無縫拼接點(diǎn)的選擇必須以被替換視頻流的B幀結(jié)束和替換視頻流的I幀開始。
1.2.3 緩沖區(qū)控制和碼率調(diào)整
由于兩個(gè)節(jié)目TS流的碼率和結(jié)構(gòu)不同,為了保證緩沖區(qū)不發(fā)生上溢出和下溢出,在不改變兩個(gè)連續(xù)PCR間差值的條件下,通過插入或者剔除部分空包來實(shí)現(xiàn)碼率的有效控制,從而避免視頻緩沖區(qū)溢出[5]。
數(shù)字電視插播系統(tǒng)主要包括以下幾個(gè)部分:ASI輸入輸出接口模塊、前端輸入檢測(cè)和中間處理模塊、Nios II處理器模塊、液晶顯示和按鍵輸入??傮w結(jié)構(gòu)如圖1所示。前端輸入檢測(cè)模塊對(duì)ASI接口輸入的TS碼流進(jìn)行分析處理,將提取的碼流信息送給中間處理模塊,中間處理模塊提取出替換源、被替換源PID值等相關(guān)信息,此時(shí)默認(rèn)將被替換源和默認(rèn)的第一路替換源的PID值傳輸給Nios II處理器,Nios II將其值傳給液晶屏進(jìn)行顯示。如果需要選擇替換源,通過按鍵模塊進(jìn)行選擇,Nios II將檢測(cè)到的按鍵輸入值傳遞給Nios II處理器,Nios II處理器再將這個(gè)替換源路數(shù)的值傳遞給中間處理模塊,中間處理模塊對(duì)碼流替換后通過ASI接口輸出。
圖1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)框圖
根據(jù)數(shù)字電視插播系統(tǒng)的要求,設(shè)計(jì)了一個(gè)硬件平臺(tái)。該平臺(tái)具有多種外設(shè)接口,適用于基于FPGA嵌入IP軟核的系統(tǒng)開發(fā)。硬件平臺(tái)的總體結(jié)構(gòu)如圖2所示。
圖2 硬件平臺(tái)的總體結(jié)構(gòu)
該硬件平臺(tái)的主芯片選用Altera公司Stratix II系列的芯片EP2S90F1020C4[6];ASI接口電路的ASI接收和發(fā)送芯片選用CYPRESS半導(dǎo)體公司推出的一種用于點(diǎn)對(duì)點(diǎn)之間高速串行數(shù)據(jù)通信的接收芯片CY7B933和發(fā)送芯CY7B923[7];10/100 Mbit/s以太網(wǎng)控制器選擇LAN91C111芯片[8],便于計(jì)算機(jī)通過網(wǎng)絡(luò)對(duì)系統(tǒng)進(jìn)行監(jiān)測(cè)和控制;支持JTAG和AS兩種配置模式。
系統(tǒng)的軟件開發(fā)工具為Altera公司的Quartus II軟件,該軟件集成多種仿真測(cè)試工具,可以與SOPC Builder和Nios II IDE一起協(xié)同開發(fā)[9]。
2.3.1 FPGA邏輯設(shè)計(jì)
數(shù)字電視插播系統(tǒng)中的前端輸入檢測(cè)和中間處理模塊是系統(tǒng)核心,用FPGA內(nèi)部的邏輯和存儲(chǔ)資源來實(shí)現(xiàn)。具體模塊連接如圖3所示。
1)串行接口輸入模塊,主要完成對(duì)輸入信號(hào)的格式轉(zhuǎn)換。與兩組輸入相對(duì)應(yīng),分別將來自于ASI輸入接口的ASI格式數(shù)據(jù)轉(zhuǎn)換成8位并行格式。ASI_IN1為替換源的碼流輸入,ASI_IN2為被替換源的碼流輸入。
2)FPGA模塊包含多個(gè)子模塊,下面做進(jìn)一步論述。
(1)碼流同步模塊:它將串行接口模塊輸入的信號(hào)進(jìn)行同步及失步判別,找出碼流的同步頭字節(jié),并將同步后的TS流合成為188或204個(gè)字節(jié)的包,以利于后續(xù)模塊的處理。
(2)節(jié)目匹配檢測(cè)模塊:接收同步后的替換源碼流和被替換源碼流,對(duì)替換和待替換節(jié)目標(biāo)識(shí)符進(jìn)行匹配,主要有PMT_PID,VIDEO_PID,AUDIO_PID,PCR_PID等標(biāo)識(shí)符的匹配。匹配過程中需要進(jìn)行該路信息PSI信息的解析及提取,以獲得該路的節(jié)目信息。
圖3 節(jié)目插播系統(tǒng)FPGA設(shè)計(jì)部分系統(tǒng)框圖
(3)PCR調(diào)整模塊:傳輸系統(tǒng)必須是恒定延時(shí)系統(tǒng),解碼端才能解碼正確。在進(jìn)行插播時(shí),PCR位置可能會(huì)隨TS的變化而變化,因此必須對(duì)PCR進(jìn)行校正。該模塊一旦檢測(cè)到輸入的TS包當(dāng)中有PCR時(shí),就啟動(dòng)備用的某個(gè)計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù)直到該P(yáng)CR域的最后一個(gè)字節(jié)離開系統(tǒng)時(shí),PCR補(bǔ)償模塊根據(jù)選用的計(jì)數(shù)器對(duì)PCR值進(jìn)行相應(yīng)補(bǔ)償。
(4)圖像組頭檢測(cè)模塊:因?yàn)闊o縫拼接點(diǎn)的選擇必須以被替換視頻流的B幀結(jié)束和替換視頻流的I幀開始,所以該模塊負(fù)責(zé)檢測(cè)圖像組頭(即I幀的開始)。只有檢測(cè)到圖像組頭,才進(jìn)行TS包的替換操作。
(5)節(jié)目過濾模塊:它接收被替換源的碼流,同時(shí)接收節(jié)目匹配檢測(cè)模塊的匹配信息。當(dāng)有匹配節(jié)目存在并需要替換時(shí),該模塊就將指定的待替換節(jié)目的數(shù)據(jù)包丟棄,其他與替換無關(guān)的數(shù)據(jù)包存入數(shù)據(jù)緩沖器FIFO2中。當(dāng)沒有需要替換的節(jié)目時(shí),該模塊不對(duì)輸入的碼流進(jìn)行處理。
(6)服務(wù)信息生成模塊:根據(jù)現(xiàn)行節(jié)目信息,重新生成新的服務(wù)描述表,使其名稱與替換的節(jié)目名稱一致。重新生成的數(shù)據(jù)送入數(shù)據(jù)緩沖FIFO3中。
(7)數(shù)據(jù)緩沖模塊:暫存經(jīng)過處理后的數(shù)據(jù),為后續(xù)的數(shù)據(jù)調(diào)度提供緩沖。當(dāng)其滿188 byte字節(jié)時(shí),即輸出一個(gè)半滿信號(hào)供數(shù)據(jù)調(diào)度模塊進(jìn)行判斷。
(8)數(shù)據(jù)調(diào)度模塊:調(diào)度策略采用滑動(dòng)優(yōu)先級(jí)的方式,對(duì)于同時(shí)有幾個(gè)半滿信號(hào)輸入的情況,優(yōu)先級(jí)高的先調(diào)度,而優(yōu)先級(jí)根據(jù)調(diào)度的順序進(jìn)行輪轉(zhuǎn),即剛調(diào)度過的優(yōu)先級(jí)變?yōu)樽畹停@樣能夠保證各路碼流被均勻調(diào)度。該模塊的調(diào)度速率根據(jù)輸入碼流的速率來確定。
3)串行接口輸出模塊,接收來自數(shù)據(jù)調(diào)度模塊輸出的數(shù)據(jù),完成格式轉(zhuǎn)換。本設(shè)計(jì)采用一個(gè)專用集成電路CY7B923,它將并行的碼流數(shù)據(jù)轉(zhuǎn)換為270 Mbit/s的串行數(shù)據(jù),再通過輸出耦合驅(qū)動(dòng)電路完成ASI信號(hào)的驅(qū)動(dòng)及耦合輸出。
2.3.2 Nios II軟件設(shè)計(jì)
本文的Nios II軟件采用中斷的方式。首先進(jìn)行初始化設(shè)置,當(dāng)檢測(cè)到復(fù)位信號(hào)時(shí)則進(jìn)行復(fù)位,否則進(jìn)入下一步,此時(shí)默認(rèn)將替換源與第一路被替換源的PID號(hào)顯示在液晶屏上,如selection有輸入,則把計(jì)數(shù)器自加1,此時(shí)中間處理系統(tǒng)把下一套節(jié)目的PID號(hào)傳遞過來,若有enter信號(hào),則開始替換并在液晶屏上顯示,若替換成功則傳回一個(gè)success信號(hào),并在液晶屏上顯示替換成功。Nios II軟件設(shè)計(jì)流程如圖4所示。
圖4 軟件設(shè)計(jì)流程圖
用實(shí)際的電視節(jié)目進(jìn)行系統(tǒng)測(cè)試,其實(shí)物連接如圖5所示。首先用衛(wèi)星天線接收來自衛(wèi)星的電視信號(hào),通過衛(wèi)星接收機(jī)將其轉(zhuǎn)換成符合AVS標(biāo)準(zhǔn)的TS流,一路送到FPGA開發(fā)板作為被替換源進(jìn)行節(jié)目替換,另一路送到復(fù)用器中產(chǎn)生單節(jié)目替換源,并將其輸出到被替換源的輸入端口,經(jīng)無縫插播系統(tǒng)處理之后的輸出碼流送到QAM調(diào)制器,調(diào)制后的數(shù)據(jù)經(jīng)機(jī)頂盒解調(diào)后送到電視機(jī)播放。
測(cè)試時(shí)設(shè)置機(jī)頂盒解調(diào)信號(hào)的頻點(diǎn)為283 MHz,調(diào)制方式為QAM256,將硬件設(shè)備按上述方式進(jìn)行連接,得到單節(jié)目替換源只有中央6套少兒頻套;另一路被替換源包含中央1套、中央6套、中央13套等8套節(jié)目。本次測(cè)試將少兒頻套替換成新聞?lì)l套,通過電視機(jī)播放觀察結(jié)果。在進(jìn)行節(jié)目替換的過程中,節(jié)目無縫拼接沒有出現(xiàn)馬賽克和黑屏現(xiàn)象,由此可以證明本系統(tǒng)設(shè)計(jì)合理,切實(shí)可用,完成了數(shù)字電視節(jié)目的無縫插播。圖5中電視播放的是替換前的新聞?lì)l道,圖6所示的是替換后在同一頻道播放少兒節(jié)目。
本文是基于系統(tǒng)層的無縫拼接,主要在系統(tǒng)層對(duì)兩個(gè)傳輸流進(jìn)行處理,不經(jīng)過解復(fù)用、解碼、編碼和重新復(fù)用的過程。通過選擇合適的拼接點(diǎn)、調(diào)整PSI信息、調(diào)整時(shí)間信息等手段在系統(tǒng)層實(shí)現(xiàn)無縫拼接,運(yùn)算量小,能快速完成;同時(shí)對(duì)視頻基本層沒做處理,能保證質(zhì)量無損,消除了黑屏和馬賽克現(xiàn)象,實(shí)現(xiàn)了數(shù)字電視節(jié)目無縫插播。
[1]王立.TS流復(fù)用解復(fù)用及DSM-CC特技播放研究[D].天津:天津大學(xué),2004.
[2]謝志華,鄒道文,汪勝前.一種新的數(shù)字電視TS流無縫拼接處理技術(shù)[J].廣播與電視技術(shù),2006(2):78-80.
[3]劉運(yùn)鋒.基于FPGA的多功能視頻服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2006.
[4]崔巍,李煜,秦文.MPEG-2 TS無縫拼接技術(shù)的研究與實(shí)現(xiàn)[J].電視技術(shù),2004,28(10):65-67.
[5]劉昱,李桂苓.MPEG-2視頻流的拼接[J].有線電視技術(shù),2002(10):8-9.
[6]Altera corporation.Stratix II Device Handbook[EB/OL].[2012-10-10].http://www.altera.com.cn/literature/lit-s2gx.jsp.
[7]CY7B923/CY7B933:HOTLink Transmitter/Receiver[EB/OL].[2012-10-10].http://www.cypress.com/?rid=13675.
[8]LAN91C111 Rev.B Datasheet[EB/OL].[2012-10-10].http://www.icfull.com/LAN_datasheet/LAN91C111-NC.html.
[9]霍梅梅,吳劍鐘,蔡建平.Quartus II圖形仿真用于計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)[J].科技創(chuàng)新導(dǎo)報(bào),2010(24):157-157.