當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]1 引言 隨著數(shù)字電視及視頻會議的發(fā)展以及應(yīng)用,H.264由于其更高的壓縮比、更好的圖像質(zhì)量和良好的網(wǎng)絡(luò)適應(yīng)性而備受關(guān)注。 基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)則作為H.264編碼器系統(tǒng)的最后一環(huán),對

1 引言
    隨著數(shù)字電視及視頻會議的發(fā)展以及應(yīng)用,H.264由于其更高的壓縮比、更好的圖像質(zhì)量和良好的網(wǎng)絡(luò)適應(yīng)性而備受關(guān)注。
    基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)則作為H.264編碼器系統(tǒng)的最后一環(huán),對整個編碼性能影響較大。CABAC充分考慮視頻流的相關(guān)性.能適應(yīng)信號統(tǒng)計特性的變化,容易達(dá)到漸進(jìn)性能,編碼速度較高,但復(fù)雜度大,這造成單純用軟件編碼難以達(dá)到很高的性能,特別是對于高清晰度視頻(HDTV)不能實現(xiàn)實時編碼,這就需要硬件加速或設(shè)計專門的硬件編碼電路。
    目前,已有相應(yīng)的硬件加速電路設(shè)計問世,但主要是對算術(shù)編碼部分進(jìn)行設(shè)計,整體性能仍不夠理想。這里在對以往加速電路分析的基礎(chǔ)上,把握CABAC整個編碼原理,主要對其中的二進(jìn)制化部分進(jìn)行優(yōu)化,對相應(yīng)的二進(jìn)制化方法進(jìn)行歸類優(yōu)化,采用并行運(yùn)算的方案,最終在FPGA上以較優(yōu)的速度和資源實現(xiàn)硬件編碼。

2 二進(jìn)制化原理
    CABAC實現(xiàn)方案包括3個過程:語法元素的二進(jìn)制化、上下文建模、自適應(yīng)算術(shù)編碼,圖1是CABAC編碼器基本結(jié)構(gòu)。

    二進(jìn)制化是CABAC編碼的第1步,提高二進(jìn)制化模塊的編碼速度有助于整個系統(tǒng)速度的提高。在二進(jìn)制化過程中,一個給定的非二進(jìn)制語法元素被唯一地映射到一個二進(jìn)制序列(Bin String),其中的每一位稱為Bin。
    如果輸入為給定的二進(jìn)制語法元素,則此步就可以越過,隨后的步驟由編碼模式?jīng)Q定。
    在H.264標(biāo)準(zhǔn)中。語法元素較多,約有20多種,而二進(jìn)制轉(zhuǎn)換使這些語法元素的二進(jìn)制表示接近最小冗余編碼,以減少碼流。
    CABAC中二進(jìn)制轉(zhuǎn)換有4種基本類型:一元(U)編碼、截斷一元(TU)編碼、指數(shù)哥倫布(EGK)編碼和定長(FL)編碼。另外,還可通過這幾種編碼方式的串聯(lián)進(jìn)行二進(jìn)制化轉(zhuǎn)換。
2.1 一元(U)二進(jìn)制轉(zhuǎn)換方案
    對于一個無符號語法元素x≥0,CABAC中的一元碼字是由x個“1”串連并在結(jié)尾處加上“0”,因此一元二進(jìn)制化的長度是x+1,如表1所示,其中Binldx表示字符串的索引。一般來講,U二進(jìn)制轉(zhuǎn)換主要用于參考幀隊列預(yù)測語法元素的編碼。

2.2 截斷一元(TU)二進(jìn)制轉(zhuǎn)換方案
    截斷一元二進(jìn)制化對語法元素的值有要求,只對不大于某個界限值(S)的語法元素進(jìn)行二進(jìn)制化。若語法元素值小于S,則其二進(jìn)制化結(jié)果同一元二進(jìn)制化;若語法元素值等于S,則其結(jié)果為S個“1”。一般,TU二進(jìn)制轉(zhuǎn)換主要用于幀內(nèi)色度預(yù)測模式的編碼。
2.3 指數(shù)哥倫布(EGK)二進(jìn)制轉(zhuǎn)換方案
    EGK編碼最初由Teuhola在上下文控制長度編碼方案中提出,是由Golomb編碼派生的。EGK編碼由一個前綴和后綴碼字串聯(lián)構(gòu)成,其前綴部分由一元碼字l(x)=[log2(x/2k+1)]的值組成,其后綴部分由x+2k(1-2l(x))計算得出。一般,EGK二進(jìn)制轉(zhuǎn)換主要用于殘差以外數(shù)據(jù)的編碼,具體情形視編碼器的設(shè)置而定。EGK二進(jìn)制化隨后取值的不同而不同,k的取值為非負(fù)整數(shù)。
2.4 固定長度(FL)二進(jìn)制轉(zhuǎn)換方案
    固定長度二進(jìn)制化適用于語法元素值x小于界限值S的情況。方法為直接用x值的二進(jìn)制表示形式作為其二進(jìn)制化結(jié)果,長度同定為:lFL=[log2S]的向上取值。一般,F(xiàn)L二進(jìn)制轉(zhuǎn)換被用于統(tǒng)一分配的語法元素,編碼塊的圖形符號部分關(guān)系到亮度殘差。
2.5 基本二進(jìn)制轉(zhuǎn)換的串聯(lián)方案
    由以上各種二進(jìn)制方式可以再推導(dǎo)出3種基本的二進(jìn)制轉(zhuǎn)換方案。第1種是4位FL前綴與TU后綴(S=2)的串聯(lián),而第2和第3種方案來自TU和EGK二進(jìn)制轉(zhuǎn)換,稱為UEGK。這些方案被用于運(yùn)動矢量微分和變換系數(shù)取絕對值。另外語法元素mb_type和sub_mb_type二進(jìn)制化使用遍歷二叉樹方法,對應(yīng)的二叉樹已在參考文獻(xiàn)中給出。


3 二進(jìn)制化編碼方案優(yōu)化
    H.264標(biāo)準(zhǔn)中的二進(jìn)制化編碼流程是串行的,適合軟件的實現(xiàn),但由于待編語法元素較多,導(dǎo)致執(zhí)行速度慢且效率低下。而硬件實現(xiàn)的最大優(yōu)勢在于其并行性,可大大提高執(zhí)行效率。因此,為提高編碼速度,在不改變算法實質(zhì)的前提下,對標(biāo)準(zhǔn)中的編碼流程進(jìn)行相應(yīng)優(yōu)化,以利于硬件實現(xiàn)。主要提出以下優(yōu)化措施:
    (1)將語法元素歸類按照基本的編碼方法及H.264對各語法元素的要求,可將20余種語法元素的二進(jìn)制編碼方法歸為6類,包括U二進(jìn)制化、UEGKO二進(jìn)制化(k=0,uco-eff=14)、UEGK3二進(jìn)制化(k=3,ucoeff=9)、宏塊/子宏塊類型二進(jìn)制化、宏塊量化偏移二進(jìn)制化,定長與截斷串聯(lián)的二進(jìn)制化。將語法元素歸類,將有效減小編碼過程中的繁雜和無序性,有利于編碼正常完成。
    (2)并行化設(shè)計語法元素的二進(jìn)制化方法可歸為8類,在設(shè)計中,采用控制單元辨別相應(yīng)的語法元素,并送入二進(jìn)制化模塊進(jìn)行編碼。但依照H.264標(biāo)準(zhǔn)設(shè)計,二進(jìn)制化單元的入口地址不僅取決于語法元素的值,還取決于語法元素的種類,這種數(shù)據(jù)依存關(guān)系無疑增加了運(yùn)算量。且輸出是串行,不利于流水線設(shè)計,這樣就將降低系統(tǒng)的時鐘頻率。故采用一種并行設(shè)計方案,以語法元素值為輸入,結(jié)果得到6個不同的輸出,將它們鎖存后,利用多路選擇器以語法元素種類作為控制端選出所需的值。兩種不同的實現(xiàn)方式見圖2。

4 二進(jìn)制化編碼的FPGA實現(xiàn)
    改進(jìn)后的二進(jìn)制化編碼主要包括:控制單元、二進(jìn)制化編碼單元及選擇輸出單元,如圖3所示。

    電路主要分為5級流水線實現(xiàn)。在第1級流水線中,語法元素(SE)、時鐘信號(clk)、上下文模型參量(a、b)等輸入數(shù)據(jù)進(jìn)入控制單元??刂茊卧捎帽容^器實現(xiàn),通過比較給定數(shù)值與輸入數(shù)值的范圍確定語法元素的種類,通過種類信號(selector)輸出選擇所采取的二進(jìn)制化方式。
    第2級流水線包含6個模塊,分別代表6種二進(jìn)制化方法。其中U編碼、mb_type/sub_mb_type語法元素編碼模塊較易實現(xiàn)。因為輸入語法元素的位寬為6位,數(shù)據(jù)量不大,分別按照其編碼方法制成碼表,且此碼表所耗資源不多,在硬件實現(xiàn)時以RAM的方式實現(xiàn),速度較快。對于UEGK0和UEGK3 編碼模塊的實現(xiàn),則需采用U編碼和EGK編碼相結(jié)合的硬件方式完成,具體基本結(jié)構(gòu)如圖4所示。

    圖4中,首先由預(yù)處理器判斷目前比特所進(jìn)行的編碼,在EGK編碼中,主要采用首一檢測及桶形移位技術(shù)實現(xiàn),最后將兩種編碼相加輸出。
    對于UEGK0和UEGK3編碼模塊,只需選取不同閾值可實現(xiàn)。對于語法元素mb_qp_delta,采用有正負(fù)符號的EGK編碼,正負(fù)號由語法元素值的奇偶性決定。對于語法元素coded_block_patterm,則采用FL與TU相結(jié)合的編碼方式,因FL與TU編碼的數(shù)據(jù)量均不大,故采用查表方式實現(xiàn),這樣可提高速度,其中FL編碼的界限值為15,TU編碼的界限值為2。
   第3級流水線的主要功能是選擇。第2級輸出包括已編元素(binary_value)和上下文模型參量(ctxOffset0、ctxOff-set),在第3級中,通過選擇信號(selector)對不同輸出作以選擇。第4級流水線為32位先進(jìn)先出(FIFO)存儲器。對結(jié)果進(jìn)行緩存,有利于下一級處理。
    第5級為串行化器,主要對二進(jìn)制化的數(shù)據(jù)進(jìn)行處理,使其按位輸出,并將二進(jìn)制化后的每一位加入其對應(yīng)的上下文模型,以便后續(xù)處理。整個系統(tǒng)的輸出即為二進(jìn)制化后的每位數(shù)據(jù)(sda)及其偏移(ctxIdxl)。

5 電路仿真及性能分析
    該算法經(jīng)VC++仿真驗證,可對H.264標(biāo)準(zhǔn)中的主要檔次視頻碼流進(jìn)行編碼,其結(jié)果與H.264標(biāo)準(zhǔn)程序JM8.6相同。電路結(jié)構(gòu)采用Verilog語言進(jìn)行RTL級描述,并用mod-elsim6.0軟件仿真,后仿真波形如圖5所示。

    由圖5可看出,每個周期中,在使能信號有效的情況下,在時鐘的上升沿,可產(chǎn)生1 bit數(shù)據(jù)sda及相應(yīng)的偏移量ctx-Idx1,滿足設(shè)計時序要求。電路在Spartan3 FPGA上綜合、布局布線,使用Synplify丁具進(jìn)行綜合,最高時鐘頻率為100 MHz,影響時鐘頻率的關(guān)鍵路徑為先進(jìn)先出存儲器模塊。將綜合好的edif電路網(wǎng)表文件輸入到后端FPGA廠商Xilinx的Foundation軟件進(jìn)行布局布線,生成二進(jìn)制流文件,邏輯單元為171,占總資源的4%。使用設(shè)計的電路對H.264標(biāo)準(zhǔn)中一些標(biāo)準(zhǔn)視頻序列進(jìn)行測試,序列質(zhì)量為QP=28,并與H.264標(biāo)準(zhǔn)程序JM8.6中二進(jìn)制化部分的編碼時間比較,結(jié)果如表2所示。

    綜上,本文對H.264編碼器二進(jìn)制化部分的優(yōu)化使其在速度上較軟件實現(xiàn)有較大提升,資源占用率也較少。二進(jìn)制化部分的硬件設(shè)計不僅能完成H.264標(biāo)準(zhǔn)中基本檔次的編碼,還有望應(yīng)用于更大尺寸更高質(zhì)量的實時視頻壓縮編碼。

6 結(jié)論
    在對H.264標(biāo)準(zhǔn)中二進(jìn)制化部分研究和分析的基礎(chǔ)上,提出其FPGA電路結(jié)構(gòu),采用并行結(jié)構(gòu)及流水線方式設(shè)計電路。該結(jié)構(gòu)經(jīng)Spartan3 FPGA實現(xiàn),其吞吐量為每周期1 bit,最大時鐘頻率為100 MHz,能夠滿足H.264中第3級及其以上檔次實時視頻編碼的要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉