這種通過硬件解碼的處理圖像方式既能按比例縮小視頻尺寸又能節(jié)省CPU的占用率,能很好的適應(yīng)電視系統(tǒng)在手機(jī)等小屏幕視窗的數(shù)碼產(chǎn)品的需求,具有廣大的市場(chǎng)應(yīng)用前景。
隨著模擬信號(hào)數(shù)字化的不斷發(fā)展,模擬電視數(shù)字化也被廣泛的應(yīng)用于數(shù)字多媒體終端。尤其是監(jiān)控設(shè)備及新興的手機(jī)電視終端等,對(duì)于視頻的畫面比例、清晰度、CPU占用率等方面的要求,更加促使人們研究如何將視頻以最少的資源占用率實(shí)現(xiàn)最佳的編碼、傳輸、解碼及播放。模擬視頻信號(hào)解碼既是視頻應(yīng)用的重要部分,又是后級(jí)數(shù)字信號(hào)處理的基礎(chǔ)。國(guó)際電信聯(lián)盟組織提出了將模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的標(biāo)準(zhǔn)ITU2R BT. 601,而ITU2RBT. 656是數(shù)據(jù)傳輸接口,可以說是BT. 601的一個(gè)傳輸方式。因此,如何將經(jīng)BT. 656 編碼的模擬信號(hào)進(jìn)行最為有效地恢復(fù)原始圖像并且最大程度地節(jié)省CPU占用空間,是視頻解碼" title="視頻解碼">視頻解碼技術(shù)的關(guān)鍵。
1 系統(tǒng)分析
視頻解碼是指從來自外界信號(hào)源的數(shù)據(jù)流中過濾去其他數(shù)據(jù),將一幀完整的有效數(shù)據(jù)提取出來傳送給播放器播放的過程。它既是視頻應(yīng)用的重要部分,也是上位機(jī)進(jìn)行數(shù)據(jù)處理的基礎(chǔ)。系統(tǒng)采用硬件解碼方式,將已編碼好的外界信號(hào)源經(jīng)一系列處理后最終還原出原始視頻圖像,實(shí)現(xiàn)視頻解碼功能。它由外界信號(hào)源(如DVD等) 、數(shù)據(jù)解碼模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)傳輸模塊、顯示模塊(播放器)及控制模塊等部分組成。其系統(tǒng)框圖如1所示:
圖1 電視系統(tǒng)框圖
數(shù)字視頻的信號(hào)源是在模擬視頻信號(hào)的基礎(chǔ)上經(jīng)過取樣、量化和編碼形成的,不同的空間垂直分辨率,會(huì)有不同的空間水平分辨率。經(jīng)BT. 656編碼的數(shù)據(jù)由信號(hào)源發(fā)出后經(jīng)數(shù)據(jù)解碼模塊的篩選,將有效數(shù)據(jù)放入數(shù)據(jù)緩存FIFO模塊,然后DMA傳輸模塊按照一定格式將處理好的有效數(shù)據(jù)傳輸至上位機(jī)的緩存(內(nèi)存空間) ,等數(shù)據(jù)達(dá)到一幀時(shí),上位機(jī)便將一幀數(shù)據(jù)進(jìn)行奇偶穿插放進(jìn)數(shù)據(jù)緩存FIFO,最后播放器將一幀數(shù)據(jù)復(fù)原為原始圖像呈現(xiàn)在顯示器上進(jìn)行播放。
2 BT. 656的編碼原理
目前世界上有PAL、NTSC、SECAM三種不同制式的模擬電視系統(tǒng),而這些制式之間不能直接互通。
因此,國(guó)際電信聯(lián)盟無線電通信部門通過了ITU2RBT. 601分量數(shù)字系統(tǒng)建議。ITU2R BT. 601是“演播室數(shù)字電視" title="數(shù)字電視">數(shù)字電視編碼參數(shù)”標(biāo)準(zhǔn),而ITU2R BT. 656則是ITU2R BT. 601附件A中的數(shù)字接口標(biāo)準(zhǔn),用于主要數(shù)字視頻設(shè)備(包括芯片)之間采用27 MHz/ s并口或243Mbit/ s串行接口的數(shù)字傳輸接口標(biāo)準(zhǔn)。包括對(duì)525行和625行接口都通用的信號(hào)格式、比特并行接口特性和比特串行接口特性。該接口為在單一信號(hào)源與單一終點(diǎn)之間提供單向互連。一幀數(shù)據(jù)分別包含525行或者625行,對(duì)于每一行數(shù)據(jù)信號(hào)編碼成8 bit (或10bit)的形式,包括視頻信號(hào)、時(shí)基信號(hào)、輔助信號(hào)三個(gè)分量。數(shù)據(jù)的歸屬由時(shí)基信號(hào)區(qū)分,時(shí)基信號(hào)包括SAV和EAV,分別表示數(shù)據(jù)行的開始和結(jié)束,由16進(jìn)制的FF 00 00 XY組成4 byte數(shù)據(jù)。其中FF 00 00為SAV和EAV的數(shù)據(jù)標(biāo)志位, XY為時(shí)基信號(hào)的信息位,相應(yīng)的編碼格式如表1所示:
表1 時(shí)基信號(hào)編碼格式
XY的最高位bit7為固定數(shù)據(jù)1; F = 0表示偶數(shù)場(chǎng), F =1表示奇數(shù)場(chǎng); V =0表示該行為有效視頻數(shù)據(jù),V =1表示該行無有效視頻數(shù)據(jù); H = 0表示為SAV信號(hào),H =1表示為EAV信號(hào); P3~P0為保護(hù)信號(hào),由F、V、H信號(hào)計(jì)算生成; P3 =V異或H; P2 = F異或H; P1 =F異或V; P0 = F異或V異或H。當(dāng)時(shí)基信號(hào)的V =0時(shí),表明該行為視頻數(shù)據(jù);當(dāng)V =1時(shí),表明該行為輔助數(shù)據(jù)(當(dāng)無輔助數(shù)據(jù)時(shí),為消隱,一般為10、80交替出現(xiàn))。將625行(PAL制式)和525行(NTSC制式)電視系統(tǒng)的一幀數(shù)據(jù)經(jīng)解碼和奇偶穿插后播放器才能把圖像正確地顯示出來。根據(jù)時(shí)基信號(hào)SAV和EAV的變化,過濾去非有效數(shù)據(jù),將偶數(shù)場(chǎng)有效數(shù)據(jù)和奇數(shù)場(chǎng)有效數(shù)據(jù)提取出來放入上位機(jī)緩存。而上位機(jī)只需將接收到的視頻純有效數(shù)據(jù)進(jìn)行穿插后放進(jìn)播放器前端的FIFO,即可實(shí)現(xiàn)視頻播放。
3 硬件解碼及等比例縮小的設(shè)計(jì)實(shí)現(xiàn)
3. 1 硬件解碼設(shè)計(jì)
常見的電視制式有PAL、NTSC、SECAM,為了實(shí)現(xiàn)數(shù)字化處理,必須進(jìn)行A /D轉(zhuǎn)換,其轉(zhuǎn)換后的格式通常為ITU2R BT656標(biāo)準(zhǔn)的數(shù)字視頻信號(hào),但是此時(shí)的視頻信號(hào)包括同步信號(hào)和消隱信號(hào),還無法進(jìn)行處理。
為了真正實(shí)現(xiàn)可處理的有效視頻數(shù)據(jù),將Y, Cb, Cr準(zhǔn)確的分離出來,要對(duì)ITU2R BT656視頻流進(jìn)行解碼,同時(shí)待有效視頻流處理完畢后,再將Y, Cb, Cr和同步信號(hào)、消隱信號(hào)復(fù)合,譯碼。對(duì)此,視頻解碼在視頻處理中極其重要。視頻解碼根據(jù)有效數(shù)據(jù)提取的方式的不同,可以分為硬件解碼和軟件解碼。軟件解碼與計(jì)算機(jī)結(jié)合緊密,雖有處理相對(duì)方便靈活的優(yōu)點(diǎn),但由于需要處理的數(shù)據(jù)量相當(dāng)大, CPU占用率相應(yīng)較高。而硬件解碼能很大程度上節(jié)省CPU占用率,但一幀數(shù)據(jù)需要800多kbyte,如果要在硬件上完成奇偶穿插后傳輸給上位機(jī)幾乎不可能,因此需要上位機(jī)對(duì)一幀數(shù)據(jù)進(jìn)行穿插處理。相應(yīng)的525行和625行電視系統(tǒng)的一幀數(shù)據(jù)的編碼格式圖2所示:
圖2 BT. 656的525 /60和625 /50兩種幀數(shù)據(jù)格式。
根據(jù)編碼協(xié)議里時(shí)基信號(hào)SAV 和EAV中XY信息位F、V 的變化情況,可以確定每一幀數(shù)據(jù)的第一行( 525行系統(tǒng)FV 由10跳變?yōu)?1, 625系統(tǒng)FV由11跳變?yōu)?1) ,此時(shí)可標(biāo)記為一幀數(shù)據(jù)的幀頭,同時(shí)設(shè)置一個(gè)計(jì)數(shù)器,每判斷到一次EAV,計(jì)數(shù)器加1,計(jì)數(shù)滿一幀格式所需的行數(shù)時(shí)將幀尾的標(biāo)記告訴上位機(jī),然后計(jì)數(shù)器清零等待新的一幀數(shù)據(jù)的開始。通常情況下數(shù)據(jù)是一幀一幀連續(xù)傳輸?shù)?進(jìn)行循環(huán)上一次的操作。因此上位機(jī)可根據(jù)接收到經(jīng)硬件處理過的數(shù)據(jù),可直接得到每一幀有效數(shù)據(jù),只需完成判斷到幀頭時(shí)將數(shù)據(jù)放入內(nèi)存,判斷到幀尾時(shí),將一幀數(shù)據(jù)進(jìn)行穿插后傳給播放器播放。經(jīng)計(jì)算,一幀數(shù)據(jù)大概需要800多kB的容量,因此,上位機(jī)1M的內(nèi)存空間已滿足用于對(duì)一幀數(shù)據(jù)的處理。
3. 2 按比例縮小設(shè)計(jì)
為達(dá)到視頻等比例縮小目的,在對(duì)有效數(shù)據(jù)進(jìn)行篩選的時(shí)候必須嚴(yán)格依照數(shù)據(jù)編碼的格式進(jìn)行篩選,例如: PAL 制式(一幀625行)有效數(shù)據(jù)共有576行,每行720個(gè)象素,故圖像格式為720 ×576。
現(xiàn)在要生成640 ×480 的圖像格式,則每行需過濾80個(gè)象素,每幀需過濾96行,即每一行前后各過濾40個(gè),奇數(shù)域前后各24 行,偶數(shù)域前后各24 行。如圖3所示。
如果要生成的圖像格式要求小于原來的一半,則需采用每隔一行過濾一行、每隔一個(gè)象素過濾一個(gè)象素的方式以保證縮小后的圖像仍能最大限度地與原始圖像保持一致。因此,根據(jù)這種方式可生成所需要的任何大小比例的圖像。
圖3 處理前和處理后的幀數(shù)據(jù)結(jié)構(gòu)。
3. 3 實(shí)驗(yàn)結(jié)果
在實(shí)際測(cè)試中,采用VHS TO DVD播放器播放時(shí),BT. 656數(shù)據(jù)格式電視系統(tǒng)軟件解碼的CPU 占用率在一臺(tái)內(nèi)存為1G, CPU為P4. 0的PC系統(tǒng)上為33 %~40 % ,而同條件下硬件解碼的CPU占用率僅為3 % ~9 % ,效果取得了令人滿意的效果。
其CPU占用率效果對(duì)比圖如圖4和圖5所示。
圖4 軟件解碼CPU占用率。
圖5 硬件解碼CPU占用率。
在試驗(yàn)中按2∶1比例縮小的畫面清晰度仍然較高,縮小后的圖像最大限度地保持了原始圖像的效果,但數(shù)據(jù)采樣量變?yōu)樵瓉淼囊话?以下分別為原始圖像和按2∶1比例縮小后的圖像效果比較如圖6和圖7所示。
圖6 原始圖片效果。
圖7 按2∶1縮小后的圖片效果。
4 結(jié)束語
本文提出了針對(duì)BT. 656的電視視頻系統(tǒng)的硬件解碼的方案,難點(diǎn)在于硬件內(nèi)部對(duì)視頻數(shù)據(jù)進(jìn)行準(zhǔn)確地篩選出播放器所需要顯示的有效數(shù)據(jù),過濾其他數(shù)據(jù)。此方案優(yōu)點(diǎn)在于能大幅度降低視頻處理器的工作量,同時(shí)可以配置硬件完成對(duì)視頻數(shù)據(jù)的按比例縮小功能,可滿足手機(jī)電視等小屏幕視窗數(shù)碼產(chǎn)品的需求。