榮耀程,袁 媛,朱炳強(qiáng),何 蕓
(清華大學(xué) 電子工程系,北京 100084)
AVS視頻編碼標(biāo)準(zhǔn)是國(guó)內(nèi)具備自主知識(shí)產(chǎn)權(quán)的視頻編碼標(biāo)準(zhǔn),應(yīng)用范圍包括高清晰度和高質(zhì)量數(shù)字電視廣播、網(wǎng)絡(luò)電視、移動(dòng)電視、視頻通信、數(shù)字存儲(chǔ)媒體等,其一般包括變換、量化、熵編碼、幀內(nèi)預(yù)測(cè)、幀間預(yù)測(cè)、環(huán)路濾波等技術(shù)模塊[1-2]。
高效的視頻編碼器是AVS視頻編碼標(biāo)準(zhǔn)推廣及應(yīng)用的關(guān)鍵。純軟件的實(shí)現(xiàn)方案難以滿足大尺度實(shí)時(shí)編碼的巨大的計(jì)算量需求,而基于ASIC的純硬件實(shí)現(xiàn)方案雖然在速度和功耗上更占優(yōu)勢(shì),但在復(fù)雜控制、功能靈活性上存在缺陷。為了最大限度地綜合利用軟件方法和硬件方法兩者的優(yōu)勢(shì),需要將軟硬件設(shè)計(jì)兩者密切結(jié)合起來(lái),軟硬件協(xié)同設(shè)計(jì)方法已經(jīng)引起了人們廣泛的關(guān)注,并在嵌入式系統(tǒng)中得到了應(yīng)用[3-6]。軟硬件協(xié)同設(shè)計(jì)方法的關(guān)鍵是如何合理地進(jìn)行軟硬件劃分,劃分沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),需要根據(jù)應(yīng)用需求以及算法的復(fù)雜度等進(jìn)行具體分析和設(shè)計(jì)。
AVS的碼流結(jié)構(gòu)語(yǔ)法層次從高到低,依次是序列、圖像(幀/場(chǎng))、條帶、宏塊、塊。通?;贏VS視頻編碼標(biāo)準(zhǔn)的編碼器以宏塊作為編碼流程中的基本單位。塊是宏塊的進(jìn)一步劃分,作為預(yù)測(cè)、變換的基本單位。
考慮到編碼流程中數(shù)據(jù)結(jié)構(gòu)的一致性,筆者提到的AVS視頻編碼器在進(jìn)行系統(tǒng)級(jí)的軟硬件劃分時(shí),根據(jù)數(shù)據(jù)結(jié)構(gòu)的層次關(guān)系,以宏塊為界,將宏塊級(jí)的數(shù)據(jù)處理交給專用的VLSI硬件結(jié)構(gòu)來(lái)實(shí)現(xiàn),而宏塊級(jí)以上的任務(wù)交給可編程的RISC核(Micro Blaze)來(lái)完成。
如圖1所示,底層的專用VLSI硬件結(jié)構(gòu)處理并行度較高的數(shù)據(jù),進(jìn)行復(fù)雜的計(jì)算,包括整像素運(yùn)動(dòng)搜索、亞像素運(yùn)動(dòng)搜索、幀內(nèi)預(yù)測(cè)、變換、量化以及熵編碼。頂層的RISC核(Micro Blaze)主要完成的任務(wù)可以細(xì)分為兩個(gè)層次,由于兩個(gè)層次的任務(wù)具有并發(fā)性,無(wú)法用單獨(dú)的RISC核來(lái)完成,所以采用了兩個(gè)獨(dú)立的RISC核。上層RISC核,稱PicRisc,完成圖像級(jí)的編碼過(guò)程控制及參數(shù)設(shè)置、傳遞;下層RISC核,稱為MbRisc,完成宏塊級(jí)的編碼過(guò)程控制及參數(shù)設(shè)置、傳遞。
除了在系統(tǒng)級(jí)進(jìn)行軟硬件劃分外,還對(duì)熵編碼模塊進(jìn)行了軟硬件劃分。視頻編碼中需要進(jìn)行熵編碼的內(nèi)容有兩大類,一類是預(yù)測(cè)殘差塊的信息,另一類是其他語(yǔ)法元素的信息。在熵編碼模塊,殘差塊的熵編碼是由底層的專用VLSI硬件結(jié)構(gòu)完成的,其他的語(yǔ)法元素由于符號(hào)率相對(duì)殘差塊較低,且熵編碼的方法細(xì)節(jié)與殘差塊的編碼細(xì)節(jié)不完全一致,因此用PicRisc對(duì)它們進(jìn)行熵編碼,可以在不影響效率的同時(shí)簡(jiǎn)化熵編碼模塊專用VLSI的硬件結(jié)構(gòu)。
Micro Blaze[7]是Xilinx公司推出的32位RISC軟處理器核,它通過(guò)使用通用邏輯基元,而非FPGA中的硬專用模塊來(lái)實(shí)現(xiàn)。它在Virtex-4 FPGA中的工作頻率可達(dá) 160 MHz,處理速度超過(guò) 184 DMIPS(Dhrystone測(cè)試方法下的每秒百萬(wàn)條指令),適合針對(duì)網(wǎng)絡(luò)、電信、數(shù)據(jù)通信、嵌入式和消費(fèi)等市場(chǎng)的產(chǎn)品。基于Micro Blaze所能提供的良好性能,筆者所提到的軟硬件協(xié)同設(shè)計(jì)的AVS視頻編碼器選用Micro Blaze作為RISC核。
開(kāi)發(fā)Micro Blaze處理器,使用的開(kāi)發(fā)工具主要是Embedded Development Kit工具,包括XPS工具和SDK工具。XPS工具完成主要硬件設(shè)計(jì)調(diào)試工作,SDK工具用于設(shè)計(jì)和調(diào)試應(yīng)用軟件。
可以利用EDK工具提供的BSB(Base System Builder)Wizard幫助用戶較快地構(gòu)建硬件平臺(tái)。構(gòu)建了基本的硬件結(jié)構(gòu)以后,還需要通過(guò)總線接口、端口以及地址分配等對(duì)各個(gè)組件進(jìn)行有效連接。
除了設(shè)計(jì)兩層Micro Blaze外,還需要添加額外的硬件來(lái)完成兩層Micro Blaze間的通信以及兩層MicroB-laze與底層專用VLSI硬件結(jié)構(gòu)的通信。筆者采用了相對(duì)總線機(jī)制控制更加簡(jiǎn)單的讀寫存儲(chǔ)器方式來(lái)完成上述通信任務(wù),如圖2所示。
為了完成通信,需要添加額外的硬件模塊包括:
1)外部存儲(chǔ)器訪問(wèn)控制器
exd_lmb_cntlr_Mb和exd_lmb_cntlr_Pic這兩個(gè)控制單元分別對(duì)應(yīng)MbRisc和PicRisc,均可直接通過(guò)實(shí)例化lmb_bram_if_cntlr的IP核來(lái)實(shí)現(xiàn)。
2)塊存儲(chǔ)器的接口
customBRAMIF_Mb和customBRAMIF_Pic這兩個(gè)接口單元分別對(duì)應(yīng)MbRisc和PicRisc,需要自定制IP核customBlockRAM interface,并實(shí)例化此IP核。最終形成的頂層MbRisc和PicRisc的硬件結(jié)構(gòu)分別如圖3和圖4所示。
頂層RISC核(Micro Blaze)的硬件部分設(shè)計(jì)完成后,使用高級(jí)語(yǔ)言C編寫代碼,開(kāi)發(fā)完成相應(yīng)的軟件部分。兩層Micro Blaze的任務(wù)不同。PicRisc的軟件所需要完成的任務(wù)包括:
1)初始化和更新編碼參數(shù)
如圖像類型、圖像尺寸、量化參數(shù)、圖像編碼類型(I幀、P幀、B幀)更新編碼參數(shù)。
2)部分語(yǔ)法元素的熵編碼以及碼流合成
按照AVS標(biāo)準(zhǔn)文檔里所規(guī)定的碼流結(jié)構(gòu)[1]來(lái)進(jìn)行控制,如圖5所示。圖5中的block編碼的任務(wù)是由底層VLSI的熵編碼模塊完成的,此模塊將殘差塊熵編碼形成的比特流存儲(chǔ)在圖2所示的Block RAM中,最后PicRisc把殘差塊的比特流與其他語(yǔ)法元素的比特流合成為最終視頻編碼輸出的比特流。
MbRisc軟件所需要完成的任務(wù)主要是更新宏塊級(jí)的編碼參數(shù),如宏塊計(jì)數(shù),宏塊的量化參數(shù)等。
對(duì)軟硬件協(xié)同設(shè)計(jì)的編碼器進(jìn)行仿真驗(yàn)證時(shí),除了需要將底層的VLSI結(jié)構(gòu)以及頂層的兩個(gè)Micro Blaze實(shí)例化外,還需要將編寫好的軟件初始化寫入Micro Blaze的指令存儲(chǔ)器中,最終的仿真結(jié)果表明Micro Blaze工作正常,功能正確。
設(shè)計(jì)中采用的硬件平臺(tái)是Xilinx公司的virtex4-xc4vlx200-ff1513-10,整個(gè)設(shè)計(jì)在 ISE 9.2i和EDK 9.2i環(huán)境下進(jìn)行。綜合后,兩個(gè)Micro Blaze共使用了1932個(gè)Slice,最高時(shí)鐘頻率可達(dá)147.435 MHz。
介紹了Micro Blaze嵌入式RISC核在AVS視頻編碼器軟硬件協(xié)同設(shè)計(jì)中的應(yīng)用。利用Micro Blaze嵌入式RISC核以及基于Micro Blaze開(kāi)發(fā)的軟件可以高效地完成相關(guān)處理任務(wù),使本文所提到的AVS視頻編碼器兼顧了高效性和靈活性,為其對(duì)高清視頻源進(jìn)行實(shí)時(shí)編碼提供了強(qiáng)有力的支持。
[1]GB/T 20090.2-2006,信息技術(shù) 先進(jìn)音視頻編碼 第二部分:視頻[S].2004.
[2]虞露,胡倩,易峰.AVS視頻的技術(shù)特征[J].電視技術(shù),2005,29(7):8-11.
[3]PAULIN P G,LIEM C,CORNERA M,et al.Embedded software in realtime signal processing systems,application and architecture trends[J].Proceedings of the IEEE,1997,85(3):419-435.
[4]CHEN Towei,HUANG Yuwen,CHEN Tungchien,et al.Architecture design of H.264/AVC decoder with hybrid task pipelining for high de?nition videos[C]//Proc.ISCAS 2005.[S.l.]:IEEE Press,2005:2931-2934.
[5]JANGSK,LEEJ,CHOIGY,etal.Hardware-softwareco-implementation of a H.263 video codec[J].IEEE Transactions on Consumer Electronics,2000,46(1):191-200.
[6]CHIMIENTIAA,F(xiàn)ANUCCIL,LOCATELLICR,etal.VLSIarchitecture for a low-power video codec system[J]. Microelectronics Journal,2002,33(5-6):417-427.
[7]Xilinx.Micro Blaze soft processor core[EB/OL].[2010-01-19].http://www.xilinx.com/tools/microblaze.htm.