国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

H.264解碼器幀內(nèi)預(yù)測(cè)模塊的優(yōu)化

2013-02-13 09:57王光瑋梁利平
電視技術(shù) 2013年19期
關(guān)鍵詞:宏塊環(huán)路解碼

王光瑋,梁利平

(中國(guó)科學(xué)院 微電子研究所,北京100029)

責(zé)任編輯:時(shí) 雯

1 幀內(nèi)預(yù)測(cè)

一直以來(lái),視頻信息以其直觀(guān)性、高效性等優(yōu)點(diǎn)而受到人們的青睞。但是視頻信息包含的信息量太大,若要廣泛應(yīng)用,必須解決壓縮與編碼的問(wèn)題。為此,國(guó)際標(biāo)準(zhǔn)化組織和視頻圖像專(zhuān)家組等組織制定了一系列的視頻編解碼和壓縮的標(biāo)準(zhǔn),其中由ITU-T(國(guó)際電信聯(lián)盟組織)和ISO(國(guó)際標(biāo)準(zhǔn)化組織)聯(lián)合推出的H.264視頻編解碼壓縮標(biāo)準(zhǔn)具有突出的壓縮效率[1],得到了廣泛的認(rèn)可和應(yīng)用。

H.264采用了幀內(nèi)預(yù)測(cè)、1/4像素插值、多參考幀預(yù)測(cè)、環(huán)路濾波等多種新技術(shù),獲得了優(yōu)越的壓縮性能[2]。但是,這些新技術(shù)在提高編碼壓縮效率的同時(shí),提高了計(jì)算復(fù)雜度,對(duì)硬件平臺(tái)提出了更高的要求。因此,針對(duì)H.264標(biāo)準(zhǔn)在硬件資源相對(duì)緊張的嵌入式設(shè)備上的應(yīng)用,業(yè)界提出了多種有效的優(yōu)化方法。如基于VLSI硬件設(shè)計(jì)加速H.264解碼計(jì)算過(guò)程[3];用特定平臺(tái)提供的SIMD指令進(jìn)行數(shù)據(jù)的向量處理[4];或者針對(duì)H.264解碼流程中一個(gè)或多個(gè)模塊進(jìn)行結(jié)構(gòu)或者算法上的優(yōu)化,提高執(zhí)行效率[5-7]。

以上幾種方法中,硬件加速的方法性能比較高,但是開(kāi)發(fā)周期長(zhǎng),成本高,且不靈活,不利于升級(jí);用SIMD指令雖然可以加速計(jì)算過(guò)程,但是和平臺(tái)相關(guān)性很大,可移植性比較差。相對(duì)于前兩種優(yōu)化方法,后一種方案比較靈活,沒(méi)有平臺(tái)的限制,是一種通用的優(yōu)化方法。

本文提出的優(yōu)化方法屬于最后一種,是對(duì)幀內(nèi)預(yù)測(cè)模塊提出的一種通用的優(yōu)化方法。通過(guò)對(duì)H.264解碼過(guò)程中幀內(nèi)預(yù)測(cè)原理進(jìn)行深入的分析,針對(duì)此模塊中處理器與片外存儲(chǔ)空間(SDRAM)數(shù)據(jù)交互頻繁、4×4亮度塊的預(yù)測(cè)模式計(jì)算復(fù)雜度較高的特點(diǎn),對(duì)幀內(nèi)預(yù)測(cè)模塊采取了兩方面的優(yōu)化措施。其一是通過(guò)結(jié)合環(huán)路濾波的結(jié)構(gòu),去除了目前常用結(jié)構(gòu)中片上存儲(chǔ)空間(SRAM)的冗余存儲(chǔ),節(jié)省了解碼所需的片上存儲(chǔ)空間;第二個(gè)優(yōu)化措施是通過(guò)預(yù)先在片上空間(SRAM)存儲(chǔ)相鄰4×4亮度塊的幀內(nèi)預(yù)測(cè)模式,簡(jiǎn)化4×4亮度塊幀內(nèi)預(yù)測(cè)模式的獲取過(guò)程。通過(guò)以上兩種優(yōu)化措施,節(jié)省了解碼過(guò)程片上存儲(chǔ)空間需求、簡(jiǎn)化了4×4亮度塊幀內(nèi)預(yù)測(cè)模式的獲取過(guò)程,并且減少了處理器與片外存儲(chǔ)空間(SDRAM)的數(shù)據(jù)交互次數(shù),大大提高了解碼器的執(zhí)行效率和解碼性能。

2 幀內(nèi)預(yù)測(cè)模塊優(yōu)化方案

幀內(nèi)預(yù)測(cè)是H.264采用的一項(xiàng)新技術(shù),利用一幀圖像的空間相關(guān)性,由鄰近塊的信息來(lái)預(yù)測(cè)當(dāng)前塊的信息,進(jìn)一步提高了壓縮效率。這種預(yù)測(cè)來(lái)自以下兩個(gè)方面:像素的預(yù)測(cè)和4×4亮度塊預(yù)測(cè)模式的預(yù)測(cè)。本文的兩個(gè)優(yōu)化措施分別針對(duì)這兩個(gè)方面。

2.1 片上冗余存儲(chǔ)的優(yōu)化

片上空間冗余存儲(chǔ)的優(yōu)化是針對(duì)像素的預(yù)測(cè)過(guò)程進(jìn)行的優(yōu)化。H.264幀內(nèi)預(yù)測(cè)模式下,當(dāng)前塊的像素預(yù)測(cè)值是由鄰近塊的像素根據(jù)不同的預(yù)測(cè)模式預(yù)測(cè)得到。

H.264支持9種4×4塊、4種16×16塊的亮度預(yù)測(cè)模式和4種8×8塊的色度預(yù)測(cè)模式[7],如圖1所示。其中8×8色度塊的預(yù)測(cè)模式和16×16的亮度塊預(yù)測(cè)模式類(lèi)似,因此圖1并未重復(fù)給出。

圖1 亮度塊幀內(nèi)預(yù)測(cè)模式

從圖1中可以看出,當(dāng)前塊的像素預(yù)測(cè)可能會(huì)用到左方宏塊最右一列、上方宏塊最下邊一行的像素值作為參考像素,且參考像素值必須為環(huán)路濾波前的像素值。目前普遍采用的處理方法是:重建宏塊濾波前,最右一列和最下面一行的數(shù)據(jù)被分別保存于兩個(gè)片上buffer中,如圖2所示。后續(xù)鄰近宏塊為幀內(nèi)預(yù)測(cè)類(lèi)型時(shí),直接讀取兩個(gè)片上buffer中的參考像素值進(jìn)行幀內(nèi)預(yù)測(cè)。

圖2 常用的幀內(nèi)預(yù)測(cè)存儲(chǔ)結(jié)構(gòu)

這種結(jié)構(gòu)雖然可以在一定程度上減少處理器到片外空間讀取參考像素的次數(shù),但事實(shí)上這兩個(gè)buffer中的數(shù)據(jù)是片上的冗余信息。本文結(jié)合環(huán)路濾波的結(jié)構(gòu),取消了這兩個(gè)片上buffer,直接在環(huán)路濾波的緩存buffer中讀取數(shù)據(jù),去除了這部分冗余數(shù)據(jù)的存儲(chǔ)。這里有必要先簡(jiǎn)單介紹一下環(huán)路濾波的結(jié)構(gòu)。

常用的以宏塊為單位的環(huán)路濾波結(jié)構(gòu)中[8],也存在兩個(gè)類(lèi)似的片上buffer來(lái)暫存相鄰塊的數(shù)據(jù),不同的是這兩個(gè)buffer存儲(chǔ)的數(shù)據(jù)是環(huán)路濾波后的像素值。如圖3所示,當(dāng)一個(gè)宏塊濾波結(jié)束后,把最右邊四列和最下邊四行像素值分別存儲(chǔ)到片上LINE_BUF和LEFT_BUF兩個(gè)buffer中,以便右邊宏塊和下方宏塊濾波使用。

圖3 環(huán)路濾波存儲(chǔ)結(jié)構(gòu)

從圖3可以看出,這兩個(gè)buffer同樣包含了一個(gè)宏塊最右邊一列和最下面一行的像素值。通常認(rèn)為這兩個(gè)buffer中的像素值為濾波后的像素,因此不能被幀內(nèi)預(yù)測(cè)模塊利用。事實(shí)上,深入分析環(huán)路濾波過(guò)程可知,這兩個(gè)buffer中幀內(nèi)預(yù)測(cè)所用到的部分像素值在濾波前后并不會(huì)改變。圖4a中實(shí)線(xiàn)是一個(gè)宏塊中需要濾波的邊界,圖4b給出了在最強(qiáng)濾波強(qiáng)度下,一條邊界兩邊可能改變的像素值(圖中深色的像素)。從圖4可以看出,一個(gè)宏塊中最右一列和最下邊一行的像素值在濾波前后是不改變的。因此完全可以將幀內(nèi)預(yù)測(cè)模塊中的兩個(gè)buffer去掉,當(dāng)需要左方和上方塊的像素值作參考像素時(shí),直接到環(huán)路濾波這兩個(gè)buffer中讀取相應(yīng)的數(shù)據(jù)即可。這一優(yōu)化措施不但去掉了片上的冗余存儲(chǔ),釋放的空間可以將片外更有意義、使用頻繁的數(shù)據(jù)存儲(chǔ)到片上空間,而且減少了幀內(nèi)預(yù)測(cè)模塊中未濾波像素保存這一步驟,進(jìn)一步提高解碼性能。

圖4 環(huán)路濾波原理

2.2 預(yù)測(cè)模式獲取過(guò)程的優(yōu)化

幀內(nèi)預(yù)測(cè)的另一個(gè)重要步驟是每個(gè)4×4亮度塊本身預(yù)測(cè)模式的獲取。為了提高壓縮效率,宏塊頭信息只給出16×16亮度塊和色度塊的預(yù)測(cè)模式,4×4亮度塊的預(yù)測(cè)模式需要解碼器根據(jù)鄰近塊的相關(guān)性計(jì)算得出。如圖5所示,當(dāng)前塊E與左方塊A和上方塊B的預(yù)測(cè)模式有很大的相關(guān)性。

圖5 預(yù)測(cè)模式有相關(guān)性的4×4塊

4×4塊預(yù)測(cè)模式的預(yù)測(cè)過(guò)程如圖6所示,當(dāng)前塊E的預(yù)測(cè)模式由最可能預(yù)測(cè)模式和參數(shù)prev_intra4×4_pred_mode(以下簡(jiǎn)稱(chēng)參數(shù)1)及參數(shù)rem_intra4×4_pred_mode(以下簡(jiǎn)稱(chēng)參數(shù)2)來(lái)共同決定。最可能的預(yù)測(cè)模式為左方塊A和上方塊B的預(yù)測(cè)模式的最小值。若塊A或塊B為非幀內(nèi)4×4預(yù)測(cè)模式,則相應(yīng)的預(yù)測(cè)模式置為2(DC預(yù)測(cè)模式)。如圖6所示,根據(jù)參數(shù)1和參數(shù)2的值對(duì)最可能模式進(jìn)行修正,就得到當(dāng)前塊E的預(yù)測(cè)模式。

圖6 4×4塊預(yù)測(cè)模式的獲取過(guò)程

由以上分析可知,每個(gè)4×4亮度塊預(yù)測(cè)模式的獲取,處理器需要頻繁地在片外存儲(chǔ)空間讀取鄰近塊的信息并進(jìn)行判斷等步驟。當(dāng)圖像帶有大量的細(xì)節(jié),隨著4×4塊數(shù)目的增多,這部分的開(kāi)銷(xiāo)會(huì)陡增,降低解碼性能??梢?jiàn)對(duì)這一部分的優(yōu)化是十分必要的。

本文采取了在預(yù)測(cè)當(dāng)前塊模式之前就預(yù)先判斷并存儲(chǔ)相鄰塊的信息的優(yōu)化措施。首先新增兩個(gè)片上buffer:top_model_buf和left_model_buf。top_model_buf用來(lái)存儲(chǔ)當(dāng)前塊上方整個(gè)4×4塊行中每個(gè)4×4塊的預(yù)測(cè)模式,left_model_buf用來(lái)存儲(chǔ)左方4×4塊的預(yù)測(cè)模式。

如圖7所示,當(dāng)前塊E的上一行子塊在解碼過(guò)程中,同時(shí)把此子塊預(yù)測(cè)模式的值存入top_model_buf中,若此塊不是幀內(nèi)4×4模式,則在top_model_buf的對(duì)應(yīng)位置存入2(DC預(yù)測(cè)模式)。left_model_buf存儲(chǔ)最近解碼子塊的預(yù)測(cè)模式,同樣,若這個(gè)子塊為非4×4幀內(nèi)預(yù)測(cè)模式,則在buffer存儲(chǔ)2。如此一來(lái),top_model_buf類(lèi)似一個(gè)循環(huán)存儲(chǔ)結(jié)構(gòu),解碼一個(gè)宏塊行才全部更新一次,保存著當(dāng)前解碼行上一4×4子塊行全部的預(yù)測(cè)模式。當(dāng)前塊E只需要到buffer的對(duì)應(yīng)位置上讀取相鄰塊的信息求最小值即可得到最可能預(yù)測(cè)模式。

圖7 相鄰4×4塊預(yù)測(cè)模式的存儲(chǔ)

下面來(lái)分析新增的兩個(gè)buffer所需要的空間開(kāi)銷(xiāo)。因?yàn)槊總€(gè)4×4子塊有9種預(yù)測(cè)模式,因此只需要4 bit便可以存儲(chǔ)一個(gè)子塊的預(yù)測(cè)模式。1個(gè)宏塊中只需要存儲(chǔ)最下面的4個(gè)4×4子塊,因此1個(gè)宏塊需要的比特?cái)?shù)為4×4=16 bit。如果存儲(chǔ)1個(gè)宏塊最下邊一行的像素,則需要16×8=128 bit。因此,相對(duì)于未優(yōu)化前存儲(chǔ)最下邊一行像素的top_buf,這個(gè)buffer的大小僅為原來(lái)的1/8??梢?jiàn)本文的優(yōu)化方法盡管將更多的信息存儲(chǔ)到了片上存儲(chǔ)空間,不但沒(méi)有增加片上存儲(chǔ)需求,反而釋放了一定大小的片上存儲(chǔ)空間,這對(duì)硬件資源相對(duì)寶貴的嵌入式系統(tǒng)來(lái)說(shuō)是十分有意義的。

優(yōu)化后的4×4塊預(yù)測(cè)模式的獲取流程如圖8所示,相比于優(yōu)化前的流程圖6,復(fù)雜度大大降低。

圖8 優(yōu)化后的4×4塊預(yù)測(cè)模式的獲取過(guò)程

3 實(shí)驗(yàn)結(jié)果

本文將優(yōu)化前后的解碼程序分別在IME-Diamond仿真平臺(tái)上做了驗(yàn)證,對(duì)比結(jié)果如表1所示。IME-Diamond仿真平臺(tái)是32位定點(diǎn)處理器IME-Diamond的仿真軟件,片上存儲(chǔ)空間為128 kbyte,該軟件可以精確統(tǒng)計(jì)每個(gè)模塊消耗的周期數(shù)。測(cè)試所用的碼流是由JM編碼器產(chǎn)生的標(biāo)準(zhǔn)碼流,用了4組300幀CIF格式的測(cè)試碼流。表1分別給出優(yōu)化前后幀內(nèi)預(yù)測(cè)模塊消耗的周期數(shù),并給出了對(duì)比結(jié)果。

從表1可以看出,采取本文提出的優(yōu)化措施對(duì)程序進(jìn)行優(yōu)化后,幀內(nèi)預(yù)測(cè)模塊消耗的平均周期數(shù)大大減少,相對(duì)于優(yōu)化前平均提高了13%左右。

表1 優(yōu)化前后幀內(nèi)預(yù)測(cè)模塊性能對(duì)比

4 結(jié)論

本文對(duì)H.264幀內(nèi)預(yù)測(cè)模塊做了兩方面的優(yōu)化,一是結(jié)合環(huán)路濾波的結(jié)構(gòu),卻除了片上冗余信息的存儲(chǔ),在降低片上空間需求的同時(shí)簡(jiǎn)化了參考像素的存儲(chǔ)流程;二是對(duì)4×4亮度塊的預(yù)測(cè)模式獲取過(guò)程的優(yōu)化,在解碼相鄰信息塊的同時(shí)對(duì)這些塊的預(yù)測(cè)模式進(jìn)行判斷和存儲(chǔ),降低預(yù)測(cè)模式的獲取的復(fù)雜度。通過(guò)這兩種優(yōu)化方法,在降低片上存儲(chǔ)空間的前提下簡(jiǎn)化了幀內(nèi)預(yù)測(cè)模式的處理流程,減少了處理器和片外數(shù)據(jù)的交互次數(shù),提高了解碼性能,尤其對(duì)于包含大量細(xì)節(jié)的圖像,優(yōu)化效果更加明顯。

[1]Joint Video Team.ITU-T Rec.H.264 and ISO/IEC 14496-10 AVC,Draft ITU-T recommendation and final draft international standard of joint video specification[S].2003.

[2]WIEGAND T,SULLIVAN G,BGONTEDAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circuits and Systems for Video Technology,2007,13(7):560-576.

[3]ZHANG N,LI M,WU W.High performance and efficient bandwidth motion compensation vlsi design for H.264/AVC decoder[C]//Proc.ICSICT 2006.[S.l.]:IEEE Press,2006:1896–1898.

[4]陳梅芳.基于TMS320DM642的H.264解碼器優(yōu)化[J].現(xiàn)代電子技術(shù),2006(3):112-115.

[5]袁曉雷,魏江,張鵬.嵌入式平臺(tái)H.264軟件解碼器的優(yōu)化[J].電視技術(shù),2010,34(5):36-39.

[6]任李?lèi)?,唐寧,滕?基于H.264解碼器的軟件優(yōu)化[J].電子設(shè)計(jì)工程,2009,17(12):104-108.

[7]姜峰.基于DSP的H.264解碼器運(yùn)動(dòng)補(bǔ)償模塊的優(yōu)化[J].微電子學(xué)與計(jì)算機(jī),2012,29(10):86-88.

[8]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)—H.264/AVC[M].北京:人民郵電出版社,2005:83-89.

[9]胡宏華,諶德榮.基于DSP的H.264解碼器優(yōu)化設(shè)計(jì)[J].中北大學(xué)學(xué)報(bào):自然科學(xué)版,2011,32(6):763-767.

猜你喜歡
宏塊環(huán)路解碼
《解碼萬(wàn)噸站》
基于運(yùn)動(dòng)估計(jì)與補(bǔ)償?shù)睦走_(dá)拼圖預(yù)測(cè)分析*
解碼eUCP2.0
NAD C368解碼/放大器一體機(jī)
Quad(國(guó)都)Vena解碼/放大器一體機(jī)
幾種環(huán)路穩(wěn)定性仿真方法介紹
基于選擇特征宏塊的快速視頻穩(wěn)像
Buck-Boost變換器的環(huán)路補(bǔ)償及仿真
單脈沖雷達(dá)導(dǎo)引頭角度跟蹤環(huán)路半實(shí)物仿真
莫斯科地鐵計(jì)劃于2019—2020年推出第三換乘環(huán)路