李光 馬夢(mèng)奇
(中國(guó)電子科技集團(tuán)公司第五十四研究所河北石家莊050081)
隨著多媒體技術(shù)的高速發(fā)展,數(shù)字視頻技術(shù)在通信領(lǐng)域獲得了廣泛的應(yīng)用,為了在有限帶寬內(nèi)傳輸高質(zhì)量的圖像,必須選擇一種高效的視頻編碼算法。H.264/AVC自從ITU-T視頻編碼與ISO/IEC運(yùn)動(dòng)圖像專家組(MPEG)共同推出以來(lái)[1],以其高效的壓縮性能和友好的網(wǎng)絡(luò)特性受到了業(yè)界的廣泛推崇。傳統(tǒng)的H.264標(biāo)準(zhǔn)視頻壓縮平臺(tái)主要有基于DSP的,包括純軟件和軟硬結(jié)合,壓縮效率高,但外圍電路多,功耗高,無(wú)法滿足功耗和體積有嚴(yán)格限制的場(chǎng)合應(yīng)用。MB86H46是富士通公司最新推出的一款專用芯片,單片可完成符合H.264標(biāo)準(zhǔn)的視頻編碼或解碼,具有體積小,功耗低和壓縮視頻質(zhì)量高的特點(diǎn)。
MB86H46是富士通公司最新推出的一款專用芯片,單片可完成符合H.264標(biāo)準(zhǔn)的視頻編碼或解碼。芯片采取間距0.5 mm的bga封裝,共有650個(gè)管腳,面積15*15,內(nèi)部集成大規(guī)模編解碼模塊和一個(gè)512 M大小的fcram單元。MB86H46支持以下特性[2]:①符合H.264/AVC High Profile Level 4.0的視頻編解碼;②符合杜比數(shù)字(AC-3)、模擬PCM、MPEG-2 AAC、MPEG-4 AAC等格式的音頻編解碼;③輸入或輸出符合MPEG-2 TS格式的系統(tǒng)碼流;④視頻裁剪;⑤視頻輸入輸出接口支持外同步(行/幀/場(chǎng))或內(nèi)嵌式同步;⑥最高工作于1920x1080x60逐行模式。
芯片內(nèi)部結(jié)構(gòu)及數(shù)據(jù)流程如圖1所示。做視頻壓縮時(shí),視頻由視頻接口輸入,經(jīng)過(guò)裁剪模塊處理后進(jìn)入H.264編碼器壓縮,壓縮后的視頻數(shù)據(jù)與音頻數(shù)據(jù)復(fù)合并封裝為MPEG-2 TS格式的數(shù)據(jù)流輸出[3]。MB86H46通過(guò)配置可實(shí)現(xiàn)標(biāo)準(zhǔn)格式圖像(如 576i、720P、1080i、1080P)壓縮,支持 CBR(帶寬恒定)或VBR(質(zhì)量恒定)模式,壓縮速率可調(diào),當(dāng)進(jìn)行1080P60格式視頻的壓縮,典型功耗700 mW。
圖1 芯片結(jié)構(gòu)及數(shù)據(jù)流程圖
本系統(tǒng)是基于MB86H46的高清視頻壓縮系統(tǒng),系統(tǒng)的硬件設(shè)計(jì)結(jié)構(gòu)圖如圖2所示。視頻源選用sony攝像機(jī)HDR-XR260E,其可輸出符合HDMI 1.3標(biāo)準(zhǔn)的最高1080P50的多種格式圖像。HDMI接口芯片為ADI公司的ADV7611,用來(lái)接收HDMI數(shù)據(jù)并解析輸出8/16/24 bit的并行數(shù)據(jù)至MB86H46壓縮,壓縮后的TS流由FPGA二次封裝后并串轉(zhuǎn)換發(fā)送出去。單片機(jī)通過(guò)異步串行總線完成MB86H46的加載與控制,F(xiàn)PGA通過(guò)I2C總線完成ADV7611初始化與控制同時(shí)與單片機(jī)通信。SPI-ROM用來(lái)存儲(chǔ)MB86H46的固件,上電后自動(dòng)加載。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
MB86H46上電復(fù)位后,需要通過(guò)加載固件程序完成啟動(dòng)。MB86H46支持通過(guò)異步總線、碼流接口、SPI-ROM和PCI總線4種固件加載方式,通過(guò)CHIPMODE[1:0]與HIFMODE[7:6]管腳選擇,本文中選擇了SPI-ROM的加載方式。SPI-ROM加載時(shí),芯片內(nèi)部CPU啟動(dòng)同時(shí)FCRAM初始化完成,CPU訪問(wèn)SPI-ROM并將固件加載到FCRAM中,自動(dòng)完成啟動(dòng)。啟動(dòng)后,主機(jī)需要正確配置MB86H46的寄存器,可通過(guò)異步總線或串行總線,具體配置方式取決于固件內(nèi)容,文中選擇了串行總線與MB86H46完成信息交互。
本文采用串行通信協(xié)議,需要在原始固件后添加相應(yīng)的串行通信參數(shù)和實(shí)現(xiàn)壓縮功能所需的默認(rèn)參數(shù)。組合后的固件如表1所示,F(xiàn)irmware為原始的固件程序。Serial communication Parameter為串行通信參數(shù),長(zhǎng)度為16 Bytes,定義了校驗(yàn)、波特率等信息[4]。Default parameter為默認(rèn)工作參數(shù),可以包含最多10種編碼或解碼初始模式,每一種模式長(zhǎng)度為2 kBytes,內(nèi)容如表2所示。其中,初始系統(tǒng)參數(shù)長(zhǎng)度512 Bytes,定義了系統(tǒng)相關(guān)內(nèi)容,包括編解碼模式,系統(tǒng)速率等;初始視頻參數(shù)長(zhǎng)度512 Bytes,定義了視頻相關(guān)內(nèi)容,包括輸入視頻格式、視頻速率、GOP結(jié)構(gòu)等;音頻初始參數(shù)長(zhǎng)度512 Bytes,定義了音頻相關(guān)內(nèi)容。
表1 組合參數(shù)固件結(jié)構(gòu)
表2 默認(rèn)工作參數(shù)結(jié)構(gòu)
采用串行啟動(dòng)方式與串行控制方式的工作流程如圖3所示,整個(gè)流程由單片機(jī)控制完成[5]。當(dāng)默認(rèn)參數(shù)無(wú)法滿足要求時(shí),更新對(duì)應(yīng)寄存器的參數(shù)實(shí)現(xiàn)新的模式。
圖3 串行啟動(dòng)控制流程
本文使用ADV7611低功耗和高清多媒體接口 (HDMI)接收器,可接收高達(dá)165 MHz的視頻流[6]。最高工作分辨率為1 600×1 200(60 Hz),支持1080P60的圖像傳輸。電路使用擴(kuò)展顯示識(shí)別數(shù)據(jù)(EDID)內(nèi)容,確保來(lái)自HDMI的視頻流可達(dá)到HDMI源所支持的最高分辨率。ADV7611具有5 V電纜檢測(cè)、熱插拔檢測(cè)線路置位和用于EDID的DDC線路,集成了一個(gè)內(nèi)部EDID RAM,可顯示HDMI源[7]。同時(shí),內(nèi)置色彩空間轉(zhuǎn)換器(CSC)可轉(zhuǎn)換任何HDMI色彩空間至8位RGB444格式,YCrCb(601和709)、以及HDMI規(guī)范中的其他色彩空間,滿足MB86H46的圖像輸入需求。ADV7611的由FPGA通過(guò)I2C總線進(jìn)行控制[8]。
MB86H46通過(guò)碼流輸入輸出接口(Stream I/O)輸出壓縮碼流,信號(hào)包括時(shí)鐘、數(shù)據(jù)、同步、有效和等待。Stream I/O支持串行或8位并行模式,數(shù)據(jù)速率可調(diào),當(dāng)時(shí)鐘配置為輸入信號(hào),最高可達(dá)54 Mhz,當(dāng)時(shí)鐘配置為輸出時(shí),最高可達(dá)27 Mhz。壓縮碼流協(xié)議可設(shè)置為符合MPEG-2 TS數(shù)據(jù)流格式。FPGA接收MB86H46輸出的TS流,添加幀頭并封裝為幀長(zhǎng)固定的數(shù)據(jù)幀,然后進(jìn)行并串轉(zhuǎn)換,輸出包括時(shí)鐘和數(shù)據(jù)的同步串行數(shù)據(jù),經(jīng)同步數(shù)據(jù)接收卡接收后進(jìn)計(jì)算機(jī)軟解壓顯示。
根據(jù)系統(tǒng)總體設(shè)計(jì)硬件結(jié)構(gòu)圖,將所設(shè)計(jì)的系統(tǒng)連接高清攝像機(jī),完成實(shí)際高清圖像的接收、壓縮和傳輸,最終通過(guò)計(jì)算機(jī)軟解壓顯示。圖像解壓分析軟件采用Elecard streamEye。實(shí)驗(yàn)分別選取了1080P50(高清攝像機(jī)最高輸出1080P50的圖像)、1080i50、720P50和576i4種常見(jiàn)的標(biāo)準(zhǔn)圖像進(jìn)行壓縮性能驗(yàn)證,設(shè)置的的碼流帶寬分別為10 Mbps、5 Mbps、4 Mbps和1 Mbps,對(duì)應(yīng)的壓縮比均在120倍左右,經(jīng)測(cè)試,壓縮碼流均能通過(guò)解壓軟件解壓并顯示,且恢復(fù)圖像清晰流暢,其中1080P解壓后的圖像如圖4所示。可以看到,MB86H46能夠?qū)崿F(xiàn)包括高清1 080p在內(nèi)的多種格式圖像的實(shí)時(shí)壓縮,同時(shí)在壓縮比達(dá)到120倍時(shí)依然能取得很好的恢復(fù)圖像質(zhì)量。
圖4 解壓恢復(fù)圖像1080P壓縮比124
本文針對(duì)高清視頻壓縮技術(shù)的需求,設(shè)計(jì)了一種基于MB86H46的視頻壓縮硬件平臺(tái),利用單片機(jī)與FPGA完成MB86H46和ADV7611的初始化與控制,實(shí)現(xiàn)了高清視頻的壓縮,并通過(guò)計(jì)算機(jī)接收壓縮后的碼流進(jìn)行解壓和顯示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能適應(yīng)多種標(biāo)準(zhǔn)視頻格式,支持最高1080P60的視頻實(shí)時(shí)編碼,相比于傳統(tǒng)的基于DSP的解決方案,具有體積小、功耗低和視頻恢復(fù)質(zhì)量高等特點(diǎn),在高清視頻壓縮領(lǐng)域有著很好的應(yīng)用前景。
[1]畢厚杰,王 建.新一代視頻壓縮編碼標(biāo)準(zhǔn)—H.264/AVC[M].北京:人民郵電出版社,2009:1-100.
[2]H.264,Codec LSI MB86H46 Product Specifications[S].
[3]MB86H46,Application Notes[S].
[4]MB86H46,Serial Protocol Manual[S].
[5]MB86H46,Control Command Specifications[S].
[6]ADV7611,Hardware User Guide[S].
[7]CEA-861-E,A DTV Profile for Uncompressed High Speed Digital Interfaces[S]
[8]ADV7611,SOFTWARE MANUAL Documentation of the Register Maps SOFTWARE MANUAL[S].