李瑞民,董 亮
(1.上海風(fēng)格信息技術(shù)股份有限公司,上海201804;2.上海市文化廣播影視監(jiān)測中心,上海200002)
數(shù)字電視圖像層靜幀和黑場報警的判斷算法
李瑞民1,董 亮2
(1.上海風(fēng)格信息技術(shù)股份有限公司,上海201804;2.上海市文化廣播影視監(jiān)測中心,上海200002)
在數(shù)字電視的安全播出中,圖像層的監(jiān)測是關(guān)鍵,也是最直觀的一步,所以圖像層監(jiān)控算法就顯得尤為重要。針對這一問題,從當(dāng)前數(shù)字電視中的黑場、靜幀這兩個最常見報警方式入手,通過對當(dāng)前主流算法及這兩種報警本身的特點進(jìn)行分析,找出一組高效可行的算法,并通過程序進(jìn)行驗證。
圖像層;黑場;靜幀;無聲;碼流;報警
當(dāng)前的數(shù)字電視中,對節(jié)目信號的監(jiān)控是整個播出鏈路中最重要的一個環(huán)節(jié)。如果僅從概念上來看,與數(shù)字信號相關(guān)的報警可以分為物理層報警、碼流層報警和圖像層報警,其中的物理層報警主要是物理鏈路(有線網(wǎng)絡(luò)的網(wǎng)線,無線網(wǎng)絡(luò)的射頻、微波)是否正常;碼流層報警則是節(jié)目流是否存在無法同步、碼流不能滿足正常播出要求等問題;而圖像層則是當(dāng)前所播的圖像是不是電視臺計劃要播放的圖像內(nèi)容。對前兩層的故障監(jiān)控都可以通過巡檢制度等制度和協(xié)議分析等技術(shù)手段進(jìn)行排查,而對于圖像層的故障,其原因多樣,有些帶有明顯的主觀性,因而判斷相對復(fù)雜,然而圖像層又是與電視觀眾距離最近,觀眾有最直接切身感受,因而圖像層的故障監(jiān)控自然是重中之重。
首先,這里的“圖像”是廣義的圖像,既包括有視頻畫面,也包括有電視伴音、字幕、臺標(biāo)、時鐘等畫面輔助內(nèi)容。通常情況下,電視臺對“圖像層”的監(jiān)控主要分為三大報警,分別是:黑場(Black Screen)、靜幀(Frame Freeze)、無聲(Sound Loss)。黑場就是屏幕上主要畫面區(qū)域呈現(xiàn)黑色,這意味著信號斷了;靜幀,即畫面靜止不動,這意味著信號斷了或編碼器壞了;無聲即聲音信號沒有電平值或聲音低于正常收聽的閾值,這意味著編碼器壞了。
理想環(huán)境下的報警分析并不難。如黑場就是判斷整個屏幕所有像素的RGB信息全為0;而靜幀就是判斷相鄰兩幀的同一位置像素值是否完全相等;無聲就是讀到的聲音值為最小值。但結(jié)合數(shù)字電視現(xiàn)實的使用環(huán)境,不難發(fā)現(xiàn)這些判斷并沒有想象中那么簡單,需要同時考慮的因素有:
1)編解碼器的影響。大部分視頻的壓縮算法都是失真壓縮算法,這會導(dǎo)致對于某一顏色的解碼再解碼,在色差或亮度上做一些小的調(diào)整。例如黑場不再是RGB上的全0,而是所有像素都非常接近于黑色;靜幀也不是相鄰兩幀或多幀之間的完全相等,而是所有幀都近似相等。
2)正中電視節(jié)目區(qū)之外的元素的影響。如頻道的臺標(biāo)、當(dāng)前時間、當(dāng)前節(jié)目名稱、滾動新聞和廣告提示,有時節(jié)目黑場了,但這些周邊元素仍然存在。
3)節(jié)目場景的影響。如電視節(jié)目在在播出“通知”的時候,整個屏幕內(nèi)容會暫停幾秒不做任何改變。人們的說話本身就有停頓,有時會導(dǎo)致數(shù)秒的無聲效果。
分析“黑場、靜幀、無聲”這三個報警,無聲的判斷相對簡單,只需要判斷聲音電平值小于某個閾值即可,所以無聲的判斷不再詳述,下面著重介紹對黑場、靜幀的算法判斷。
目前,對于數(shù)字電視中圖像層報警的分析還不多,所以還沒有成熟的、公認(rèn)的算法,對一些已具備該功能的設(shè)備來說,其算法也尚屬未公開階段。所以對算法的分析以及算法間的對比,主要還是集中在與模式識別算法的對比上。
2.1 常規(guī)算法的不足
模式識別本身的研究已有很多,但分析這些通用算法也能發(fā)現(xiàn)其中的一些不足,這些不足不一定是算法本身的問題,更多的是這些算法沒有考慮數(shù)字電影、數(shù)字電視圖像本身的特殊性。而這些正是本報警算法的關(guān)鍵,所以值得詳細(xì)討論。
要保證數(shù)字電視節(jié)目的流暢播放,1 s要播放25 f畫面,這意味著每一幀畫面數(shù)據(jù)的接收、解碼、播放、報警判斷的總時間必須在40 ms以內(nèi)完成。其中的接收、解碼、播放時間相對固定,因而報警算法的效率尤為重要。體現(xiàn)在算法上,很多模式識別算法需要對全屏所有數(shù)據(jù)進(jìn)行分析后才能得出結(jié)論。如果能在算法處理中,只對部分?jǐn)?shù)據(jù)進(jìn)行分析就能判斷出結(jié)果,無疑會提高效率,增加時效性。
從時間上進(jìn)行分析,在廣電行業(yè)的節(jié)目播出中,節(jié)目異常通常是較小概率事件,更多的狀況是節(jié)目播出正常。根據(jù)哈夫曼(David Huffman)編碼的理論,如果算法能快速地識別出當(dāng)前節(jié)目是正常播出,則可以迅速退出報警判斷,并給出正確的結(jié)論,從而提高整體效率。很多模式識別算法,為了考慮圖像的通用性,容易把一個圖像各像素視作等概率隨機分布,因而大多是按行優(yōu)先或按列優(yōu)先,圖像從左上角坐標(biāo)向右下角坐標(biāo)依次線性處理。然而視頻節(jié)目本身,除非導(dǎo)演的特殊需要,否則常常會把最想展示,最需要引起觀眾注意的細(xì)節(jié)放在屏幕的正中間或四周。比如新聞播報類的節(jié)目,有時除了播音員的嘴部在動,其余位置都沒有動,而這時播音員的嘴部又處于屏幕正中間,因此如果每次算法都從左上角向右下角依次掃描,則每幀畫面需要查找全屏的一半,才發(fā)現(xiàn)屏幕變化的位置。如果能結(jié)合節(jié)目特點,無疑也能提高算法效率。
從技術(shù)上進(jìn)行分析,當(dāng)前數(shù)字電視碼流中,最常用的是MPEG-2格式[1],該格式對圖像處理的算法是DCT算法(Discrete Cosine Transform)[2],該算法結(jié)合圖像的相關(guān)性而把圖像分成若干矩形塊,并對每一塊進(jìn)行統(tǒng)一分析以進(jìn)一步提高圖像的相關(guān)性。而在圖像監(jiān)控中,圖像層報警算法所要查找的正是圖像中的“不相關(guān)性”,所以這種分塊算法反而會降低識別效果,因此良好的報警查找算法應(yīng)避免使用DCT算法中既定的分塊結(jié)果,而是盡量尋找相關(guān)性越弱的塊,這樣算法就越能盡快判斷出結(jié)果。
2.2 算法設(shè)計
綜合以上各點,需要按如下原則進(jìn)行算法設(shè)計。
首先,由用戶定制一個黑場和靜幀的判斷區(qū)域,這樣可以避開臺標(biāo)、時鐘等元素。該區(qū)域的設(shè)定,一種辦法是采用掩碼矩陣算法,即事先制作一個與當(dāng)前分辨率一樣的矩陣,矩陣中每個變量的值都是布爾型(BOOL),在實施判斷的時候,如果該值為TRUE,則參與判斷,否則不參與判斷。另一種辦法是整個屏幕的范圍內(nèi),定制多個互不重疊的矩陣區(qū)域,所有判斷則都在這些矩陣中間。當(dāng)然,最簡單、最實用的辦法是只在屏幕中心區(qū)域向四周擴(kuò)展,最終定制一個盡可能大的一個區(qū)域。
其次,為了使算法簡單,可以將所選的判斷區(qū)域再等分成若干小的區(qū)域塊,將每個區(qū)域塊看作為一個大的“像素”進(jìn)行整體判斷。根據(jù)圖像中兩個像素離得越近,則兩個像素相似的概率越大的圖像像素相關(guān)性原理分析,DCT算法中的每個區(qū)域塊像素分辨率為16×16[3],而報警的判斷正是要打破這種相關(guān)性,因而可以有意避開該劃分方式,改為其他的方式,如24×24。
第三,在各判斷算法中,都由判斷區(qū)域的中心,分別向上、下、左、右4個方向擴(kuò)展開的順序進(jìn)行判斷,而不是由左上角,向右下角的順序進(jìn)行判斷。如前所述,這是基于電視節(jié)目中最關(guān)鍵的節(jié)目內(nèi)容通常在屏幕正中心,這也正是減少整體判斷時間的關(guān)鍵。
第四,增加特定區(qū)域的優(yōu)先判斷。即使上述算法已由中心區(qū)域向四周進(jìn)行擴(kuò)展,仍然是連續(xù)進(jìn)行判斷的。同樣,根據(jù)上述圖像像素相關(guān)性原理,如果能大跨度地跳躍像素間的距離,則可以更大程度上避免圖像像素的相關(guān)性。因此,一個可行的辦法是在進(jìn)行上述算法之前,可以先在判斷區(qū)域的4個角和正中心區(qū)域先采集若干個區(qū)域塊,首先進(jìn)行判斷。如果區(qū)域塊中數(shù)據(jù)不是黑場或靜幀,則整屏也不是黑場或靜幀。
根據(jù)以上各點,本文算法流程圖如圖1所示。
圖1 算法流程圖
為了驗證上面算法的可行性和效率,通過Microsoft Visual C++2005 SP2編寫一個監(jiān)測算法,該算法使用FFmpeg做基本流的解碼工作,然后在每一幀中分別做3種報警的監(jiān)測。
FFmpeg是一組跨平臺的視頻和音頻流SDK,提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案,該SDK開源免費的,但使用其源代碼的人或組織必須將使用該SDK的系統(tǒng)同樣開源和免費。利用這套SDK可以接通過網(wǎng)絡(luò)傳來的TS(Transport Stream)流,并通過合適的解碼器進(jìn)行解碼,并生成屏幕像素數(shù)據(jù)矩陣,利用數(shù)據(jù)矩陣就可以對屏幕數(shù)據(jù)進(jìn)行算法分析。
3.1 理論分析
假設(shè)當(dāng)前的電視節(jié)目是一個分辨率為800×592的標(biāo)清節(jié)目[4],為了說明方便,將其轉(zhuǎn)換為16×16區(qū)域塊組成,則“分辨率”變成了50×37。在模式識別的方式下,由于要判斷所有的數(shù)據(jù)塊,所以每幀要判斷50×37=1 850個數(shù)據(jù)塊。而在上述算法的情況下,如果當(dāng)前沒有黑場、靜幀報警,假設(shè)80%的畫面變化區(qū)域在屏幕正中心和4個角的區(qū)域(共5個塊),20%的畫面位于其余區(qū)域,則每幀要判斷0.8×5+0.2×(5+50×37)=375個數(shù)據(jù)塊。在區(qū)域塊比較的數(shù)量上,其效率提高了(1 850-375)/375≈393%。
假設(shè)當(dāng)前的電視節(jié)目是一個分辨率為1 920×1 072的高清節(jié)目,利用同樣的方式可以將整個圖像區(qū)域分為120×67的區(qū)域塊矩陣,則每幀要判斷120×67=8 040個數(shù)據(jù)塊。同樣假設(shè),則該算法要比較的區(qū)域塊數(shù)為1 613個數(shù)據(jù)塊,最終區(qū)域塊比較的效率提高為398%。
3.2 測試效果
根據(jù)上述算法使用FFmpeg讀取TS流,通過avcodec_open函數(shù)打開解碼器,并進(jìn)行解碼。之后每調(diào)用一次av_read_frame函數(shù),都可以收到一個完整的音頻幀或視頻幀像素矩陣,設(shè)定屏幕正中4/5的區(qū)域為報警判斷區(qū)域。無論是黑場,還是靜幀,像素的偏差為5%以內(nèi)的視為“近似相等”。全屏所有區(qū)域塊的數(shù)據(jù)必須全部“近似相等”,并持續(xù)500 ms,才認(rèn)為報警的發(fā)生。所不同的是黑場的比較值是0,而靜幀的比較是相鄰的兩幀圖像。
值得一提的是,在圖1所示的流程圖中,結(jié)合上文分析,算法采用了5個特定區(qū)域優(yōu)先比的機制,電視節(jié)目大概率下都是正常的節(jié)目,而每個節(jié)目場景中,正中間及4個角的變化概率大于其他位置,所以算法可以快速地判斷出正常播出時不是黑場,也不是靜幀,從而大幅度減少了比較量,減少了CPU和內(nèi)存資源,提高了效率。
當(dāng)發(fā)生靜幀時,程序判斷正中間和4個角區(qū)域塊是相等的,進(jìn)而判斷其他位置的數(shù)據(jù)塊也是相等的,并且這種狀態(tài)持續(xù)了半秒鐘以上,所以發(fā)出靜幀報警,并且隨著報警時間的增長,靜幀時長也在累計。圖2是當(dāng)靜幀報警累計到3分38秒時的故障實例圖。
圖2 軟件實測實例圖(截圖)
通過對電視臺信號監(jiān)控中的5大類主要報警的介紹,在分析了各類報警的特征及應(yīng)用限制之后,結(jié)合現(xiàn)有各算法中的一些不足,針對各個報警的各種具體應(yīng)用,用,制作了針對性很強的算法,并通過程序驗證了該算法的正確性和可靠性。通過測試證明,算法是可行的,效率可以滿足正常播出中監(jiān)控系統(tǒng)的需要。相信通過對算法的研究,為電視信號監(jiān)控“消滅漏報,減少誤報”做出貢獻(xiàn)。
[1]王子微,楊盈昀.淺析超高清數(shù)字電視視頻壓縮編碼技術(shù)[J].電視技術(shù),2013,37(13):1-3.
[2]惠新標(biāo),鄭志航.數(shù)字電視技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2009.
[3]侯宏花.數(shù)字圖像處理與分析[M].北京:北京理工大學(xué)出版社,2011.
[4]蔡曉霞,崔巖松,鄧中亮,等.下一代視頻編碼標(biāo)準(zhǔn)關(guān)鍵技術(shù)[J].電視技術(shù),2012,36(2):80-84.
Black Screen and Freeze Alarm Algorithm in Digital Television Image-layer
LIRuimin1,DONG Liang2
(1.Shanghai Figure Information Technology Co.Ltd.,Shanghai201804,China; 2.Shanghai Culture Broadcasting Inspection Center,Shanghai200002,China)
In secure broadcasting digital TV,monitor of image-layer is the key,and it is also themost intuitive one step,so the image layermonitoring algorithm is particularly important.From the current common black screen,freeze frame of these two kinds of common alarm method,his paper,based on the currentmainstream algorithm and the two alarm the characteristics of analysis,so as to find out a set of feasible and efficient algorithm,and was verified by program.
image-layer;black screen;freeze;sound lose;code stream;alarm.
TN919.83
A
?? 雯
2013-05-02
【本文獻(xiàn)信息】李瑞民,董亮.數(shù)字電視圖像層靜幀和黑場報警的判斷算法[J].電視技術(shù),2014,38(23).
上海市廣播電視技術(shù)監(jiān)測中心項目
李瑞民(1973— ),博士,高級工程師,主要從事廣電領(lǐng)域內(nèi)的計算機安全技術(shù)、網(wǎng)絡(luò)設(shè)備與信號監(jiān)控等領(lǐng)域的研究與應(yīng)用;
董 亮(1980— ),本科,工程師,主要從事廣播電視、網(wǎng)絡(luò)視聽、網(wǎng)絡(luò)文化等領(lǐng)域的監(jiān)測研究與應(yīng)用。